Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions apps/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,26 @@
"@hono/zod-openapi": "^1.1.4",
"@hono/zod-validator": "^0.7.4",
"@vitnode/core": "workspace:*",
"drizzle-kit": "^0.31.6",
"drizzle-kit": "^0.31.7",
"drizzle-orm": "^0.44.7",
"hono": "^4.10.5",
"next-intl": "^4.5.1",
"hono": "^4.10.6",
"next-intl": "^4.5.3",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"use-intl": "^4.5.1",
"use-intl": "^4.5.3",
"zod": "^4.1.12"
},
"devDependencies": {
"@hono/node-server": "^1.19.6",
"@react-email/components": "^1.0.0",
"@types/node": "^24.10.0",
"@types/react": "^19.2.3",
"@types/react-dom": "^19.2.2",
"@react-email/components": "^1.0.1",
"@types/node": "^24.10.1",
"@types/react": "^19.2.5",
"@types/react-dom": "^19.2.3",
"@vitnode/config": "workspace:*",
"@vitnode/nodemailer": "workspace:*",
"dotenv": "^17.2.3",
"eslint": "^9.39.1",
"react-email": "^5.0.1",
"react-email": "^5.0.4",
"tsc-alias": "^1.8.16",
"tsx": "^4.20.6",
"typescript": "^5.9.3"
Expand Down
28 changes: 14 additions & 14 deletions apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@
"@hono/zod-validator": "^0.7.4",
"@vitnode/blog": "workspace:*",
"@vitnode/core": "workspace:*",
"drizzle-kit": "^0.31.6",
"drizzle-kit": "^0.31.7",
"drizzle-orm": "^0.44.7",
"fumadocs-core": "^16.0.10",
"fumadocs-mdx": "^13.0.7",
"fumadocs-ui": "^16.0.10",
"hono": "^4.10.5",
"fumadocs-core": "^16.0.11",
"fumadocs-mdx": "^13.0.8",
"fumadocs-ui": "^16.0.11",
"hono": "^4.10.6",
"lucide-react": "^0.553.0",
"motion": "^12.23.24",
"next": "^16.0.1",
"next-intl": "^4.5.1",
"next": "^16.0.3",
"next-intl": "^4.5.3",
"node-cron": "^4.2.1",
"react": "^19.2.0",
"react-dom": "^19.2.0",
Expand All @@ -44,14 +44,14 @@
"sonner": "^2.0.7"
},
"devDependencies": {
"@next/bundle-analyzer": "^16.0.1",
"@next/bundle-analyzer": "^16.0.3",
"@playwright/test": "^1.56.1",
"@react-email/components": "^1.0.0",
"@react-email/components": "^1.0.1",
"@tailwindcss/postcss": "^4.1.17",
"@types/mdx": "^2.0.13",
"@types/node": "^24.10.0",
"@types/react": "^19.2.3",
"@types/react-dom": "^19.2.2",
"@types/node": "^24.10.1",
"@types/react": "^19.2.5",
"@types/react-dom": "^19.2.3",
"@vitnode/config": "workspace:*",
"@vitnode/node-cron": "workspace:*",
"@vitnode/nodemailer": "workspace:*",
Expand All @@ -60,12 +60,12 @@
"class-variance-authority": "^0.7.1",
"eslint": "^9.39.1",
"postcss": "^8.5.6",
"react-email": "^5.0.1",
"react-email": "^5.0.4",
"shiki": "^3.15.0",
"tailwindcss": "^4.1.17",
"tw-animate-css": "^1.4.0",
"typescript": "^5.9.3",
"use-intl": "^4.5.1",
"use-intl": "^4.5.3",
"zod": "^4.1.12"
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"test:e2e": "turbo test:e2e"
},
"devDependencies": {
"@types/node": "^24.10.0",
"@types/node": "^24.10.1",
"@vitnode/config": "workspace:*",
"prettier": "^3.6.2",
"prettier-plugin-tailwindcss": "^0.7.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/config/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
"typescript": "^5.9.3"
},
"dependencies": {
"@eslint-react/eslint-plugin": "^2.3.4",
"@eslint-react/eslint-plugin": "^2.3.5",
"@eslint/js": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-jsx-a11y": "^6.10.2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,13 @@ To get started, run the following commands:

```bash
pnpm i
# or
bun i
# or
npm i
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
Open {{START_URLS}} with your browser to see the result.

## Development

To start the development server, you need to create a `.env` file in the root of the project from `.env.example`.
To start the development server, you need to create a `.env` file from the provided `.env.example` file.

In the `development` environment, you can just copy and paste the content of `.env.example` to `.env`.

Expand All @@ -41,8 +37,4 @@ To start the development server, run the following command:

```bash
pnpm dev
# or
bun dev
# or
npm run dev
```
5 changes: 2 additions & 3 deletions packages/create-vitnode-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"dist",
"copy-of-vitnode-app",
"copy-of-vitnode-plugin",
"README.md",
"eslint",
"eslint-react"
],
Expand All @@ -36,14 +35,14 @@
"typescript"
],
"dependencies": {
"@inquirer/prompts": "^7.10.0",
"@inquirer/prompts": "^7.10.1",
"commander": "^14.0.2",
"ora": "^9.0.0",
"picocolors": "^1.1.1",
"validate-npm-package-name": "^7.0.0"
},
"devDependencies": {
"@types/node": "^24.10.0",
"@types/node": "^24.10.1",
"@types/prompts": "^2.4.9",
"@types/validate-npm-package-name": "^4.0.2",
"@vitnode/config": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ const singleAppDevDeps = (eslint: boolean) => ({
const webDeps = {
"@vitnode/core": "",
"lucide-react": versionsPackageJson.lucide,
next: versionsPackageJson.nextWebInMonorepo,
next: versionsPackageJson.nextSingle,
"next-intl": versionsPackageJson.nextIntl,
react: versionsPackageJson.react,
"react-dom": versionsPackageJson.reactDom,
Expand Down
54 changes: 38 additions & 16 deletions packages/create-vitnode-app/src/create/create-vitnode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,24 +144,27 @@ export const createVitNode = async ({

if (eslint) {
spinner.text = "Copying ESLint & Prettier files...";
if (mode === "onlyApi") {
await cp(join(templatePath, "eslint"), root, {
recursive: true,
});
} else if (mode === "singleApp") {
const target = monorepo ? monorepoStructure.web : root;
await cp(join(templatePath, "eslint-react"), target, {
recursive: true,
});
} else if (mode === "apiMonorepo") {
await Promise.all([
cp(join(templatePath, "eslint"), monorepoStructure.api, {
if (monorepo) {
if (existsSync(monorepoStructure.api)) {
await cp(join(templatePath, "eslint"), monorepoStructure.api, {
recursive: true,
}),
cp(join(templatePath, "eslint-react"), monorepoStructure.web, {
});
}
if (existsSync(monorepoStructure.web)) {
await cp(join(templatePath, "eslint-react"), monorepoStructure.web, {
recursive: true,
});
}
} else {
if (mode === "onlyApi") {
await cp(join(templatePath, "eslint"), root, {
recursive: true,
}),
]);
});
} else if (mode === "singleApp") {
await cp(join(templatePath, "eslint-react"), root, {
recursive: true,
});
}
}
}

Expand Down Expand Up @@ -274,6 +277,25 @@ export const createVitNode = async ({
});
}

spinner.text = "Preparing README...";
// Copy README.md
await copyFile(join(templatePath, "README.md"), join(root, "README.md"));
// Update README.md with package manager
let readmeContent = await readFile(join(root, "README.md"), "utf-8");
readmeContent = readmeContent.replaceAll("pnpm", packageManager);

// Update README.md with start URLs
let startUrlsText = "[http://localhost:3000](http://localhost:3000)";
if (mode === "onlyApi") {
startUrlsText = "[http://localhost:8080](http://localhost:8080)";
} else if (mode === "apiMonorepo") {
startUrlsText =
"[http://localhost:3000](http://localhost:3000) for the Web app and [http://localhost:8080](http://localhost:8080) for the API";
}

readmeContent = readmeContent.replace("{{START_URLS}}", startUrlsText);
await writeFile(join(root, "README.md"), readmeContent);

spinner.text = "Generating migrations...";
let migrationsCwd: string;
if (mode === "apiMonorepo" || (monorepo && mode !== "singleApp")) {
Expand Down
11 changes: 5 additions & 6 deletions packages/create-vitnode-app/src/create/package-versions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ export const versionsPackageJson = {

react: "^19.2",
reactDom: "^19.2",
nextSingle: "^16.0.1",
nextWebInMonorepo: "^15.4.6",
nextSingle: "^16.0",
nextIntl: "^4.5",
useIntl: "^4.5",
rhf: "^7.66.0",
Expand All @@ -28,18 +27,18 @@ export const versionsPackageJson = {
sonner: "^2.0.7",
dotenv: "^17.2.2",

drizzleKit: "^0.31.6",
drizzleKit: "^0.31.7",
drizzleOrm: "^0.44.7",

hono: "^4.10",
honoZodOpenapi: "^1.1.4",
honoZodValidator: "^0.7.4",
reactEmail: "^5.0.1",
reactEmailComponents: "^1.0.0",
reactEmail: "^5.0",
reactEmailComponents: "^1.0",
zod: "^4.1.12",

cva: "^0.7.1",
babelPluginReactCompiler: "^1.0.0",
babelPluginReactCompiler: "^1.0",

swcCli: "^0.7.9",
swcCore: "^1.15.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/node-cron/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
},
"devDependencies": {
"@swc/cli": "^0.7.9",
"@swc/core": "^1.15.1",
"@swc/core": "^1.15.2",
"@vitnode/config": "workspace:*",
"@vitnode/core": "workspace:*",
"concurrently": "^9.2.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/nodemailer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
},
"devDependencies": {
"@swc/cli": "^0.7.9",
"@swc/core": "^1.15.1",
"@swc/core": "^1.15.2",
"@types/nodemailer": "^7.0.3",
"@vitnode/config": "workspace:*",
"@vitnode/core": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion packages/resend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
},
"devDependencies": {
"@swc/cli": "^0.7.9",
"@swc/core": "^1.15.1",
"@swc/core": "^1.15.2",
"@vitnode/config": "workspace:*",
"@vitnode/core": "workspace:*",
"concurrently": "^9.2.1",
Expand Down
46 changes: 23 additions & 23 deletions packages/vitnode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,41 +40,41 @@
"@hono/zod-openapi": "^1.1.4",
"@hono/zod-validator": "^0.7.4",
"@hookform/resolvers": "^5.2.2",
"@react-email/components": "^1.0.0",
"@react-email/components": "^1.0.1",
"@swc/cli": "^0.7.9",
"@swc/core": "^1.15.1",
"@swc/core": "^1.15.2",
"@testing-library/dom": "^10.4.1",
"@testing-library/react": "^16.3.0",
"@types/node": "^24.10.0",
"@types/react": "^19.2.3",
"@types/react-dom": "^19.2.2",
"@vitejs/plugin-react": "^5.1.0",
"@vitest/coverage-v8": "^4.0.8",
"@types/node": "^24.10.1",
"@types/react": "^19.2.5",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.1",
"@vitest/coverage-v8": "^4.0.9",
"@vitnode/config": "workspace:*",
"chokidar": "^4.0.3",
"concurrently": "^9.2.1",
"drizzle-kit": "^0.31.6",
"drizzle-kit": "^0.31.7",
"drizzle-orm": "^0.44.7",
"eslint": "^9.39.1",
"hono": "^4.10.5",
"hono": "^4.10.6",
"jiti": "^2.6.1",
"jsdom": "^27.1.0",
"jsdom": "^27.2.0",
"lucide-react": "^0.553.0",
"next": "^16.0.1",
"next-intl": "^4.5.1",
"next": "^16.0.3",
"next-intl": "^4.5.3",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"react-email": "^5.0.1",
"react-email": "^5.0.4",
"react-hook-form": "^7.66.0",
"sonner": "^2.0.7",
"tailwindcss": "^4.1.17",
"tsc-alias": "^1.8.16",
"tsup": "^8.5.0",
"tsup": "^8.5.1",
"tsx": "^4.20.6",
"tw-animate-css": "^1.4.0",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^4.0.8",
"vitest": "^4.0.9",
"zod": "^4.1.12"
},
"bin": {
Expand Down Expand Up @@ -111,12 +111,12 @@
"dependencies": {
"@dnd-kit/core": "^6.3.1",
"@hono/swagger-ui": "^0.5.2",
"@react-email/preview-server": "^5.0.1",
"@tanstack/react-query": "^5.90.7",
"@tiptap/extension-text-align": "^3.10.5",
"@tiptap/pm": "^3.10.5",
"@tiptap/react": "^3.10.5",
"@tiptap/starter-kit": "^3.10.5",
"@react-email/preview-server": "^5.0.4",
"@tanstack/react-query": "^5.90.9",
"@tiptap/extension-text-align": "^3.10.7",
"@tiptap/pm": "^3.10.7",
"@tiptap/react": "^3.10.7",
"@tiptap/starter-kit": "^3.10.7",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
Expand All @@ -127,11 +127,11 @@
"next-themes": "^0.4.6",
"postgres": "^3.4.7",
"radix-ui": "^1.4.3",
"rate-limiter-flexible": "^8.2.0",
"rate-limiter-flexible": "^8.2.1",
"react-scan": "^0.4.3",
"tailwind-merge": "^3.4.0",
"use-debounce": "^10.0.6",
"use-intl": "^4.5.1",
"use-intl": "^4.5.3",
"vaul": "^1.1.2"
}
}
Loading