Rewriting with Deno
I accepted some tech debt the last time I rewrote this blog with Nuxt. It was actually a reasonably good experience but I also tried Svelte 5 quickly after that but didn't end up shipping that because the Nuxt version was already stable and I'd already started writing.
I accepted some tech debts with the Nuxt version (current version). While those tech debts have been slowly and increasingly making me feel uncomfortable, one thing I didn't expect to need so soon is to hack together a CMS so that I could write without bringing my laptop with me.
Famous last words. 😓
I'm in the process of rewriting this blog with Deno/Fresh because it fits my mental model a bit better: with server side rendering (SSR), the boundary between server and client has always been too blurry to me in many modern full-stack frameworks — probably mostly an experience issue.
Deno/Fresh's approach of having server-side rendering as the default, with interactivity handled using the islands architecture instantly clicked for me though. I also find Fresh's API super intuitive to work with. Full-stack type-safety is also extremely easy to enforce with just "vanilla TypeScript" (yes, joke/snark intended).
I am struggling a bit with using Deno KV as a production database because I feel super uncomfortable with writing my own indices and potentially duplicating data (reminds me of Firebase). The thing is, with Deno Deploy (at least at the time of writing) you can't use a self-hosted database (not even SQLite because FFI is not supported). If I use a remote database for most of my data to do what Deno KV can't, isn't that destroying the whole point of low-latency with Deno KV? Otherwise, as a "simple" KV store, I still think Deno KV is fantastic as a "globally replicated low-latency key-value data storage at the edge". Maybe it's a skill issue.