How I got 100 on Lighthouse accessibility
The homepage scored 85 for desktop accessibility. It took one sitting to reach 100, and almost none of the work was about accessibility as a discipline.
Thoughts on frontend development, Nuxt, Vue, and modern web technologies.
The homepage scored 85 for desktop accessibility. It took one sitting to reach 100, and almost none of the work was about accessibility as a discipline.
Netlify will build a Nuxt app with almost no configuration, and that is the problem: the default works right up until the moment your repository is shaped slightly differently from the one Netlify assumes. This post is about the three settings that actually earn their place, the two environment variables that are load-bearing rather than decorative, and the failure mode that produces a perfectly green deploy of an empty site.
This site used to keep its blog posts as Markdown files and read them at build time. It now keeps them in Sanity and queries them at runtime. That migration is mostly plumbing, but a handful of things about it are genuinely counter-intuitive, and each one cost me time, so this post is about those rather than about how to install a module.
In 2020 I wrote a post on deploying a Nuxt app with PM2. A lot of it no longer applies. nuxt start does not exist any more, the config file is nuxt.config.ts instead of nuxt.config.js, and the build output is no longer something you serve with a hand-written process command — it is a self-contained server you run with one line. This post replaces it. If you landed here from a search, use this one and ignore anything about target: "server".
This post is out of date. Nuxt 4 removed nuxt start, the config file is nuxt.config.ts, and the target: "server" option no longer exists. The pm2 deploy workflow below still exists, but it is no longer how I would set this up. My current replacement: Deploy your Nuxt app to production →