SKILL.md
React Starter Skill
Scaffold modern React projects with a production-ready tech stack.
Tech Stack: React, Vite, Tailwind CSS v4, TanStack Query, Zustand, React Router, Lingui, shadcn/ui, lucide-react
Quick Start
1. Detect Package Manager
Check which package manager is installed on the user's system. Use the first available in this priority order:
pnpm(preferred)yarnnpm
2. Create Project
mkdir <project-name> && cd <project-name>
<pkg> create vite . --template react-ts
Replace
<pkg>with the detected package manager (pnpm,yarn, ornpm).
3. Remove ESLint (use Biome instead)
The Vite template includes ESLint by default. Remove it since we use Biome:
# Remove ESLint config file
rm -f eslint.config.js .eslintrc* .eslintignore
# Remove ESLint dependencies from package.json
<pkg> remove eslint eslint-plugin-react-hooks eslint-plugin-react-refresh @eslint/js globals typescript-eslint 2>/dev/null || true
4. Install Dependencies
See [dependencies.md](references/dependencies.md)
5. Create Directory Structure
See [project-structure.md](references/project-structure.md)
6. Add Configuration Files
See [config-files.md](references/config-files.md)
7. Add Code Patterns
See [code-patterns.md](references/code-patterns.md)
8. Initialize i18n (Extract, Translate, Compile)
CRITICAL: This step is REQUIRED before the project can run. The I18nProvider imports compiled message files that don't exist until you complete all three sub-steps below.
7.1 Extract messages
<pkg> run i18n:extract
This generates PO files in src/locales/{locale}/messages.po.
7.2 Translate PO files
You MUST translate each locale's PO file now. Do the following:
- Read each PO file:
src/locales/{locale}/messages.po - For every entry where
msgstr ""is empty, translate themsgidto the target language - Update the file with translations using the Edit tool
Locale to language mapping (matches constants/languages.ts):
en→ Englishes→ Spanish (Español)ja→ Japanese (日本語)ko→ Korean (한국어)vi→ Vietnamese (Tiếng Việt)tw→ Traditional Chinese (繁體中文)fr→ French (Français)pt→ Portuguese (Português)
Example transformation:
# Before
msgid "Hello"
msgstr ""
# After (for ja)
msgid "Hello"
msgstr "こんにちは"
7.3 Compile messages
After translating all PO files:
<pkg> run i18n:compile
This generates src/locales/{locale}/messages.ts files required by I18nProvider.
9. Verify Project
<pkg> run dev
The project should now start without errors.
References
| File | Description |
|---|---|
| [dependencies.md](references/dependencies.md) | All npm packages |
| [project-structure.md](references/project-structure.md) | Full directory structure |
| [config-files.md](references/config-files.md) | Vite, Tailwind, Lingui, TypeScript configs |
| [code-patterns.md](references/code-patterns.md) | Axios, Zustand, Provider, Router patterns |