Bryan Byrne

February 4, 2024

Campfire once again proves less is more

On the weekend that everyone is reacting to the launch of the Apple Vision Pro, I decided to test out a different product, Once Campfire, a chat service from 37Signals with a twist. Instead of paying a monthly subscription you pay $299 once and host the service yourself (how it used to be).

Just as the Vision Pro will lead us to rethink what’s possible with personal computing, Campfire has the potential to lead us to rethink how we purchase and use SaaS software.

Background

Last year 37Signals announced that they would create a collection of products under the Once umbrella. To paraphrase the vision of Once, companies and users shouldn’t have to overpay for commodity software due to recurring subscriptions. The first product under that umbrella is Campfire:

Super simple group chat, without a subscription. And you get the code, too.

After purchasing Campfire you receive an email with installation instructions, along with a link to download the source code. The source code is particularly nice to get if you’re a Rails developer (there is a Rails Renaissance underway but that’s for another post).

Installation

A core premise is that you host Campfire yourself and I was up and running in < 5 minutes. I opted to host on Hetzner (but you can choose your own adventure there). You do receive capacity guidance with the installation instructions:

You can run up to 250 users on 2GB/1CPU, up to 1,000 users on 8GB/4CPU, up to 5,000 users on 32GB/16CPU, and up to 10,000 users on 64GB/32CPU.

After opening a terminal on your server (pro-tip, I used 1Password SSH Agent to configure my SSH key), you run a `curl` command to install Campfire, while passing your license key:

/bin/bash -c "$(curl -fsSL https://auth.once.com/install/XXXXX)"

This will install the `once` command and it handles everything for you, including regularly checking for updates (you get access to all 1.x updates).


image.png


Usage

You can watch a full demo from Jason Fried (CEO of 37Signals) here, but some cliff notes:

Setup
First run setup is very simple, you’ll be asked to configure the first user account  on the instance.

Inviting others
You can easily invite others by copying the invite at the top of the “All Talk” channel or going to settings. I invited some friends to check it out and by all accounts they were able to login easily.

image.png


Chat experience
You can setup more rooms / channels as you see fit. Given that chat is a commodity service Campfire provides all the functionality you need for a solid chat experience.

Mobile experience
You can easily login in on a mobile device using the “handoff” link provided on user profile page. I’ve got active sessions across my laptop, phone, and iPad as I type.

Thankfully there are no native apps to install from app stores, instead Campfire uses Progressive Web Apps (PWA) and I achieved a native experience by opening Campfire in Safari on iOS and using the “Add to Home Screen” feature (this allows notifications to be enabled also).

image.png


Embracing Constraints

Turning constraints into advantages is something Campfire does in abundance, something more products need to do. Some of my favorite constraints that improve the Campfire experience are:

  1. Dead simple UX. There is no room for bloat when you’re trying to complete a project that ships as “packaged software”. This results in a no nonsense and easy to use user interface.

  2. Uncomplicated localization of key content. Campfire includes a novel approach to localization, there is a globe icon beside all major input fields, which when clicked provides an explanation of field in a number of languages.

    image.png


  3. No native apps is a feature. The need to have work chat with you on the go (assuming Campfire is used for work) shouldn’t be a requirement––unless you’re on call (something I did for a long time). I love that Campfire avoids the overheard of native apps while delivering a near native experience using PWA.

  4. Data retention and recovery is down to the user. If chat is being used for anything other than ephemeral communication something is probably broken with a team’s communication patterns. The need to recover chat data should be a low priority for teams––personally I believe chats should be auto deleted after 7 days.

Looking ahead

My limited experience with Campfire has me thinking about other places where companies are overpaying for commodity software. Everything from document management to error log management could be up for grabs.