JSX is a compile time thing
JSX should not be, nor really *could* be a part of the language. It is syntactic sugar that turns into function calls based on a config.
Serverless is automatic vendor "lock-in"
If you deploy to AWS, Vercel, Netlify, CF Workers, etc you have vendor (hosting provider) specific code. You may not write it depending on what "framework" you are using, but it exists.
Notice how not a single one of these has the same entrypoint? That's "lock-in". All of these except CF are just bespoke, non-portable entrypoint and request/response conventions around Node.js.
Your markdown is source, not content
But it can be content!
If you have to re-deploy your app when you change a markdown file, it is source. Full stop.
Store it somewhere it can be requested at runtime and now it's content.
The V in your MVC
As it was meant to be
Some of you youngins have never worked in a MVC pattern and I honestly feel bad for you. Your typical SPA just incomprehensibly mashes together the V & C. Can you say nightmare?
https://remix.run gives you a *good* V & C layer, letting you choose the M. Give it a try and you'll never go back.
The node package ecosystem
IS JUST TERRIBLE
Can people just ship ESM *and* CJS FFS???
Always Be Connecting (with HTTPS)
The ABC's of the web
If you don't read the https://fly.io/blog you should. They have some awesome in-depth articles as well has higher level yet useful tips such as https://fly.io/blog/always-be-connecting-with-https/
Litestream is 🔥
With Prisma having SQLite as a provider and Litestream replicating globally in a matter of milliseconds with virtually no setup required when hosting on Fly.io, I don't ever see myself going back to running a DB server. It's just not worth it for the type of apps I like to build for fun.
This site for example is hosted in 19 regions on Fly.io and posts replicates between all of them in less than 300ms.