skip to the main content
2025-05-21

Returning to the JS ecosystem

Ecosystems are now largely defined by calcified LLM training data. Oops.

Anyway, I came back to JS after a few years and there was a few things that made it much nicer than last time:

  • pnpm which is so much faster and better [than npm]

  • The hard loving work of all the devs that worked on the tooling and frameworks in the meantime

  • The video and starter kit from the guy I already linked above,

    ( … and the fact that thanks to him, I finally figured out how to make vscode actually work by doing that thing where you need to select the typescript version of the project. Oof. )

  • LLMs are good at writing React

  • The fucking move from require to import is mostly not an issue anymore

So anyway I chugged a whole Pack of Kool-Aid and speedran making this CRUD app by using Vercel, Clerk and Supabase.

The Vercel Postgres offer is weird, so I’m just connecting to supabase for now. This is horrible.

The React server component stuff makes sense to me. I did not care about performance but put the S3 file uploading logic there to keep it simple.

App works and it was trivial to deploy. It was also easy to separate out the production installation of clerk, they are doing a good job.

The stumbling block

NextJS has an unacceptably slow production build process by default, and while configuring …

	 typescript: {
	 	ignoreBuildErrors: true,
	 },
	 eslint: {
	 	ignoreDuringBuilds: true,
	 },

… speeds it up to “only” 1 minute, this results in some breakages not being clearly errored anymore. So sometimes, I had to comment these out, before then running pnpm build locally to get the errors I needed, so that I could then fix stuff I screwed up in the app router.

Amusingly, there was a bunch of Linter errors that took minutes of compilation (every time) to finally surface, but the routes worked fine without fixing them. (I am guessing that to a typescript expert, this is normal..?)

Overall, an OK experience.
I will probably be confronted with a larger, more screwed up React code base soon enough…