What did I learn this week?
What am I excited to learn in future weeks?
I spent some time on the bleeding edge of Typescript and Web this week, seeing if I was missing anything that my students would enjoy learning. I'm impressed by Elysia, and I'm impressed by React Router v7 framework mode. These frameworks genuinely make modern web development delightful.
I enjoyed Hono, by the way, but was disappointed by the development experience compared to Elysia. I was fighting with the type system instead of flowing with it (though at least the type system did work). And creating an end-to-end typesafe client in Elysia was literally one line of code, where in Hono it was a configuration process. I know they are perhaps optimizing for different things, but it wasn’t obvious why those tradeoffs were being made. I would not build an app with ExpressJS anymore.
On the other hand, I'm disappointed by deployment platforms, like Railway and Netlify. It feels like this should be a solved problem by now in the open-source community, and I just don't love where I’m at. Why am I configuring options in dashboards built by other engineers, locked behind auth, instead of just using text file configs like Docker?
Why is it so much work to network and expose a simple app? Especially once it’s compiled to binary and can run as easily as $ ./server
(which Elysia gives you out of the box, by the way). Yep, you get a binary server as easily as:
bun build --compile --minify-whitespace --minify-syntax --target bun --outfile server ./src/index.ts
And running that server on my machine is trivial. Uploading it to another machine is trivial. But somehow my ineptitude at self-hosting means that I don’t know how to proceed from there easily, it’s always a struggle of config and bugs. This means it’s time for a deep dive.
What I would like is a convenient open source solution (Docker is fine) for deploying and exposing public URLs to my ElysiaJS server AND my React Router v7 Server, with my Postgres service running alongside, all on a single VPS that I own. I want self-hosting that is as simple and enjoyable as the development experience in Typescript right now.
I just don’t have a fundamental understanding of the process here. I need to look into containerization and self-hosting, and I’m excited to figure that out today, and practice it in depth next week.