Vue i18n frontend project

A lightweight frontend built from the same components as the larger applications here, minus the backend. It earns a note as the lower bound of the pattern: the point where the full typed-contract stack stops being worth its own weight.

The stack

Vue 3 with Vite for the build, Vuetify for components, and vue-i18n for multilingual content. No API layer, no database, no migrations.

The judgment it represents

The full stack — generated clients, Alembic migrations, PostgreSQL, a proxy — solves problems that appear when a frontend and backend evolve separately and can disagree. If there is no backend, none of those problems exist, and adopting the machinery anyway means paying its cost for nothing.

I find this easy to get wrong in the direction of too much structure. Having a pattern that works creates a pull toward applying it everywhere, and the cost of over-structuring a small project is invisible at the start and obvious a year later, when a static site requires a database to be running before it will build.

What still carried over

  • Vite for the build. Fast enough that the development loop stays tight, and the configuration is small.
  • Vuetify for components. Consistency for free, and the decision not to design a component system is worth making explicitly rather than by default.
  • TypeScript throughout, even without an API contract to enforce. The value here is refactoring confidence rather than contract safety, which is a smaller benefit but not zero.

On internationalisation

vue-i18n slots in without changing the component model — strings move to locale files and components reference keys. The part that is not free is that translation is a content workflow, not a code one. Someone has to maintain the locale files, and if that person is not a developer the repository is the wrong place for them to work.

Retrofitting i18n is considerably worse than starting with it, because every hard-coded string has to be found. Adding it up front costs almost nothing.

See also: Vue 3, Vite, the devenv content site for a similarly small project, and the web architecture map.