
Show HN: Run apps in EC2, synced to your own text editor - edunteman
https://booste.io
======
edunteman
The link in this post was broken, so I've reposted. Please direct attention to
[https://news.ycombinator.com/item?id=22963649](https://news.ycombinator.com/item?id=22963649)

------
edunteman
Hey HN, my name is Erik, the creator of Booste! This is my second Show HN for
the project – looking forward to your thoughts.

Booste is a command-line interface (CLI) that takes code written on your local
editor/IDE and executes it in EC2. It runs remotely, in a pre-configured
environment, but works with your local tools thanks to a background filesync
process.

I want to fix the “it works on my machine” issue by bypassing personal
machines entirely. As if Docker and Heroku had a lovechild.

How I came to building Booste:

Being a mechanical engineer turned software dev, there were countless times
where my laptop (glorified tablet) couldn’t handle the workload needed.

So I made Booste v1: a tool to host full desktop apps on AWS and stream it
over RDP (remote desktop protocol) to clients. Some may recall the Show HN of
Booste v1 six months ago.

Booste v1 sucked. Unusable latency, crap unit economics, and an infrequent
pain point.

Through it all, the most common customer request was for a hosted VS Code.
Prospective users wanted the perks of a cloud IDE (namely no-setup
environments) but wanted to use their own tools. Diving deeper, it seems that
most large companies build out their own (usually buggy) version of remote
“devboxes”. The need seemed consistent and clear.

After the first Show HN and a failed W20 interview, I pivoted. I gutted the
graphical desktop component, zoomed in on developers, and rebuilt as a CLI:
Booste v2.

Running any shell command proceeded by the world ‘booste’ will trigger the
CLI. The CLI tunnels that command through SSH to EC2, executes it there, and
streams the stdout back down to your command line. Filesync makes sure EC2 is
ready with your code.

Where “npm start” would run an app on localhost, “booste npm start” runs the
same app in the cloud, visible to your team by URL. You can edit the code
locally (VS Code, Sublime, Vim) and the save is synced and hot-swapped on the
live URL within a second.

How the environment sharing works:

\- The creator of a “Codebox” (EC2 instance) gets a barebones Ubuntu VM, on
which they can set environment variables, install interpreters and packages,
or set up databases. (pre-built env templates coming soon).

\- Team members join the codebox by ID and password with a single “booste
join” command.

\- Codebox members get repos placed next to each other on the directory tree,
so code doesn’t clash.

\- There is “booste clone” feature in the works, where you can clone someone’s
config without actually entering and messing with their codebox.

Under the hood:

-The CLI is built in Python using the Click library

-Codebox infrastructure is automated with the AWS SDK.

\---Currently, they are EC2 instances, for the sake of getting the beta live.
I plan to migrate to a more flexible containerized setup in the near future.
Containers make much more sense.

-I built a Dropbox-like filesync, inspired by the sync.

\---It monitors a chosen directory on your local machine and syncs it with the
codebox.

\---When files in that directory are added, modified, or removed, the codebox
reflects this within a second. Only differentials are sent.

\---All communication is encrypted with frequently cycled keys, unlike sync.

\---Bulky files (ML data, dependency packages), which would otherwise slow
rsync to a crawl are ignored by a customizable .boosteignore file.

-Since files sync asynchronously (on edit), the only latency is from ssh. There’s a 0.5 - 1 second delay on booste commands.

I’ve moving from closed to open beta. Fueled by covid and the now mandatory
remote development teams, I made a free tier for you.

Give it a try! Let me know what you like. Let me know what you hate.

(edited for clearer formatting)

