Tools
Nuxt
Full-stack Vue framework — frontend, backend, and type safety in one place.
Nuxt is my go-to for full-stack applications. It handles the structure so I can focus on the product.
What I like:
- Scoped components — CSS rules stay where they belong. Write a style, it affects that component and nothing else. Without this, global CSS becomes a maintenance nightmare.
- File-based routing — Pages map to files. No router configuration to maintain.
- Full-stack type safety — APIs and frontend live in the same codebase. Define an endpoint, and TypeScript knows the request/response types on the consuming side. IntelliSense across the full stack.
- Async data primitives —
useFetchanduseAsyncDatahandle loading states, errors, and caching with minimal boilerplate. Works well with SSR out of the box. - Auto imports — Components, composables, and utilities are available without explicit imports. Though I've become more ambivalent here — great for IDE workflows, but AI coding agents don't always see what's available.
The framework stays out of my way while solving the tedious problems (routing, data fetching, build config, SSR). When I need to drop down to lower-level control, I can.
When I use it
- Full-stack products where frontend and backend need to communicate.
- Projects that benefit from SSR and strong defaults out of the box.
- Teams that want quick setup without sacrificing long-term maintainability.
When I avoid it
- Organizational constraints that require another stack.
- Cases where required ecosystem components are e.g. React-only and cannot be replaced.
- Existing systems deeply standardized on another framework where change authority does not exist.
One real example
I use Nuxt Content style structures (route-level markdown + collection schemas) to keep content and metadata organized in a query-friendly way.