2024-08-08
Building a Local-First Heroku Alternative
Written By
Co-Founder
We recently finished a full rewrite of LaunchFlow. We’ve worked through three main iterations of the tool now:
- Heroku-like: Initially, we had a classic server-client split: a lightweight CLI plus a server which would spin up infrastructure in LaunchFlow’s cloud
- ...but In your cloud: Next, we maintained a similar architecture while allowing users to provision infrastructure in their own cloud accounts
- Client-side: Now, we’ve moved much of LaunchFlow’s core functionality – provisioning and managing infrastructure – into the CLI itself so you can use the tool without a LaunchFlow account
Fully managed services like Heroku are great as long as you can afford the bill. Starting out this isn’t a problem, and going by their customer stories, many large businesses make it work. Whether this is practical seems to depend a lot on the use case. If you’ve scaled your business without issue on Heroku, we’d be very interested to hear about your experience.
Our second iteration essentially rolled the Heroku and Heroku Enterprise feature-sets into one by provisioning and deploying in user cloud accounts. Many startups we’ve spoken to prototyped on platforms like Heroku, and only looked to move away when meeting the security requirements of their users would’ve forced them into astronomically expensive enterprise tiers. The main benefit we saw in this approach was the promise of a Heroku-like experience in your own cloud.
Over time, the server-client split started to feel unnecessary and contrary to our goal of providing the best developer experience possible. We use OpenTofu to spin up infrastructure. Why run tofu commands on a server rather than client-side? For the resources we’ve added recently, it’s felt a lot like removing a compile step. We’re also going to support defining custom resources, so it’s not just a benefit for us 🙂. Certain features like sharing state so you can collaborate with a team still rely on LaunchFlow Cloud (our centralized service), but the change makes it much easier to try LaunchFlow without having to sign up for an account.
If you’re new, check out our Get Started guide. We’d very much like to hear how it goes.