You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Due to eslint autoformatting, prettier formatting has to be disabled - ESLint will do the formatting related to rules setup (requires the official ESLint extension: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
Run `yarn lint` and `yarn test` to verify changes before committing — Husky enforces this on pre-push.
65
+
Run `yarn type-check`, `yarn lint`, and `yarn test:coverage`before pushing — Husky enforces all three on pre-push.
57
66
58
67
## Critical Rules
59
68
60
-
1.**ESLint v9 flat config only.** All lint config goes in `eslint.config.ts` as an array export. Never create `.eslintrc.*` files or use legacy config format.
69
+
1.**Oxlint** All lint config goes in `.oxlintrc.jsonc`. All formatter config goes in `.oxfmtrc.jsonc`.
61
70
2.**No `@apply` in SCSS.** Tailwind v4 + Sass have compatibility issues with `@apply`. Use SCSS only for things Tailwind can't do (complex animations, keyframes, third-party overrides). Use utility classes directly in templates for everything else.
62
71
3.**`app/` directory structure.** Components, pages, composables, stores, and tests live under `app/`. Do not place them in the project root.
63
72
4.**TypeScript strict.** All new code must be typed. No `any` unless explicitly justified with a comment.
@@ -73,6 +82,13 @@ Run `yarn lint` and `yarn test` to verify changes before committing — Husky en
73
82
- Tailwind v4 config is CSS-based (not `tailwind.config.js`). Check existing CSS for theme customizations.
74
83
- Never mix `@apply` with SCSS. If you need a reusable utility, create a Vue component instead.
75
84
85
+
## Formatting Conventions
86
+
87
+
- Oxfmt is the sole formatter — never use Prettier or Biome alongside it.
88
+
- Config is in `.oxfmtrc.jsonc`: `printWidth: 100`, single quotes, semicolons, 2-space indent.
89
+
- Run `yarn format` to format in place, `yarn format:check` to verify without writing (used in pre-push).
90
+
- VS Code auto-formats on save via the `oxc.oxfmt` extension (`editor.defaultFormatter`).
91
+
76
92
## Testing Conventions
77
93
78
94
- Vitest config is in `vitest.config.ts` — check there for aliases and setup.
@@ -82,6 +98,19 @@ Run `yarn lint` and `yarn test` to verify changes before committing — Husky en
82
98
## Gotchas
83
99
84
100
-`clean-project.js` deletes `.git/` — it's meant for first-time setup only. Never run it on an active project.
85
-
- The Husky pre-push hook runslint + tests. If either fails, the push is rejected.
101
+
- The Husky pre-push hook runs: type-check (`vue-tsc`) → lint (oxlint) → format check (oxfmt) → `test:coverage`. If any step fails, the push is rejected.
86
102
-`tsconfig.tsbuildinfo` is committed — don't delete it, TypeScript incremental builds depend on it.
87
103
- Nuxt auto-imports Vue APIs and composables. Don't manually import `ref`, `computed`, `useRoute`, etc. unless the auto-import fails.
Copy file name to clipboardExpand all lines: README.md
+12-4Lines changed: 12 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@
6
6

7
7
8
8
## 🥸 Why this template?
9
-
Get ready to supercharge your development with this fully configured Nuxt 4 Starter Kit! Built on Vue 3 and powered by TypeScript and many other technologies (for more information see down-below or checkout package.json for even more), this setup comes preloaded with tools and libraries designed to enhance your workflow, streamline development, and maintain high-quality code. 🙌 No more wrestling with configurations—jump straight into building amazing projects!
9
+
Get ready to supercharge your development with this fully configured Nuxt 4 Starter Kit! Built on Vue 3, AI ready (including configured CLAUDE.md), powered by TypeScript and many other technologies (for more information see down-below or checkout package.json for even more), this setup comes preloaded with tools and libraries designed to enhance your workflow, streamline development, and maintain high-quality code. 🙌 No more wrestling with configurations—jump straight into building amazing projects!
10
10
11
11
-**Clean up project in seconds:** Using the `yarn script:cleanup` command in your terminal, will clean up the project, remove demo contents - the Starter Kit is designed so that developers can start working immediately without having to spend time setting up basic structures and configurations.
12
12
-**Up to date:** Using up to date dependencies and tools to ensure a smooth development experience. (at least I try ^^)
@@ -38,9 +38,13 @@ This starter kit is packed with carefully chosen dependencies to handle real-wor
38
38
Why? Because it’s blazing fast. Vite ensures instant builds and on-demand compilation, making both development and production smoother and quicker.
39
39
[learn more](https://vitejs.dev/).
40
40
41
-
### 🏗️ ESLint
42
-
ESLint V9 with a "Flat Config setup" tailored for TypeScript and Vue 3 or Nuxt 4 - it is configured to use best practices integrating some plugins (eslint:recommended, typescript-eslint, and eslint-plugin-vue) - wanna change them!? just add some custom rules to meet your team's needs to ensure clean, maintainable, and standard-compliant code quality.
Blazing-fast Rust-based linter for JavaScript and TypeScript (including Vue `<script>` blocks), with 695+ built-in rules. Ships pre-configured in `.oxlintrc.json` with the `typescript` and `vue` plugins enabled — just add your own rules on top.
High-performance code formatter from the OXC project, matching Prettier's output for JS, TS, Vue, CSS, JSON, YAML, and more. Configured in `.oxfmtrc.json`. Format-on-save is enabled out of the box via the VS Code extension (`oxc.oxfmt`).
To test smarter and faster. Vitest is a lightweight, Jest-compatible testing framework that ensures code reliability and helps you catching bugs early.
@@ -66,6 +70,10 @@ To manage app state easily. Pinia is modern, simple, and works perfectly with Vu
66
70
TypeScript enhances the JavaScript language by adding optional static typing and other features, for safer, smarter code - helping avoiding errors and catching bugs early in development.
67
71
[learn more](https://www.typescriptlang.org/).
68
72
73
+
### 🤖 Claude Code
74
+
This starter ships with a pre-configured `CLAUDE.md` file — the instruction file read by [Claude Code](https://claude.ai/code) (Anthropic's AI coding assistant). It documents the full project setup: tech stack, directory layout, commands, critical rules, and gotchas. Any Claude Code session in this repo will pick it up automatically, so the AI already knows the conventions, the correct tools (`oxlint`, `oxfmt`, Vitest, yarn), and what not to do — no manual briefing required.
// In this example we're generating 1000 frames for the background-gradient animation to be smooth, this cant be done in a convenient way using TailwindCSS
Copy file name to clipboardExpand all lines: app/assets/style/tailwind.css
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
-
@import"tailwindcss";
1
+
@import'tailwindcss';
2
2
/*
3
3
// Tailwind 4 should not be used with SASS, therefor SASS definitions should not use @apply: https://tailwindcss.com/docs/compatibility#sass-less-and-stylus
4
4
// However SCSS can be use full in addition in some cases (or of course instead of tailwind if this is what you prefer)
5
5
*/
6
6
7
7
@theme {
8
8
/* You can overwrite exiting tailwind utility classes */
0 commit comments