Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.

Project structure · Frontend

Nuxt project structure

Opens with credits

For developers who know some Vue and want a full app with server rendering, file-based routing and API routes in one project. The example is a campus events app with sign-in and seat booking: Vue code lives in app/, the API and database in server/, code both sides need in shared/, and a large area like the admin dashboard can later move into its own layer.

Curated by Tauseef FayyazIntermediate172 files and foldersNuxt 4.6, Vue 3.5, Nitro 2.13Checked October 2026
Explore the filesPick any file to see what it is, why it exists and when you add it.

How it grows

Each stage opens the explorer there

  1. 1Day 1What the scaffold and your first hour give you22 files and folders
  2. 2GrowingWhat a real app with features and tests adds+83 files and folders
  3. ProductionWhat running it for real users adds+30 files and foldersOpens with credits
  4. ExpertWhat a team needs to keep it healthy for years+37 files and foldersOpens with credits

How it is organised

  • Vue code lives in app/, server code in server/, and code both need in shared/. Nothing in shared/ may import Vue or Nitro.
  • Lean on the conventions: pages/ is your URL map, components/ and composables/ are auto-imported, and file names like `.get.ts`, `.client.vue` and `.global.ts` change behaviour, so name files on purpose.
  • Load page data with useFetch or useAsyncData so it is fetched once on the server and reused in the browser; use $fetch for actions such as clicks and form submits.
  • Route middleware and hidden buttons only shape the UI. Every server route checks the session, the role and the input itself.
  • Secrets go in runtimeConfig and come from NUXT_ environment variables at runtime. Only what is under runtimeConfig.public reaches the browser, and app.config is always public.
  • Group components by product area (components/event, components/account). When one area gets its own team and grows large, move it into layers/ with its own owners.
  • Keep the state small: useFetch caches server data and useState shares simple values. Add Pinia only for client state with real actions.

At the top of the project

Open one in the explorer for the full story

Learn more on Sefism

Roadmaps, cheat sheets and projects that go with Nuxt.

See 11 more
Checked against 21 official sources, October 2026. If something has changed, the docs win.Show sources

Picked from the other libraries by shared topics.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.

  • 1:1 Mentorship
  • Fresh Graduate Mentorship
  • Career Guidance

Brand deals, promos and partnerships: tauseeffayyaz@gmail.com