@totaland/create-starter-kit 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +27 -3
  2. package/bin/index.js +88 -30
  3. package/package.json +1 -1
  4. package/templates/backend/AGENTS.md +0 -23
  5. package/templates/backend/ARCHITECTURE.md +0 -53
  6. package/templates/backend/ORDER_SYSTEM.md +0 -93
  7. package/templates/backend/biome.json +0 -3
  8. package/templates/backend/drizzle.config.ts +0 -10
  9. package/templates/backend/knip.json +0 -10
  10. package/templates/backend/package.json +0 -55
  11. package/templates/backend/playwright.config.ts +0 -16
  12. package/templates/backend/pnpm-workspace.yaml +0 -3
  13. package/templates/backend/src/features/health/controller.ts +0 -5
  14. package/templates/backend/src/features/health/index.ts +0 -6
  15. package/templates/backend/src/features/orders/controller.ts +0 -13
  16. package/templates/backend/src/features/orders/index.ts +0 -7
  17. package/templates/backend/src/index.ts +0 -76
  18. package/templates/backend/tsconfig.build.json +0 -10
  19. package/templates/backend/tsconfig.json +0 -30
  20. package/templates/backend/vitest.config.ts +0 -24
  21. package/templates/frontend/.env.example +0 -7
  22. package/templates/frontend/README.md +0 -132
  23. package/templates/frontend/RECOMMENDED_LIBRARIES.md +0 -226
  24. package/templates/frontend/SETUP_SUMMARY.md +0 -162
  25. package/templates/frontend/biome.json +0 -47
  26. package/templates/frontend/components.json +0 -22
  27. package/templates/frontend/index.html +0 -13
  28. package/templates/frontend/package.json +0 -44
  29. package/templates/frontend/postcss.config.js +0 -6
  30. package/templates/frontend/public/vite.svg +0 -1
  31. package/templates/frontend/src/App.css +0 -42
  32. package/templates/frontend/src/App.tsx +0 -17
  33. package/templates/frontend/src/assets/react.svg +0 -1
  34. package/templates/frontend/src/components/layout/Layout.tsx +0 -31
  35. package/templates/frontend/src/components/menu-toggle-icon.tsx +0 -53
  36. package/templates/frontend/src/components/ui/button.tsx +0 -57
  37. package/templates/frontend/src/hooks/use-scroll.ts +0 -21
  38. package/templates/frontend/src/index.css +0 -121
  39. package/templates/frontend/src/lib/api-client.ts +0 -46
  40. package/templates/frontend/src/lib/utils.ts +0 -6
  41. package/templates/frontend/src/main.tsx +0 -30
  42. package/templates/frontend/src/pages/about/AboutPage.tsx +0 -50
  43. package/templates/frontend/src/pages/home/HomePage.tsx +0 -43
  44. package/templates/frontend/tailwind.config.js +0 -59
  45. package/templates/frontend/tsconfig.app.json +0 -41
  46. package/templates/frontend/tsconfig.json +0 -13
  47. package/templates/frontend/tsconfig.node.json +0 -26
  48. package/templates/frontend/vite.config.ts +0 -14
@@ -1,30 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "outDir": "./build",
4
- "rootDir": "./",
5
- "esModuleInterop": true,
6
- "forceConsistentCasingInFileNames": true,
7
- "lib": ["ESNext", "DOM"],
8
- "target": "ESNext",
9
- "module": "ESNext",
10
- "moduleDetection": "force",
11
- "jsx": "react-jsx",
12
- "allowJs": true,
13
-
14
- // Node module resolution
15
- "moduleResolution": "node",
16
- "noEmit": true,
17
-
18
- // Best practices
19
- "strict": true,
20
- "skipLibCheck": true,
21
- "noFallthroughCasesInSwitch": true,
22
-
23
- // Some stricter flags (disabled by default)
24
- "noUnusedLocals": false,
25
- "noUnusedParameters": false,
26
- "noPropertyAccessFromIndexSignature": false
27
- },
28
- "include": ["src/**/*", "scripts/**/*"],
29
- "exclude": ["node_modules, examples"]
30
- }
@@ -1,24 +0,0 @@
1
- import { defineConfig } from 'vitest/config';
2
-
3
- export default defineConfig({
4
- test: {
5
- globals: true,
6
- environment: 'node',
7
- include: ['tests/**/*.{test,spec}.{js,ts}', 'src/**/*.{test,spec}.{js,ts}'],
8
- exclude: ['node_modules', 'build', 'src/generated/tests/**/*'],
9
- coverage: {
10
- reporter: ['text', 'json', 'html'],
11
- exclude: [
12
- 'node_modules/',
13
- 'build/',
14
- 'tests/',
15
- '*.config.*'
16
- ]
17
- }
18
- },
19
- resolve: {
20
- alias: {
21
- '@': '/src',
22
- }
23
- }
24
- });
@@ -1,7 +0,0 @@
1
- # Environment variables for the frontend application
2
-
3
- # API Base URL
4
- VITE_API_URL=http://localhost:3000/api
5
-
6
- # Add other environment variables as needed
7
- # VITE_FEATURE_FLAG=true
@@ -1,132 +0,0 @@
1
- # Frontend Starter Kit
2
-
3
- A modern React + TypeScript frontend starter with carefully selected tools and libraries.
4
-
5
- ## Tech Stack
6
-
7
- - **React 19** - Latest React with improved performance
8
- - **TypeScript** - Type-safe development
9
- - **Vite** - Fast build tool and dev server
10
- - **Tailwind CSS** - Utility-first CSS framework
11
- - **shadcn/ui** - Beautiful, accessible components
12
- - **TanStack Query** - Powerful data fetching and caching
13
- - **React Router** - Client-side routing
14
- - **Drizzle ORM** - Type-safe database access
15
- - **Biome** - Fast linter and formatter
16
-
17
- ## Getting Started
18
-
19
- ### Install Dependencies
20
-
21
- ```bash
22
- pnpm install
23
- ```
24
-
25
- ### Development
26
-
27
- ```bash
28
- pnpm dev
29
- ```
30
-
31
- ### Build
32
-
33
- ```bash
34
- pnpm build
35
- ```
36
-
37
- ### Preview Production Build
38
-
39
- ```bash
40
- pnpm preview
41
- ```
42
-
43
- ## Adding shadcn/ui Components
44
-
45
- To add shadcn/ui components, use the official CLI. For example:
46
-
47
- ```bash
48
- # Add a button component
49
- pnpm dlx shadcn@latest add button
50
-
51
- # Add multiple components
52
- pnpm dlx shadcn@latest add button card dialog
53
-
54
- # Add all components (not recommended)
55
- pnpm dlx shadcn@latest add
56
- ```
57
-
58
- Components will be added to `src/components/ui/` and can be customized as needed.
59
-
60
- ## Folder Structure
61
-
62
- ```
63
- src/
64
- ├── components/ # Reusable components
65
- │ ├── layout/ # Layout components (Header, Footer, etc.)
66
- │ └── ui/ # shadcn/ui components (added via CLI)
67
- ├── hooks/ # Custom React hooks
68
- ├── lib/ # Utility functions and configurations
69
- │ ├── api-client.ts # API client for HTTP requests
70
- │ └── utils.ts # Common utilities (cn helper, etc.)
71
- ├── pages/ # Page components (route-based)
72
- │ ├── home/
73
- │ └── about/
74
- ├── App.tsx # Main app component with routes
75
- ├── main.tsx # App entry point
76
- └── index.css # Global styles with Tailwind
77
- ```
78
-
79
- ## Scripts
80
-
81
- - `pnpm dev` - Start development server
82
- - `pnpm build` - Build for production
83
- - `pnpm preview` - Preview production build
84
- - `pnpm lint` - Run Biome linter
85
- - `pnpm lint:fix` - Fix linting issues
86
- - `pnpm format` - Format code with Biome
87
-
88
- ## Environment Variables
89
-
90
- Copy `.env.example` to `.env` and update the values:
91
-
92
- ```bash
93
- cp .env.example .env
94
- ```
95
-
96
- ## Path Aliases
97
-
98
- The project uses `@` as an alias for the `src/` directory:
99
-
100
- ```typescript
101
- import { cn } from '@/lib/utils';
102
- import { Button } from '@/components/ui/button';
103
- ```
104
-
105
- ## Drizzle ORM Setup
106
-
107
- To use Drizzle ORM with your frontend:
108
-
109
- 1. Define your schema in a shared location (e.g., `../backend/src/db/schema.ts`)
110
- 2. Generate types: `pnpm drizzle-kit generate`
111
- 3. Use the typed client in your queries
112
-
113
- ## TanStack Query
114
-
115
- Example usage:
116
-
117
- ```typescript
118
- import { useQuery } from '@tanstack/react-query';
119
-
120
- function MyComponent() {
121
- const { data, isLoading } = useQuery({
122
- queryKey: ['myData'],
123
- queryFn: () => fetch('/api/data').then(r => r.json()),
124
- });
125
-
126
- // ...
127
- }
128
- ```
129
-
130
- ## License
131
-
132
- MIT
@@ -1,226 +0,0 @@
1
- # Additional UI Libraries & Tools to Consider
2
-
3
- This document lists recommended libraries and tools to enhance your frontend starter kit, organized by category.
4
-
5
- ## UI Components & Styling
6
-
7
- ### Already Included ✅
8
- - **shadcn/ui** - Copy-paste React components built with Radix UI and Tailwind
9
- - **Tailwind CSS** - Utility-first CSS framework
10
- - **Lucide React** - Beautiful, consistent icon library
11
-
12
- ### Consider Adding
13
-
14
- #### Animation Libraries
15
- - **Framer Motion** - Production-ready motion library for React
16
- ```bash
17
- pnpm add framer-motion
18
- ```
19
-
20
- #### Form Libraries
21
- - **React Hook Form** - Performant, flexible forms with easy validation
22
- ```bash
23
- pnpm add react-hook-form @hookform/resolvers
24
- ```
25
-
26
- #### Date & Time
27
- - **date-fns** - Modern JavaScript date utility library
28
- ```bash
29
- pnpm add date-fns
30
- ```
31
- - **react-day-picker** - Flexible date picker component
32
- ```bash
33
- pnpm add react-day-picker
34
- ```
35
-
36
- #### Charts & Data Visualization
37
- - **Recharts** - Composable charting library built with React
38
- ```bash
39
- pnpm add recharts
40
- ```
41
- - **Victory** - React charting library
42
- ```bash
43
- pnpm add victory
44
- ```
45
-
46
- ## State Management
47
-
48
- - **Zustand** - Small, fast state management (simpler alternative to Redux)
49
- ```bash
50
- pnpm add zustand
51
- ```
52
- - **Jotai** - Primitive and flexible state management
53
- ```bash
54
- pnpm add jotai
55
- ```
56
-
57
- ## Utilities
58
-
59
- #### Validation (Already Included ✅)
60
- - **Zod** - TypeScript-first schema validation
61
-
62
- #### HTTP Client
63
- - **Axios** - Promise-based HTTP client (alternative to fetch)
64
- ```bash
65
- pnpm add axios
66
- ```
67
-
68
- #### Formatting
69
- - **clsx** (Already included ✅) - Tiny utility for constructing className strings
70
- - **tailwind-merge** (Already included ✅) - Merge Tailwind CSS classes
71
-
72
- ## Developer Experience
73
-
74
- ### Already Included ✅
75
- - **Biome** - Fast linter and formatter
76
- - **TypeScript** - Static type checking
77
- - **Vite** - Lightning-fast build tool
78
-
79
- ### Consider Adding
80
-
81
- #### Testing
82
- - **Vitest** - Vite-native unit testing framework
83
- ```bash
84
- pnpm add -D vitest @vitest/ui
85
- ```
86
- - **Testing Library** - Simple testing utilities
87
- ```bash
88
- pnpm add -D @testing-library/react @testing-library/jest-dom @testing-library/user-event
89
- ```
90
- - **Playwright** - End-to-end testing
91
- ```bash
92
- pnpm add -D @playwright/test
93
- ```
94
-
95
- #### Documentation
96
- - **Storybook** - Component documentation and development
97
- ```bash
98
- pnpm dlx storybook@latest init
99
- ```
100
-
101
- ## Authentication & Security
102
-
103
- - **Auth.js (NextAuth.js)** - Authentication for React
104
- ```bash
105
- pnpm add next-auth
106
- ```
107
- - **Clerk** - Complete authentication and user management
108
- ```bash
109
- pnpm add @clerk/clerk-react
110
- ```
111
-
112
- ## File Handling
113
-
114
- - **React Dropzone** - File upload with drag and drop
115
- ```bash
116
- pnpm add react-dropzone
117
- ```
118
-
119
- ## Tables & Data Grid
120
-
121
- - **TanStack Table** - Headless UI for building powerful tables
122
- ```bash
123
- pnpm add @tanstack/react-table
124
- ```
125
-
126
- ## Internationalization (i18n)
127
-
128
- - **react-i18next** - Internationalization framework
129
- ```bash
130
- pnpm add react-i18next i18next
131
- ```
132
-
133
- ## Accessibility
134
-
135
- - **@radix-ui/react-*** (Already included via shadcn/ui ✅) - Accessible component primitives
136
- - **react-aria** - Adobe's accessible UI primitives
137
- ```bash
138
- pnpm add react-aria
139
- ```
140
-
141
- ## Performance Monitoring
142
-
143
- - **@vercel/analytics** - Analytics for your app
144
- ```bash
145
- pnpm add @vercel/analytics
146
- ```
147
-
148
- ## Recommendations
149
-
150
- ### Minimal Setup (Current)
151
- You currently have:
152
- - ✅ React Router (routing)
153
- - ✅ TanStack Query (data fetching)
154
- - ✅ shadcn/ui (components)
155
- - ✅ Tailwind CSS (styling)
156
- - ✅ Drizzle ORM (database)
157
- - ✅ Biome (linting/formatting)
158
-
159
- ### Essential Additions
160
- Consider adding these for most projects:
161
- 1. **React Hook Form** - For complex forms
162
- 2. **Framer Motion** - For animations
163
- 3. **date-fns** - For date manipulation
164
- 4. **Zustand** - For global state (if needed)
165
-
166
- ### Full-Featured Setup
167
- For a production-ready application:
168
- 1. All essential additions above
169
- 2. **Vitest + Testing Library** - For testing
170
- 3. **TanStack Table** - For data tables
171
- 4. **Auth.js or Clerk** - For authentication
172
- 5. **Recharts** - For data visualization
173
- 6. **React Dropzone** - For file uploads
174
-
175
- ## Usage Examples
176
-
177
- ### Adding shadcn/ui Components
178
-
179
- The starter is configured for shadcn/ui. Add components via CLI:
180
-
181
- ```bash
182
- # Add specific components
183
- pnpm dlx shadcn@latest add button
184
- pnpm dlx shadcn@latest add card dialog form input
185
-
186
- # View all available components
187
- pnpm dlx shadcn@latest add
188
- ```
189
-
190
- ### Using TanStack Query
191
-
192
- Example of data fetching with TanStack Query:
193
-
194
- ```typescript
195
- import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
196
-
197
- // Fetch data
198
- function MyComponent() {
199
- const { data, isLoading, error } = useQuery({
200
- queryKey: ['todos'],
201
- queryFn: () => fetch('/api/todos').then(r => r.json()),
202
- });
203
-
204
- // Mutations
205
- const queryClient = useQueryClient();
206
- const mutation = useMutation({
207
- mutationFn: (newTodo) => fetch('/api/todos', {
208
- method: 'POST',
209
- body: JSON.stringify(newTodo),
210
- }),
211
- onSuccess: () => {
212
- queryClient.invalidateQueries({ queryKey: ['todos'] });
213
- },
214
- });
215
- }
216
- ```
217
-
218
- ## Path Aliases
219
-
220
- The project already has `@` configured as an alias:
221
-
222
- ```typescript
223
- import { cn } from '@/lib/utils';
224
- import { Button } from '@/components/ui/button';
225
- import { HomePage } from '@/pages/home/HomePage';
226
- ```
@@ -1,162 +0,0 @@
1
- # Frontend Starter Kit - Setup Summary
2
-
3
- ## What Was Done
4
-
5
- ### ✅ Replaced ESLint with Biome
6
- - Removed all ESLint dependencies and configuration
7
- - Added Biome 2.3.7 with proper configuration
8
- - Updated scripts: `lint`, `lint:fix`, `format`
9
-
10
- ### ✅ Updated All Packages to Latest
11
- Used `npm-check-updates` to update all dependencies:
12
- - React 19.2.0
13
- - Tailwind CSS 4.1.17 (major upgrade from v3)
14
- - TanStack Query 5.90.10
15
- - React Router 7.9.6
16
- - Radix UI components (latest)
17
- - And many more...
18
-
19
- ### ✅ Added Essential UI Libraries
20
-
21
- #### Dependencies
22
- - `@radix-ui/*` - Accessible component primitives (for shadcn/ui)
23
- - `@tanstack/react-query` + devtools - Data fetching and caching
24
- - `class-variance-authority` - For component variants
25
- - `clsx` - Classname utility
26
- - `drizzle-orm` - Type-safe database ORM
27
- - `lucide-react` - Icon library
28
- - `react-router-dom` - Client-side routing
29
- - `tailwind-merge` - Merge Tailwind classes
30
- - `tailwindcss-animate` - Animation utilities
31
- - `zod` - Schema validation
32
-
33
- #### Dev Dependencies
34
- - `@biomejs/biome` - Linter and formatter
35
- - `@tailwindcss/postcss` - Tailwind v4 PostCSS plugin
36
- - `autoprefixer` - CSS autoprefixer
37
- - `drizzle-kit` - Drizzle ORM CLI
38
- - `tailwindcss` - Utility-first CSS framework
39
-
40
- ### ✅ Configured for shadcn/ui
41
- - Created `components.json` for shadcn CLI
42
- - Set up path aliases (`@/` → `src/`)
43
- - Configured Tailwind with shadcn-compatible theme variables
44
- - Components can be added via: `pnpm dlx shadcn@latest add button`
45
-
46
- ### ✅ Set Up Modern Build Stack
47
- - Tailwind CSS v4 with new `@theme` directive
48
- - PostCSS with proper autoprefixer
49
- - Path aliases in both TypeScript and Vite
50
- - Proper ES module syntax throughout
51
-
52
- ### ✅ Added Folder Structure
53
-
54
- ```
55
- src/
56
- ├── components/
57
- │ ├── layout/
58
- │ │ └── Layout.tsx # Main layout with navigation
59
- │ └── ui/ # (empty - add shadcn components here)
60
- ├── hooks/ # (empty - for custom hooks)
61
- ├── lib/
62
- │ ├── api-client.ts # HTTP client helper
63
- │ └── utils.ts # cn() helper for classnames
64
- ├── pages/
65
- │ ├── home/
66
- │ │ └── HomePage.tsx # Home page with TanStack Query example
67
- │ └── about/
68
- │ └── AboutPage.tsx # About page
69
- ├── App.tsx # Main app with React Router
70
- ├── main.tsx # Entry point with providers
71
- └── index.css # Global styles + Tailwind v4 theme
72
- ```
73
-
74
- ### ✅ Added Configuration Files
75
- - `biome.json` - Biome linter/formatter config
76
- - `tailwind.config.js` - Tailwind v4 config
77
- - `postcss.config.js` - PostCSS with Tailwind plugin
78
- - `components.json` - shadcn/ui CLI config
79
- - `.env.example` - Environment variables template
80
-
81
- ### ✅ Created Documentation
82
- - `README.md` - Complete setup and usage guide
83
- - `RECOMMENDED_LIBRARIES.md` - Additional libraries to consider
84
-
85
- ## Quick Start
86
-
87
- 1. **Install dependencies:**
88
- ```bash
89
- cd frontend
90
- pnpm install
91
- ```
92
-
93
- 2. **Start development server:**
94
- ```bash
95
- pnpm dev
96
- ```
97
-
98
- 3. **Add shadcn/ui components:**
99
- ```bash
100
- pnpm dlx shadcn@latest add button card dialog
101
- ```
102
-
103
- ## Scripts Available
104
-
105
- - `pnpm dev` - Start development server
106
- - `pnpm build` - Build for production
107
- - `pnpm preview` - Preview production build
108
- - `pnpm lint` - Check code with Biome
109
- - `pnpm lint:fix` - Fix linting issues
110
- - `pnpm format` - Format code
111
-
112
- ## Important Notes
113
-
114
- ### Tailwind CSS v4
115
- This project uses Tailwind CSS v4, which has some changes from v3:
116
- - Uses `@import 'tailwindcss'` instead of `@tailwind` directives
117
- - Theme configuration uses `@theme` directive in CSS
118
- - Requires `@tailwindcss/postcss` plugin
119
- - Colors are prefixed with `--color-*` in the theme
120
-
121
- ### shadcn/ui
122
- Components are NOT pre-installed. Add them as needed:
123
- ```bash
124
- pnpm dlx shadcn@latest add <component-name>
125
- ```
126
-
127
- Components will be added to `src/components/ui/` and can be customized.
128
-
129
- ### Path Aliases
130
- Use `@/` to import from src directory:
131
- ```typescript
132
- import { cn } from '@/lib/utils';
133
- import { Button } from '@/components/ui/button';
134
- ```
135
-
136
- ## Testing the Setup
137
-
138
- Build completed successfully! ✅
139
- - TypeScript compilation: ✅
140
- - Vite build: ✅
141
- - Total build size: ~262KB (gzipped: ~83KB)
142
-
143
- ## Next Steps
144
-
145
- 1. Review the folder structure and example pages
146
- 2. Add shadcn/ui components as needed
147
- 3. Check `RECOMMENDED_LIBRARIES.md` for additional tools
148
- 4. Customize the theme in `src/index.css`
149
- 5. Add your API endpoints and data fetching logic
150
-
151
- ## Tech Stack Summary
152
-
153
- - ⚛️ React 19 + TypeScript
154
- - 🎨 Tailwind CSS v4
155
- - 🎯 shadcn/ui (Radix UI + Tailwind)
156
- - 🔄 TanStack Query v5
157
- - 🗺️ React Router v7
158
- - 🗄️ Drizzle ORM
159
- - 🧹 Biome (linting + formatting)
160
- - ⚡ Vite 7
161
- - 🔤 Lucide React (icons)
162
- - ✅ Zod (validation)
@@ -1,47 +0,0 @@
1
- {
2
- "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3
- "vcs": {
4
- "enabled": true,
5
- "clientKind": "git",
6
- "useIgnoreFile": true
7
- },
8
- "files": {
9
- "ignoreUnknown": false,
10
- "ignore": [
11
- "node_modules",
12
- "dist",
13
- "build",
14
- ".next",
15
- "coverage"
16
- ]
17
- },
18
- "formatter": {
19
- "enabled": true,
20
- "indentStyle": "space",
21
- "indentWidth": 2,
22
- "lineWidth": 100
23
- },
24
- "organizeImports": {
25
- "enabled": true
26
- },
27
- "linter": {
28
- "enabled": true,
29
- "rules": {
30
- "recommended": true,
31
- "suspicious": {
32
- "noExplicitAny": "warn"
33
- },
34
- "style": {
35
- "useConst": "error",
36
- "useTemplate": "warn"
37
- }
38
- }
39
- },
40
- "javascript": {
41
- "formatter": {
42
- "quoteStyle": "single",
43
- "trailingCommas": "es5",
44
- "semicolons": "always"
45
- }
46
- }
47
- }
@@ -1,22 +0,0 @@
1
- {
2
- "$schema": "https://ui.shadcn.com/schema.json",
3
- "style": "new-york",
4
- "rsc": false,
5
- "tsx": true,
6
- "tailwind": {
7
- "config": "tailwind.config.js",
8
- "css": "src/index.css",
9
- "baseColor": "neutral",
10
- "cssVariables": true,
11
- "prefix": ""
12
- },
13
- "iconLibrary": "lucide",
14
- "aliases": {
15
- "components": "@/components",
16
- "utils": "@/lib/utils",
17
- "ui": "@/components/ui",
18
- "lib": "@/lib",
19
- "hooks": "@/hooks"
20
- },
21
- "registries": {}
22
- }
@@ -1,13 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>frontend</title>
8
- </head>
9
- <body>
10
- <div id="root"></div>
11
- <script type="module" src="/src/main.tsx"></script>
12
- </body>
13
- </html>