create-better-fullstack 1.4.11 → 1.4.13

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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Better Fullstack CLI
1
+ # Better Fullstack
2
2
 
3
- A CLI-first toolkit for building Full Stack applications. Skip the configuration. Ship the code.
3
+ Scaffold production-ready fullstack apps in seconds. Pick your stack from 270+ options the CLI wires everything together.
4
4
 
5
5
  ## Quick Start
6
6
 
@@ -13,75 +13,39 @@ pnpm create better-fullstack@latest
13
13
 
14
14
  # Using npm
15
15
  npx create-better-fullstack@latest
16
- ```
17
-
18
- ## Usage
19
-
20
- ```bash
21
- Usage: create-better-fullstack [project-directory] [options]
22
16
 
23
- Options:
24
- -V, --version Output the version number
25
- -y, --yes Use default configuration
26
- --yolo Random configuration (experimental)
27
- --database <type> Database type (none, sqlite, postgres, mysql, mongodb)
28
- --orm <type> ORM type (drizzle, prisma, mongoose, typeorm, kysely, mikroorm, sequelize, none)
29
- --auth <type> Authentication (better-auth, go-better-auth, clerk, nextauth, stack-auth, supabase-auth, auth0, none)
30
- --payments <type> Payments (polar, stripe, lemon-squeezy, paddle, dodo, none)
31
- --frontend <types...> Frontend types
32
- --backend <framework> Backend framework
33
- --runtime <runtime> Runtime (bun, node, workers, none)
34
- --api <type> API type (trpc, orpc, ts-rest, garph, none)
35
- --addons <types...> Additional addons
36
- --examples <types...> Examples to include (ai, none)
37
- --git / --no-git Initialize git repository
38
- --package-manager <pm> Package manager (npm, pnpm, bun)
39
- --install / --no-install Install dependencies
40
- --db-setup <setup> Database setup
41
- -h, --help Display help
17
+ # Using yarn
18
+ yarn create better-fullstack@latest
42
19
  ```
43
20
 
44
- ## Examples
21
+ ## Web Builder
45
22
 
46
- ```bash
47
- # Default configuration
48
- npx create-better-fullstack --yes
23
+ Configure your stack visually — pick every option from a UI, preview your choices, and get a ready-to-run command.
49
24
 
50
- # With specific options
51
- npx create-better-fullstack --database postgres --orm drizzle --auth better-auth --addons pwa biome
25
+ **[Open the App Builder →](https://better-fullstack.dev/new)**
52
26
 
53
- # Elysia backend with Node.js
54
- npx create-better-fullstack --backend elysia --runtime node
27
+ ## Features
55
28
 
56
- # Multiple frontends (web + native)
57
- npx create-better-fullstack --frontend tanstack-router native-bare
58
- ```
29
+ - **270+ options** frontend, backend, database, auth, payments, AI, DevOps, and more
30
+ - **4 ecosystems** — TypeScript, Rust, Python, Go
31
+ - **Visual builder** — configure your stack in the browser
32
+ - **Wired for you** — every picked integration is preconfigured and working out of the box
59
33
 
60
- ## Additional Commands
34
+ ## CLI Flags
61
35
 
62
36
  ```bash
63
- # Add new addons to an existing Better Fullstack project
64
- npx create-better-fullstack add --addons mcp skills --install
65
-
66
- # Show recent project history
67
- npx create-better-fullstack history --limit 10
68
-
69
- # Output history as JSON
70
- npx create-better-fullstack history --json
71
-
72
- # Clear saved history
73
- npx create-better-fullstack history --clear
37
+ --yes # Accept all defaults
38
+ --yolo # Scaffold a random stack good for exploring
39
+ --template <name> # Use a preset (t3, mern, pern, uniwind)
40
+ --ecosystem <lang> # Start in rust, python, or go mode
41
+ --no-git # Skip git initialization
42
+ --no-install # Skip dependency installation
43
+ --package-manager # Package manager (bun, pnpm, npm, yarn)
44
+ --verbose # Show detailed output
74
45
  ```
75
46
 
76
- ## Project Structure
47
+ ## Links
77
48
 
78
- ```
79
- my-app/
80
- ├── apps/
81
- │ ├── web/ # Frontend application
82
- │ ├── server/ # Backend API
83
- │ ├── native/ # (optional) Mobile application
84
- │ └── docs/ # (optional) Documentation site
85
- ├── packages/ # Shared packages
86
- └── README.md
87
- ```
49
+ - [Website](https://better-fullstack.dev)
50
+ - [GitHub](https://github.com/Marve10s/Better-Fullstack)
51
+ - [npm](https://www.npmjs.com/package/create-better-fullstack)
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { s as createBtsCli } from "./src-DgYCaMzA.mjs";
2
+ import { s as createBtsCli } from "./src-Cmf5RSiE.mjs";
3
3
 
4
4
  //#region src/cli.ts
5
5
  createBtsCli().run();
package/dist/index.d.mts CHANGED
@@ -144,6 +144,7 @@ declare const router: {
144
144
  modelfusion: "modelfusion";
145
145
  langchain: "langchain";
146
146
  llamaindex: "llamaindex";
147
+ "tanstack-ai": "tanstack-ai";
147
148
  }>>;
148
149
  realtime: z.ZodOptional<z.ZodEnum<{
149
150
  none: "none";
@@ -256,6 +257,11 @@ declare const router: {
256
257
  wxt: "wxt";
257
258
  msw: "msw";
258
259
  storybook: "storybook";
260
+ "tanstack-query": "tanstack-query";
261
+ "tanstack-table": "tanstack-table";
262
+ "tanstack-virtual": "tanstack-virtual";
263
+ "tanstack-db": "tanstack-db";
264
+ "tanstack-pacer": "tanstack-pacer";
259
265
  }>>>;
260
266
  examples: z.ZodOptional<z.ZodArray<z.ZodEnum<{
261
267
  none: "none";
@@ -267,6 +273,7 @@ declare const router: {
267
273
  bun: "bun";
268
274
  npm: "npm";
269
275
  pnpm: "pnpm";
276
+ yarn: "yarn";
270
277
  }>>;
271
278
  install: z.ZodOptional<z.ZodBoolean>;
272
279
  dbSetup: z.ZodOptional<z.ZodEnum<{
@@ -528,18 +535,18 @@ declare const router: {
528
535
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
529
536
  runtime: "none" | "bun" | "node" | "workers";
530
537
  frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
531
- addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook")[];
538
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer")[];
532
539
  examples: ("ai" | "none" | "chat-sdk")[];
533
540
  auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
534
541
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
535
542
  git: boolean;
536
- packageManager: "bun" | "npm" | "pnpm";
543
+ packageManager: "bun" | "npm" | "pnpm" | "yarn";
537
544
  install: boolean;
538
545
  dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "upstash" | "d1" | "docker";
539
546
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph";
540
547
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst";
541
548
  serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst";
542
- ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion";
549
+ ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion" | "tanstack-ai";
543
550
  effect: "effect" | "none" | "effect-full";
544
551
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
545
552
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
@@ -614,18 +621,18 @@ declare const router: {
614
621
  backend: "none" | "hono" | "express" | "fastify" | "elysia" | "fets" | "nestjs" | "adonisjs" | "nitro" | "encore" | "convex" | "self";
615
622
  runtime: "none" | "bun" | "node" | "workers";
616
623
  frontend: ("none" | "tanstack-router" | "react-router" | "react-vite" | "tanstack-start" | "next" | "nuxt" | "native-bare" | "native-uniwind" | "native-unistyles" | "svelte" | "solid" | "solid-start" | "astro" | "qwik" | "angular" | "redwood" | "fresh")[];
617
- addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook")[];
624
+ addons: ("none" | "pwa" | "tauri" | "starlight" | "biome" | "lefthook" | "husky" | "ruler" | "mcp" | "skills" | "turborepo" | "fumadocs" | "ultracite" | "oxlint" | "opentui" | "wxt" | "msw" | "storybook" | "tanstack-query" | "tanstack-table" | "tanstack-virtual" | "tanstack-db" | "tanstack-pacer")[];
618
625
  examples: ("ai" | "none" | "chat-sdk")[];
619
626
  auth: "none" | "better-auth" | "go-better-auth" | "clerk" | "nextauth" | "stack-auth" | "supabase-auth" | "auth0";
620
627
  payments: "none" | "polar" | "stripe" | "lemon-squeezy" | "paddle" | "dodo";
621
628
  git: boolean;
622
- packageManager: "bun" | "npm" | "pnpm";
629
+ packageManager: "bun" | "npm" | "pnpm" | "yarn";
623
630
  install: boolean;
624
631
  dbSetup: "none" | "turso" | "neon" | "prisma-postgres" | "planetscale" | "mongodb-atlas" | "supabase" | "upstash" | "d1" | "docker";
625
632
  api: "none" | "trpc" | "orpc" | "ts-rest" | "garph";
626
633
  webDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst";
627
634
  serverDeploy: "none" | "docker" | "cloudflare" | "fly" | "railway" | "sst";
628
- ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion";
635
+ ai: "none" | "langgraph" | "langchain" | "llamaindex" | "vercel-ai" | "mastra" | "voltagent" | "openai-agents" | "google-adk" | "modelfusion" | "tanstack-ai";
629
636
  effect: "effect" | "none" | "effect-full";
630
637
  stateManagement: "none" | "zustand" | "jotai" | "nanostores" | "redux-toolkit" | "mobx" | "xstate" | "valtio" | "tanstack-store" | "legend-state";
631
638
  forms: "none" | "tanstack-form" | "react-hook-form" | "formik" | "final-form" | "conform" | "modular-forms";
@@ -712,6 +719,11 @@ declare const router: {
712
719
  wxt: "wxt";
713
720
  msw: "msw";
714
721
  storybook: "storybook";
722
+ "tanstack-query": "tanstack-query";
723
+ "tanstack-table": "tanstack-table";
724
+ "tanstack-virtual": "tanstack-virtual";
725
+ "tanstack-db": "tanstack-db";
726
+ "tanstack-pacer": "tanstack-pacer";
715
727
  }>>>;
716
728
  webDeploy: z.ZodOptional<z.ZodEnum<{
717
729
  none: "none";
@@ -734,6 +746,7 @@ declare const router: {
734
746
  bun: "bun";
735
747
  npm: "npm";
736
748
  pnpm: "pnpm";
749
+ yarn: "yarn";
737
750
  }>>;
738
751
  projectDir: z.ZodOptional<z.ZodString>;
739
752
  }, z.core.$strip>, _orpc_server0.Schema<void, void>, _orpc_server0.MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import { a as builder, c as createVirtual, d as history, f as router, i as add, l as docs, n as TEMPLATE_COUNT, o as create, p as sponsors, r as VirtualFileSystem, s as createBtsCli, t as EMBEDDED_TEMPLATES, u as generateVirtualProject } from "./src-DgYCaMzA.mjs";
2
+ import { a as builder, c as createVirtual, d as history, f as router, i as add, l as docs, n as TEMPLATE_COUNT, o as create, p as sponsors, r as VirtualFileSystem, s as createBtsCli, t as EMBEDDED_TEMPLATES, u as generateVirtualProject } from "./src-Cmf5RSiE.mjs";
3
3
 
4
4
  export { EMBEDDED_TEMPLATES, TEMPLATE_COUNT, VirtualFileSystem, add, builder, create, createBtsCli, createVirtual, docs, generateVirtualProject, history, router, sponsors };
@@ -1214,6 +1214,34 @@ function getAddonDisplay(addon) {
1214
1214
  label = "WXT";
1215
1215
  hint = "Build browser extensions";
1216
1216
  break;
1217
+ case "msw":
1218
+ label = "MSW";
1219
+ hint = "Mock Service Worker for API mocking";
1220
+ break;
1221
+ case "storybook":
1222
+ label = "Storybook";
1223
+ hint = "Component development and testing workshop";
1224
+ break;
1225
+ case "tanstack-query":
1226
+ label = "TanStack Query";
1227
+ hint = "Powerful async state management & data fetching";
1228
+ break;
1229
+ case "tanstack-table":
1230
+ label = "TanStack Table";
1231
+ hint = "Headless table with sorting, filtering & pagination";
1232
+ break;
1233
+ case "tanstack-virtual":
1234
+ label = "TanStack Virtual";
1235
+ hint = "Virtualize large lists & grids for 60fps performance";
1236
+ break;
1237
+ case "tanstack-db":
1238
+ label = "TanStack DB";
1239
+ hint = "Reactive client-first data store with sync backends (Beta)";
1240
+ break;
1241
+ case "tanstack-pacer":
1242
+ label = "TanStack Pacer";
1243
+ hint = "Debounce, throttle, rate-limit & queue utilities (Beta)";
1244
+ break;
1217
1245
  default:
1218
1246
  label = addon;
1219
1247
  hint = `Add ${addon}`;
@@ -1238,9 +1266,18 @@ const ADDON_GROUPS = {
1238
1266
  "tauri",
1239
1267
  "opentui",
1240
1268
  "wxt",
1241
- "ruler"
1269
+ "ruler",
1270
+ "msw",
1271
+ "storybook"
1242
1272
  ],
1243
- "AI Agents": ["mcp", "skills"]
1273
+ "AI Agents": ["mcp", "skills"],
1274
+ TanStack: [
1275
+ "tanstack-query",
1276
+ "tanstack-table",
1277
+ "tanstack-virtual",
1278
+ "tanstack-db",
1279
+ "tanstack-pacer"
1280
+ ]
1244
1281
  };
1245
1282
  async function getAddonsChoice(addons, frontends, auth) {
1246
1283
  if (addons !== void 0) return addons;
@@ -1249,7 +1286,8 @@ async function getAddonsChoice(addons, frontends, auth) {
1249
1286
  Tooling: [],
1250
1287
  Documentation: [],
1251
1288
  Extensions: [],
1252
- "AI Agents": []
1289
+ "AI Agents": [],
1290
+ TanStack: []
1253
1291
  };
1254
1292
  const frontendsArray = frontends || [];
1255
1293
  for (const addon of allAddons) {
@@ -1265,6 +1303,7 @@ async function getAddonsChoice(addons, frontends, auth) {
1265
1303
  else if (ADDON_GROUPS.Documentation.includes(addon)) groupedOptions.Documentation.push(option);
1266
1304
  else if (ADDON_GROUPS.Extensions.includes(addon)) groupedOptions.Extensions.push(option);
1267
1305
  else if (ADDON_GROUPS["AI Agents"].includes(addon)) groupedOptions["AI Agents"].push(option);
1306
+ else if (ADDON_GROUPS.TanStack.includes(addon)) groupedOptions.TanStack.push(option);
1268
1307
  }
1269
1308
  Object.keys(groupedOptions).forEach((group$1) => {
1270
1309
  if (groupedOptions[group$1].length === 0) delete groupedOptions[group$1];
@@ -1289,7 +1328,8 @@ async function getAddonsToAdd(frontend, existingAddons = [], auth) {
1289
1328
  Tooling: [],
1290
1329
  Documentation: [],
1291
1330
  Extensions: [],
1292
- "AI Agents": []
1331
+ "AI Agents": [],
1332
+ TanStack: []
1293
1333
  };
1294
1334
  const frontendArray = frontend || [];
1295
1335
  const compatibleAddons = getCompatibleAddons$1(types_exports.AddonsSchema.options.filter((addon) => addon !== "none"), frontendArray, existingAddons, auth);
@@ -1304,6 +1344,7 @@ async function getAddonsToAdd(frontend, existingAddons = [], auth) {
1304
1344
  else if (ADDON_GROUPS.Documentation.includes(addon)) groupedOptions.Documentation.push(option);
1305
1345
  else if (ADDON_GROUPS.Extensions.includes(addon)) groupedOptions.Extensions.push(option);
1306
1346
  else if (ADDON_GROUPS["AI Agents"].includes(addon)) groupedOptions["AI Agents"].push(option);
1347
+ else if (ADDON_GROUPS.TanStack.includes(addon)) groupedOptions.TanStack.push(option);
1307
1348
  }
1308
1349
  Object.keys(groupedOptions).forEach((group$1) => {
1309
1350
  if (groupedOptions[group$1].length === 0) delete groupedOptions[group$1];
@@ -1532,6 +1573,7 @@ function getPackageExecutionCommand(packageManager, commandWithArgs) {
1532
1573
  switch (packageManager) {
1533
1574
  case "pnpm": return `pnpm dlx ${commandWithArgs}`;
1534
1575
  case "bun": return `bunx ${commandWithArgs}`;
1576
+ case "yarn": return `yarn dlx ${commandWithArgs}`;
1535
1577
  default: return `npx ${commandWithArgs}`;
1536
1578
  }
1537
1579
  }
@@ -1552,6 +1594,11 @@ function getPackageExecutionArgs(packageManager, commandWithArgs) {
1552
1594
  ...args
1553
1595
  ];
1554
1596
  case "bun": return ["bunx", ...args];
1597
+ case "yarn": return [
1598
+ "yarn",
1599
+ "dlx",
1600
+ ...args
1601
+ ];
1555
1602
  default: return ["npx", ...args];
1556
1603
  }
1557
1604
  }
@@ -1571,6 +1618,7 @@ function getPackageRunnerPrefix(packageManager) {
1571
1618
  switch (packageManager) {
1572
1619
  case "pnpm": return ["pnpm", "dlx"];
1573
1620
  case "bun": return ["bunx"];
1621
+ case "yarn": return ["yarn", "dlx"];
1574
1622
  default: return ["npx"];
1575
1623
  }
1576
1624
  }
@@ -2969,6 +3017,11 @@ async function getAIChoice(ai) {
2969
3017
  label: "LlamaIndex",
2970
3018
  hint: "Data framework for LLM applications"
2971
3019
  },
3020
+ {
3021
+ value: "tanstack-ai",
3022
+ label: "TanStack AI",
3023
+ hint: "Unified LLM interface for AI-powered apps (Alpha)"
3024
+ },
2972
3025
  {
2973
3026
  value: "none",
2974
3027
  label: "None",
@@ -4388,6 +4441,11 @@ async function getPackageManagerChoice(packageManager) {
4388
4441
  value: "bun",
4389
4442
  label: "bun",
4390
4443
  hint: "All-in-one JavaScript runtime & toolkit"
4444
+ },
4445
+ {
4446
+ value: "yarn",
4447
+ label: "yarn",
4448
+ hint: "Yarn Berry (v4) with PnP or node_modules"
4391
4449
  }
4392
4450
  ],
4393
4451
  initialValue: getUserPkgManager()
@@ -6009,6 +6067,7 @@ function getBaseCommand(packageManager) {
6009
6067
  switch (packageManager) {
6010
6068
  case "bun": return "bun create better-fullstack@latest";
6011
6069
  case "pnpm": return "pnpm create better-fullstack@latest";
6070
+ case "yarn": return "yarn create better-fullstack@latest";
6012
6071
  case "npm":
6013
6072
  default: return "npx create-better-fullstack@latest";
6014
6073
  }
@@ -8187,7 +8246,7 @@ async function displayPostInstallInstructions(config) {
8187
8246
  }
8188
8247
  const isConvex = backend === "convex";
8189
8248
  const isBackendSelf = backend === "self";
8190
- const runCmd = packageManager === "npm" ? "npm run" : packageManager === "pnpm" ? "pnpm run" : "bun run";
8249
+ const runCmd = packageManager === "npm" ? "npm run" : packageManager === "pnpm" ? "pnpm run" : packageManager === "yarn" ? "yarn" : "bun run";
8191
8250
  const cdCmd = `cd ${relativePath}`;
8192
8251
  const hasHusky = addons?.includes("husky");
8193
8252
  const hasLefthook = addons?.includes("lefthook");
@@ -8275,7 +8334,7 @@ function getLintingInstructions(runCmd) {
8275
8334
  return `${pc.bold("Linting and formatting:")}\n${pc.cyan("•")} Format and lint fix: ${`${runCmd} check`}\n`;
8276
8335
  }
8277
8336
  function getLefthookInstructions(packageManager) {
8278
- const cmd = packageManager === "npm" ? "npx" : packageManager;
8337
+ const cmd = packageManager === "npm" ? "npx" : packageManager === "yarn" ? "yarn dlx" : packageManager;
8279
8338
  return `${pc.bold("Git hooks with Lefthook:")}\n${pc.cyan("•")} Install hooks: ${cmd} lefthook install\n`;
8280
8339
  }
8281
8340
  async function getDatabaseInstructions(database, orm, runCmd, _runtime, dbSetup, serverDeploy, _backend) {
@@ -8340,7 +8399,7 @@ function getClerkInstructions(backend, frontend) {
8340
8399
  return "";
8341
8400
  }
8342
8401
  function getBetterAuthConvexInstructions(hasWeb, webPort, packageManager) {
8343
- const cmd = packageManager === "npm" ? "npx" : packageManager;
8402
+ const cmd = packageManager === "npm" ? "npx" : packageManager === "yarn" ? "yarn dlx" : packageManager;
8344
8403
  return `${pc.bold("Better Auth + Convex Setup:")}\n${pc.cyan("•")} Set environment variables from ${pc.white("packages/backend")}:\n${pc.white(" cd packages/backend")}\n${pc.white(` ${cmd} convex env set BETTER_AUTH_SECRET=$(openssl rand -base64 32)`)}\n` + (hasWeb ? `${pc.white(` ${cmd} convex env set SITE_URL http://localhost:${webPort}`)}\n` : "");
8345
8404
  }
8346
8405
  function getPolarInstructions(backend) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-better-fullstack",
3
- "version": "1.4.11",
4
- "description": "A CLI-first toolkit for building Full Stack applications. Skip the configuration. Ship the code.",
3
+ "version": "1.4.13",
4
+ "description": "Scaffold production-ready fullstack apps in seconds. Pick your stack from 270+ options the CLI wires everything together.",
5
5
  "keywords": [
6
6
  "better-auth",
7
7
  "better-fullstack",
@@ -12,23 +12,30 @@
12
12
  "elysia",
13
13
  "expo",
14
14
  "fullstack",
15
+ "go",
16
+ "golang",
15
17
  "hono",
16
18
  "monorepo",
17
19
  "prisma",
18
20
  "pwa",
21
+ "python",
19
22
  "react",
20
23
  "react-native",
24
+ "rust",
25
+ "scaffolding",
21
26
  "shadcn",
22
27
  "starter",
23
28
  "tailwind",
24
29
  "tanstack",
25
30
  "tauri",
31
+ "template",
26
32
  "trpc",
27
33
  "turborepo",
28
34
  "type-safety",
29
- "typescript"
35
+ "typescript",
36
+ "yarn"
30
37
  ],
31
- "homepage": "https://better-fullstack-web.vercel.app/",
38
+ "homepage": "https://better-fullstack.dev/",
32
39
  "license": "MIT",
33
40
  "author": "Marve10s",
34
41
  "repository": {
@@ -76,8 +83,8 @@
76
83
  "prepublishOnly": "npm run build"
77
84
  },
78
85
  "dependencies": {
79
- "@better-fullstack/template-generator": "^1.4.11",
80
- "@better-fullstack/types": "^1.4.11",
86
+ "@better-fullstack/template-generator": "^1.4.13",
87
+ "@better-fullstack/types": "^1.4.13",
81
88
  "@clack/core": "^0.5.0",
82
89
  "@clack/prompts": "^1.0.0-alpha.8",
83
90
  "@orpc/server": "^1.13.0",