create-better-t-stack 3.13.1 → 3.13.2-dev.41e5758

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 (417) hide show
  1. package/dist/cli.mjs +1 -1
  2. package/dist/index.d.mts +29 -33
  3. package/dist/index.mjs +2 -2
  4. package/dist/{src-BpuxNIy_.mjs → src-BDoImlsP.mjs} +269 -3762
  5. package/dist/virtual.d.mts +4 -0
  6. package/dist/virtual.mjs +4 -0
  7. package/package.json +8 -4
  8. package/templates/addons/biome/biome.json.hbs +0 -96
  9. package/templates/addons/husky/.husky/pre-commit +0 -1
  10. package/templates/addons/pwa/apps/web/next/public/favicon/apple-touch-icon.png +0 -0
  11. package/templates/addons/pwa/apps/web/next/public/favicon/favicon-96x96.png +0 -0
  12. package/templates/addons/pwa/apps/web/next/public/favicon/favicon.svg +0 -6
  13. package/templates/addons/pwa/apps/web/next/public/favicon/site.webmanifest.hbs +0 -21
  14. package/templates/addons/pwa/apps/web/next/public/favicon/web-app-manifest-192x192.png +0 -0
  15. package/templates/addons/pwa/apps/web/next/public/favicon/web-app-manifest-512x512.png +0 -0
  16. package/templates/addons/pwa/apps/web/next/src/app/manifest.ts.hbs +0 -26
  17. package/templates/addons/pwa/apps/web/vite/public/logo.png +0 -0
  18. package/templates/addons/pwa/apps/web/vite/pwa-assets.config.ts.hbs +0 -12
  19. package/templates/addons/ruler/.ruler/bts.md.hbs +0 -142
  20. package/templates/addons/ruler/.ruler/ruler.toml.hbs +0 -80
  21. package/templates/addons/turborepo/turbo.json.hbs +0 -74
  22. package/templates/addons/ultracite/biome.json.hbs +0 -26
  23. package/templates/api/orpc/fullstack/next/src/app/api/rpc/[[...rest]]/route.ts.hbs +0 -50
  24. package/templates/api/orpc/fullstack/tanstack-start/src/routes/api/rpc/$.ts.hbs +0 -58
  25. package/templates/api/orpc/native/utils/orpc.ts.hbs +0 -39
  26. package/templates/api/orpc/server/_gitignore +0 -34
  27. package/templates/api/orpc/server/package.json.hbs +0 -15
  28. package/templates/api/orpc/server/src/context.ts.hbs +0 -148
  29. package/templates/api/orpc/server/src/index.ts.hbs +0 -21
  30. package/templates/api/orpc/server/src/routers/index.ts.hbs +0 -55
  31. package/templates/api/orpc/server/tsconfig.json.hbs +0 -10
  32. package/templates/api/orpc/web/nuxt/app/plugins/orpc.ts.hbs +0 -32
  33. package/templates/api/orpc/web/nuxt/app/plugins/vue-query.ts.hbs +0 -44
  34. package/templates/api/orpc/web/react/base/src/utils/orpc.ts.hbs +0 -113
  35. package/templates/api/orpc/web/solid/src/utils/orpc.ts.hbs +0 -30
  36. package/templates/api/orpc/web/svelte/src/lib/orpc.ts.hbs +0 -30
  37. package/templates/api/trpc/fullstack/next/src/app/api/trpc/[trpc]/route.ts.hbs +0 -14
  38. package/templates/api/trpc/fullstack/tanstack-start/src/routes/api/trpc/$.ts.hbs +0 -22
  39. package/templates/api/trpc/native/utils/trpc.ts.hbs +0 -37
  40. package/templates/api/trpc/server/_gitignore +0 -34
  41. package/templates/api/trpc/server/package.json.hbs +0 -14
  42. package/templates/api/trpc/server/src/context.ts.hbs +0 -148
  43. package/templates/api/trpc/server/src/index.ts.hbs +0 -26
  44. package/templates/api/trpc/server/src/routers/index.ts.hbs +0 -55
  45. package/templates/api/trpc/server/tsconfig.json.hbs +0 -10
  46. package/templates/api/trpc/web/react/base/src/utils/trpc.ts.hbs +0 -97
  47. package/templates/auth/better-auth/convex/backend/convex/auth.config.ts.hbs +0 -6
  48. package/templates/auth/better-auth/convex/backend/convex/auth.ts.hbs +0 -68
  49. package/templates/auth/better-auth/convex/backend/convex/http.ts.hbs +0 -12
  50. package/templates/auth/better-auth/convex/backend/convex/privateData.ts.hbs +0 -17
  51. package/templates/auth/better-auth/convex/native/bare/components/sign-in.tsx.hbs +0 -127
  52. package/templates/auth/better-auth/convex/native/bare/components/sign-up.tsx.hbs +0 -138
  53. package/templates/auth/better-auth/convex/native/base/lib/auth-client.ts.hbs +0 -18
  54. package/templates/auth/better-auth/convex/native/unistyles/components/sign-in.tsx.hbs +0 -127
  55. package/templates/auth/better-auth/convex/native/unistyles/components/sign-up.tsx.hbs +0 -145
  56. package/templates/auth/better-auth/convex/native/uniwind/components/sign-in.tsx.hbs +0 -73
  57. package/templates/auth/better-auth/convex/native/uniwind/components/sign-up.tsx.hbs +0 -85
  58. package/templates/auth/better-auth/convex/web/react/next/src/app/api/auth/[...all]/route.ts.hbs +0 -3
  59. package/templates/auth/better-auth/convex/web/react/next/src/app/dashboard/page.tsx.hbs +0 -40
  60. package/templates/auth/better-auth/convex/web/react/next/src/components/sign-in-form.tsx.hbs +0 -129
  61. package/templates/auth/better-auth/convex/web/react/next/src/components/sign-up-form.tsx.hbs +0 -154
  62. package/templates/auth/better-auth/convex/web/react/next/src/components/user-menu.tsx.hbs +0 -48
  63. package/templates/auth/better-auth/convex/web/react/next/src/lib/auth-client.ts.hbs +0 -6
  64. package/templates/auth/better-auth/convex/web/react/next/src/lib/auth-server.ts.hbs +0 -16
  65. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/components/sign-in-form.tsx.hbs +0 -133
  66. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/components/sign-up-form.tsx.hbs +0 -158
  67. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/components/user-menu.tsx.hbs +0 -52
  68. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/lib/auth-client.ts.hbs +0 -11
  69. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/routes/dashboard.tsx.hbs +0 -43
  70. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/components/sign-in-form.tsx.hbs +0 -133
  71. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/components/sign-up-form.tsx.hbs +0 -158
  72. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/components/user-menu.tsx.hbs +0 -47
  73. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/lib/auth-client.ts.hbs +0 -6
  74. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/lib/auth-server.ts.hbs +0 -13
  75. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/routes/api/auth/$.ts.hbs +0 -11
  76. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/routes/dashboard.tsx.hbs +0 -43
  77. package/templates/auth/better-auth/fullstack/next/src/app/api/auth/[...all]/route.ts.hbs +0 -4
  78. package/templates/auth/better-auth/fullstack/tanstack-start/src/routes/api/auth/$.ts.hbs +0 -15
  79. package/templates/auth/better-auth/native/bare/app/(drawer)/index.tsx.hbs +0 -186
  80. package/templates/auth/better-auth/native/bare/components/sign-in.tsx.hbs +0 -131
  81. package/templates/auth/better-auth/native/bare/components/sign-up.tsx.hbs +0 -150
  82. package/templates/auth/better-auth/native/base/lib/auth-client.ts.hbs +0 -16
  83. package/templates/auth/better-auth/native/unistyles/app/(drawer)/index.tsx.hbs +0 -187
  84. package/templates/auth/better-auth/native/unistyles/components/sign-in.tsx.hbs +0 -139
  85. package/templates/auth/better-auth/native/unistyles/components/sign-up.tsx.hbs +0 -157
  86. package/templates/auth/better-auth/native/uniwind/app/(drawer)/index.tsx.hbs +0 -123
  87. package/templates/auth/better-auth/native/uniwind/components/sign-in.tsx.hbs +0 -87
  88. package/templates/auth/better-auth/native/uniwind/components/sign-up.tsx.hbs +0 -128
  89. package/templates/auth/better-auth/server/base/_gitignore +0 -34
  90. package/templates/auth/better-auth/server/base/package.json.hbs +0 -14
  91. package/templates/auth/better-auth/server/base/src/index.ts.hbs +0 -304
  92. package/templates/auth/better-auth/server/base/tsconfig.json.hbs +0 -10
  93. package/templates/auth/better-auth/server/db/drizzle/mysql/src/schema/auth.ts.hbs +0 -100
  94. package/templates/auth/better-auth/server/db/drizzle/postgres/src/schema/auth.ts.hbs +0 -93
  95. package/templates/auth/better-auth/server/db/drizzle/sqlite/src/schema/auth.ts.hbs +0 -107
  96. package/templates/auth/better-auth/server/db/mongoose/mongodb/src/models/auth.model.ts.hbs +0 -68
  97. package/templates/auth/better-auth/server/db/prisma/mongodb/prisma/schema/auth.prisma.hbs +0 -62
  98. package/templates/auth/better-auth/server/db/prisma/mysql/prisma/schema/auth.prisma.hbs +0 -62
  99. package/templates/auth/better-auth/server/db/prisma/postgres/prisma/schema/auth.prisma.hbs +0 -62
  100. package/templates/auth/better-auth/server/db/prisma/sqlite/prisma/schema/auth.prisma.hbs +0 -62
  101. package/templates/auth/better-auth/web/nuxt/app/components/SignInForm.vue.hbs +0 -82
  102. package/templates/auth/better-auth/web/nuxt/app/components/SignUpForm.vue.hbs +0 -91
  103. package/templates/auth/better-auth/web/nuxt/app/components/UserMenu.vue.hbs +0 -42
  104. package/templates/auth/better-auth/web/nuxt/app/middleware/auth.ts.hbs +0 -14
  105. package/templates/auth/better-auth/web/nuxt/app/pages/dashboard.vue.hbs +0 -99
  106. package/templates/auth/better-auth/web/nuxt/app/pages/login.vue.hbs +0 -27
  107. package/templates/auth/better-auth/web/nuxt/app/plugins/auth-client.ts.hbs +0 -21
  108. package/templates/auth/better-auth/web/react/base/src/lib/auth-client.ts.hbs +0 -16
  109. package/templates/auth/better-auth/web/react/next/src/app/dashboard/dashboard.tsx.hbs +0 -60
  110. package/templates/auth/better-auth/web/react/next/src/app/dashboard/page.tsx.hbs +0 -42
  111. package/templates/auth/better-auth/web/react/next/src/app/login/page.tsx.hbs +0 -16
  112. package/templates/auth/better-auth/web/react/next/src/components/sign-in-form.tsx.hbs +0 -135
  113. package/templates/auth/better-auth/web/react/next/src/components/sign-up-form.tsx.hbs +0 -160
  114. package/templates/auth/better-auth/web/react/next/src/components/user-menu.tsx.hbs +0 -62
  115. package/templates/auth/better-auth/web/react/react-router/src/components/sign-in-form.tsx.hbs +0 -135
  116. package/templates/auth/better-auth/web/react/react-router/src/components/sign-up-form.tsx.hbs +0 -160
  117. package/templates/auth/better-auth/web/react/react-router/src/components/user-menu.tsx.hbs +0 -61
  118. package/templates/auth/better-auth/web/react/react-router/src/routes/dashboard.tsx.hbs +0 -80
  119. package/templates/auth/better-auth/web/react/react-router/src/routes/login.tsx.hbs +0 -13
  120. package/templates/auth/better-auth/web/react/tanstack-router/src/components/sign-in-form.tsx.hbs +0 -135
  121. package/templates/auth/better-auth/web/react/tanstack-router/src/components/sign-up-form.tsx.hbs +0 -160
  122. package/templates/auth/better-auth/web/react/tanstack-router/src/components/user-menu.tsx.hbs +0 -63
  123. package/templates/auth/better-auth/web/react/tanstack-router/src/routes/dashboard.tsx.hbs +0 -71
  124. package/templates/auth/better-auth/web/react/tanstack-router/src/routes/login.tsx.hbs +0 -18
  125. package/templates/auth/better-auth/web/react/tanstack-start/src/components/sign-in-form.tsx.hbs +0 -135
  126. package/templates/auth/better-auth/web/react/tanstack-start/src/components/sign-up-form.tsx.hbs +0 -160
  127. package/templates/auth/better-auth/web/react/tanstack-start/src/components/user-menu.tsx.hbs +0 -63
  128. package/templates/auth/better-auth/web/react/tanstack-start/src/functions/get-user.ts.hbs +0 -6
  129. package/templates/auth/better-auth/web/react/tanstack-start/src/middleware/auth.ts.hbs +0 -31
  130. package/templates/auth/better-auth/web/react/tanstack-start/src/routes/dashboard.tsx.hbs +0 -84
  131. package/templates/auth/better-auth/web/react/tanstack-start/src/routes/login.tsx.hbs +0 -18
  132. package/templates/auth/better-auth/web/solid/src/components/sign-in-form.tsx.hbs +0 -124
  133. package/templates/auth/better-auth/web/solid/src/components/sign-up-form.tsx.hbs +0 -148
  134. package/templates/auth/better-auth/web/solid/src/components/user-menu.tsx.hbs +0 -55
  135. package/templates/auth/better-auth/web/solid/src/lib/auth-client.ts.hbs +0 -12
  136. package/templates/auth/better-auth/web/solid/src/routes/dashboard.tsx.hbs +0 -67
  137. package/templates/auth/better-auth/web/solid/src/routes/login.tsx.hbs +0 -23
  138. package/templates/auth/better-auth/web/svelte/src/components/SignInForm.svelte.hbs +0 -108
  139. package/templates/auth/better-auth/web/svelte/src/components/SignUpForm.svelte.hbs +0 -142
  140. package/templates/auth/better-auth/web/svelte/src/components/UserMenu.svelte.hbs +0 -52
  141. package/templates/auth/better-auth/web/svelte/src/lib/auth-client.ts.hbs +0 -12
  142. package/templates/auth/better-auth/web/svelte/src/routes/dashboard/+page.svelte.hbs +0 -57
  143. package/templates/auth/better-auth/web/svelte/src/routes/login/+page.svelte.hbs +0 -12
  144. package/templates/auth/clerk/convex/backend/convex/auth.config.ts.hbs +0 -12
  145. package/templates/auth/clerk/convex/backend/convex/privateData.ts.hbs +0 -16
  146. package/templates/auth/clerk/convex/native/base/app/(auth)/_layout.tsx.hbs +0 -12
  147. package/templates/auth/clerk/convex/native/base/app/(auth)/sign-in.tsx.hbs +0 -67
  148. package/templates/auth/clerk/convex/native/base/app/(auth)/sign-up.tsx.hbs +0 -110
  149. package/templates/auth/clerk/convex/native/base/components/sign-out-button.tsx.hbs +0 -27
  150. package/templates/auth/clerk/convex/web/react/next/src/app/dashboard/page.tsx.hbs +0 -29
  151. package/templates/auth/clerk/convex/web/react/next/src/middleware.ts.hbs +0 -12
  152. package/templates/auth/clerk/convex/web/react/react-router/src/routes/dashboard.tsx.hbs +0 -32
  153. package/templates/auth/clerk/convex/web/react/tanstack-router/src/routes/dashboard.tsx.hbs +0 -37
  154. package/templates/auth/clerk/convex/web/react/tanstack-start/src/routes/dashboard.tsx.hbs +0 -37
  155. package/templates/auth/clerk/convex/web/react/tanstack-start/src/start.ts.hbs +0 -8
  156. package/templates/backend/convex/packages/backend/_gitignore +0 -2
  157. package/templates/backend/convex/packages/backend/convex/README.md +0 -90
  158. package/templates/backend/convex/packages/backend/convex/convex.config.ts.hbs +0 -17
  159. package/templates/backend/convex/packages/backend/convex/healthCheck.ts.hbs +0 -7
  160. package/templates/backend/convex/packages/backend/convex/schema.ts.hbs +0 -11
  161. package/templates/backend/convex/packages/backend/convex/tsconfig.json.hbs +0 -25
  162. package/templates/backend/convex/packages/backend/package.json.hbs +0 -15
  163. package/templates/backend/server/base/_gitignore +0 -55
  164. package/templates/backend/server/base/package.json.hbs +0 -17
  165. package/templates/backend/server/base/tsconfig.json.hbs +0 -13
  166. package/templates/backend/server/base/tsdown.config.ts.hbs +0 -9
  167. package/templates/backend/server/elysia/src/index.ts.hbs +0 -122
  168. package/templates/backend/server/express/src/index.ts.hbs +0 -126
  169. package/templates/backend/server/fastify/src/index.ts.hbs +0 -187
  170. package/templates/backend/server/hono/src/index.ts.hbs +0 -171
  171. package/templates/base/_gitignore +0 -50
  172. package/templates/base/package.json.hbs +0 -10
  173. package/templates/base/tsconfig.json.hbs +0 -3
  174. package/templates/db/base/_gitignore +0 -35
  175. package/templates/db/base/package.json.hbs +0 -14
  176. package/templates/db/base/tsconfig.json.hbs +0 -10
  177. package/templates/db/drizzle/base/src/schema/index.ts.hbs +0 -7
  178. package/templates/db/drizzle/mysql/drizzle.config.ts.hbs +0 -19
  179. package/templates/db/drizzle/mysql/src/index.ts.hbs +0 -54
  180. package/templates/db/drizzle/postgres/drizzle.config.ts.hbs +0 -19
  181. package/templates/db/drizzle/postgres/src/index.ts.hbs +0 -44
  182. package/templates/db/drizzle/sqlite/drizzle.config.ts.hbs +0 -28
  183. package/templates/db/drizzle/sqlite/src/index.ts.hbs +0 -39
  184. package/templates/db/mongoose/mongodb/src/index.ts.hbs +0 -10
  185. package/templates/db/prisma/mongodb/prisma/schema/schema.prisma.hbs +0 -19
  186. package/templates/db/prisma/mongodb/prisma.config.ts.hbs +0 -18
  187. package/templates/db/prisma/mongodb/src/index.ts.hbs +0 -5
  188. package/templates/db/prisma/mysql/prisma/schema/schema.prisma.hbs +0 -21
  189. package/templates/db/prisma/mysql/prisma.config.ts.hbs +0 -21
  190. package/templates/db/prisma/mysql/src/index.ts.hbs +0 -55
  191. package/templates/db/prisma/postgres/prisma/schema/schema.prisma.hbs +0 -21
  192. package/templates/db/prisma/postgres/prisma.config.ts.hbs +0 -21
  193. package/templates/db/prisma/postgres/src/index.ts.hbs +0 -69
  194. package/templates/db/prisma/sqlite/prisma/schema/schema.prisma.hbs +0 -18
  195. package/templates/db/prisma/sqlite/prisma.config.ts.hbs +0 -25
  196. package/templates/db/prisma/sqlite/src/index.ts.hbs +0 -25
  197. package/templates/db-setup/docker-compose/mongodb/docker-compose.yml.hbs +0 -23
  198. package/templates/db-setup/docker-compose/mysql/docker-compose.yml.hbs +0 -24
  199. package/templates/db-setup/docker-compose/postgres/docker-compose.yml.hbs +0 -23
  200. package/templates/examples/ai/convex/packages/backend/convex/agent.ts.hbs +0 -9
  201. package/templates/examples/ai/convex/packages/backend/convex/chat.ts.hbs +0 -67
  202. package/templates/examples/ai/fullstack/next/src/app/api/ai/route.ts.hbs +0 -20
  203. package/templates/examples/ai/fullstack/tanstack-start/src/routes/api/ai/$.ts.hbs +0 -36
  204. package/templates/examples/ai/native/bare/app/(drawer)/ai.tsx.hbs +0 -586
  205. package/templates/examples/ai/native/bare/polyfills.js +0 -25
  206. package/templates/examples/ai/native/unistyles/app/(drawer)/ai.tsx.hbs +0 -588
  207. package/templates/examples/ai/native/unistyles/polyfills.js +0 -22
  208. package/templates/examples/ai/native/uniwind/app/(drawer)/ai.tsx.hbs +0 -331
  209. package/templates/examples/ai/native/uniwind/polyfills.js +0 -22
  210. package/templates/examples/ai/web/nuxt/app/pages/ai.vue.hbs +0 -54
  211. package/templates/examples/ai/web/react/next/src/app/ai/page.tsx.hbs +0 -267
  212. package/templates/examples/ai/web/react/react-router/src/routes/ai.tsx.hbs +0 -235
  213. package/templates/examples/ai/web/react/tanstack-router/src/routes/ai.tsx.hbs +0 -242
  214. package/templates/examples/ai/web/react/tanstack-start/src/routes/ai.tsx.hbs +0 -243
  215. package/templates/examples/ai/web/svelte/src/routes/ai/+page.svelte.hbs +0 -107
  216. package/templates/examples/todo/convex/packages/backend/convex/todos.ts.hbs +0 -42
  217. package/templates/examples/todo/native/bare/app/(drawer)/todos.tsx.hbs +0 -521
  218. package/templates/examples/todo/native/unistyles/app/(drawer)/todos.tsx.hbs +0 -340
  219. package/templates/examples/todo/native/uniwind/app/(drawer)/todos.tsx.hbs +0 -282
  220. package/templates/examples/todo/server/drizzle/base/src/routers/todo.ts.hbs +0 -75
  221. package/templates/examples/todo/server/drizzle/mysql/src/schema/todo.ts +0 -7
  222. package/templates/examples/todo/server/drizzle/postgres/src/schema/todo.ts +0 -7
  223. package/templates/examples/todo/server/drizzle/sqlite/src/schema/todo.ts +0 -7
  224. package/templates/examples/todo/server/mongoose/base/src/routers/todo.ts.hbs +0 -66
  225. package/templates/examples/todo/server/mongoose/mongodb/src/models/todo.model.ts.hbs +0 -24
  226. package/templates/examples/todo/server/prisma/base/src/routers/todo.ts.hbs +0 -116
  227. package/templates/examples/todo/server/prisma/mongodb/prisma/schema/todo.prisma.hbs +0 -7
  228. package/templates/examples/todo/server/prisma/mysql/prisma/schema/todo.prisma.hbs +0 -7
  229. package/templates/examples/todo/server/prisma/postgres/prisma/schema/todo.prisma.hbs +0 -7
  230. package/templates/examples/todo/server/prisma/sqlite/prisma/schema/todo.prisma.hbs +0 -7
  231. package/templates/examples/todo/web/nuxt/app/pages/todos.vue.hbs +0 -220
  232. package/templates/examples/todo/web/react/next/src/app/todos/page.tsx.hbs +0 -245
  233. package/templates/examples/todo/web/react/react-router/src/routes/todos.tsx.hbs +0 -242
  234. package/templates/examples/todo/web/react/tanstack-router/src/routes/todos.tsx.hbs +0 -247
  235. package/templates/examples/todo/web/react/tanstack-start/src/routes/todos.tsx.hbs +0 -272
  236. package/templates/examples/todo/web/solid/src/routes/todos.tsx.hbs +0 -132
  237. package/templates/examples/todo/web/svelte/src/routes/todos/+page.svelte.hbs +0 -317
  238. package/templates/extras/_npmrc.hbs +0 -5
  239. package/templates/extras/bunfig.toml.hbs +0 -6
  240. package/templates/extras/pnpm-workspace.yaml +0 -3
  241. package/templates/frontend/native/bare/_gitignore +0 -18
  242. package/templates/frontend/native/bare/app/(drawer)/(tabs)/_layout.tsx.hbs +0 -41
  243. package/templates/frontend/native/bare/app/(drawer)/(tabs)/index.tsx.hbs +0 -43
  244. package/templates/frontend/native/bare/app/(drawer)/(tabs)/two.tsx.hbs +0 -43
  245. package/templates/frontend/native/bare/app/(drawer)/_layout.tsx.hbs +0 -90
  246. package/templates/frontend/native/bare/app/(drawer)/index.tsx.hbs +0 -234
  247. package/templates/frontend/native/bare/app/+not-found.tsx.hbs +0 -65
  248. package/templates/frontend/native/bare/app/_layout.tsx.hbs +0 -165
  249. package/templates/frontend/native/bare/app/modal.tsx.hbs +0 -34
  250. package/templates/frontend/native/bare/app.json.hbs +0 -50
  251. package/templates/frontend/native/bare/components/container.tsx.hbs +0 -25
  252. package/templates/frontend/native/bare/components/header-button.tsx.hbs +0 -47
  253. package/templates/frontend/native/bare/components/tabbar-icon.tsx.hbs +0 -9
  254. package/templates/frontend/native/bare/lib/android-navigation-bar.tsx.hbs +0 -12
  255. package/templates/frontend/native/bare/lib/constants.ts.hbs +0 -19
  256. package/templates/frontend/native/bare/lib/use-color-scheme.ts.hbs +0 -20
  257. package/templates/frontend/native/bare/metro.config.js.hbs +0 -9
  258. package/templates/frontend/native/bare/package.json.hbs +0 -51
  259. package/templates/frontend/native/bare/tsconfig.json.hbs +0 -11
  260. package/templates/frontend/native/base/assets/images/android-icon-background.png +0 -0
  261. package/templates/frontend/native/base/assets/images/android-icon-foreground.png +0 -0
  262. package/templates/frontend/native/base/assets/images/android-icon-monochrome.png +0 -0
  263. package/templates/frontend/native/base/assets/images/favicon.png +0 -0
  264. package/templates/frontend/native/base/assets/images/icon.png +0 -0
  265. package/templates/frontend/native/base/assets/images/partial-react-logo.png +0 -0
  266. package/templates/frontend/native/base/assets/images/react-logo.png +0 -0
  267. package/templates/frontend/native/base/assets/images/react-logo@2x.png +0 -0
  268. package/templates/frontend/native/base/assets/images/react-logo@3x.png +0 -0
  269. package/templates/frontend/native/base/assets/images/splash-icon.png +0 -0
  270. package/templates/frontend/native/unistyles/_gitignore +0 -24
  271. package/templates/frontend/native/unistyles/app/(drawer)/(tabs)/_layout.tsx.hbs +0 -39
  272. package/templates/frontend/native/unistyles/app/(drawer)/(tabs)/index.tsx.hbs +0 -37
  273. package/templates/frontend/native/unistyles/app/(drawer)/(tabs)/two.tsx.hbs +0 -37
  274. package/templates/frontend/native/unistyles/app/(drawer)/_layout.tsx.hbs +0 -87
  275. package/templates/frontend/native/unistyles/app/(drawer)/index.tsx.hbs +0 -333
  276. package/templates/frontend/native/unistyles/app/+not-found.tsx.hbs +0 -65
  277. package/templates/frontend/native/unistyles/app/_layout.tsx.hbs +0 -169
  278. package/templates/frontend/native/unistyles/app/modal.tsx.hbs +0 -33
  279. package/templates/frontend/native/unistyles/app.json.hbs +0 -49
  280. package/templates/frontend/native/unistyles/babel.config.js.hbs +0 -21
  281. package/templates/frontend/native/unistyles/breakpoints.ts.hbs +0 -9
  282. package/templates/frontend/native/unistyles/components/container.tsx.hbs +0 -15
  283. package/templates/frontend/native/unistyles/components/header-button.tsx.hbs +0 -36
  284. package/templates/frontend/native/unistyles/components/tabbar-icon.tsx.hbs +0 -8
  285. package/templates/frontend/native/unistyles/index.js.hbs +0 -2
  286. package/templates/frontend/native/unistyles/metro.config.js.hbs +0 -5
  287. package/templates/frontend/native/unistyles/package.json.hbs +0 -51
  288. package/templates/frontend/native/unistyles/theme.ts.hbs +0 -98
  289. package/templates/frontend/native/unistyles/tsconfig.json.hbs +0 -12
  290. package/templates/frontend/native/unistyles/unistyles.ts.hbs +0 -27
  291. package/templates/frontend/native/uniwind/_gitignore +0 -21
  292. package/templates/frontend/native/uniwind/app/(drawer)/(tabs)/_layout.tsx.hbs +0 -46
  293. package/templates/frontend/native/uniwind/app/(drawer)/(tabs)/index.tsx.hbs +0 -15
  294. package/templates/frontend/native/uniwind/app/(drawer)/(tabs)/two.tsx.hbs +0 -15
  295. package/templates/frontend/native/uniwind/app/(drawer)/_layout.tsx.hbs +0 -91
  296. package/templates/frontend/native/uniwind/app/(drawer)/index.tsx.hbs +0 -191
  297. package/templates/frontend/native/uniwind/app/+not-found.tsx.hbs +0 -27
  298. package/templates/frontend/native/uniwind/app/_layout.tsx.hbs +0 -132
  299. package/templates/frontend/native/uniwind/app/modal.tsx.hbs +0 -37
  300. package/templates/frontend/native/uniwind/app.json.hbs +0 -19
  301. package/templates/frontend/native/uniwind/components/container.tsx.hbs +0 -33
  302. package/templates/frontend/native/uniwind/components/theme-toggle.tsx.hbs +0 -35
  303. package/templates/frontend/native/uniwind/contexts/app-theme-context.tsx.hbs +0 -62
  304. package/templates/frontend/native/uniwind/global.css +0 -5
  305. package/templates/frontend/native/uniwind/metro.config.js.hbs +0 -13
  306. package/templates/frontend/native/uniwind/package.json.hbs +0 -54
  307. package/templates/frontend/native/uniwind/tsconfig.json.hbs +0 -14
  308. package/templates/frontend/nuxt/_gitignore +0 -27
  309. package/templates/frontend/nuxt/app/app.config.ts.hbs +0 -15
  310. package/templates/frontend/nuxt/app/app.vue.hbs +0 -17
  311. package/templates/frontend/nuxt/app/assets/css/main.css +0 -2
  312. package/templates/frontend/nuxt/app/components/Header.vue.hbs +0 -40
  313. package/templates/frontend/nuxt/app/layouts/default.vue.hbs +0 -10
  314. package/templates/frontend/nuxt/app/pages/index.vue.hbs +0 -97
  315. package/templates/frontend/nuxt/nuxt.config.ts.hbs +0 -29
  316. package/templates/frontend/nuxt/package.json.hbs +0 -24
  317. package/templates/frontend/nuxt/public/favicon.ico +0 -0
  318. package/templates/frontend/nuxt/public/robots.txt +0 -2
  319. package/templates/frontend/nuxt/server/tsconfig.json +0 -3
  320. package/templates/frontend/nuxt/tsconfig.json.hbs +0 -18
  321. package/templates/frontend/react/next/next-env.d.ts.hbs +0 -5
  322. package/templates/frontend/react/next/next.config.ts.hbs +0 -22
  323. package/templates/frontend/react/next/package.json.hbs +0 -34
  324. package/templates/frontend/react/next/postcss.config.mjs.hbs +0 -5
  325. package/templates/frontend/react/next/src/app/favicon.ico +0 -0
  326. package/templates/frontend/react/next/src/app/layout.tsx.hbs +0 -76
  327. package/templates/frontend/react/next/src/app/page.tsx.hbs +0 -79
  328. package/templates/frontend/react/next/src/components/mode-toggle.tsx.hbs +0 -37
  329. package/templates/frontend/react/next/src/components/providers.tsx.hbs +0 -89
  330. package/templates/frontend/react/next/src/components/theme-provider.tsx.hbs +0 -11
  331. package/templates/frontend/react/next/tsconfig.json.hbs +0 -41
  332. package/templates/frontend/react/react-router/package.json.hbs +0 -42
  333. package/templates/frontend/react/react-router/public/favicon.ico +0 -0
  334. package/templates/frontend/react/react-router/react-router.config.ts +0 -6
  335. package/templates/frontend/react/react-router/src/components/mode-toggle.tsx.hbs +0 -29
  336. package/templates/frontend/react/react-router/src/components/theme-provider.tsx.hbs +0 -11
  337. package/templates/frontend/react/react-router/src/root.tsx.hbs +0 -190
  338. package/templates/frontend/react/react-router/src/routes/_index.tsx.hbs +0 -85
  339. package/templates/frontend/react/react-router/src/routes.ts +0 -4
  340. package/templates/frontend/react/react-router/tsconfig.json.hbs +0 -27
  341. package/templates/frontend/react/react-router/vite.config.ts.hbs +0 -12
  342. package/templates/frontend/react/tanstack-router/index.html.hbs +0 -13
  343. package/templates/frontend/react/tanstack-router/package.json.hbs +0 -41
  344. package/templates/frontend/react/tanstack-router/src/components/mode-toggle.tsx.hbs +0 -29
  345. package/templates/frontend/react/tanstack-router/src/components/theme-provider.tsx.hbs +0 -11
  346. package/templates/frontend/react/tanstack-router/src/main.tsx.hbs +0 -90
  347. package/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs +0 -103
  348. package/templates/frontend/react/tanstack-router/src/routes/index.tsx.hbs +0 -85
  349. package/templates/frontend/react/tanstack-router/tsconfig.json.hbs +0 -18
  350. package/templates/frontend/react/tanstack-router/vite.config.ts.hbs +0 -21
  351. package/templates/frontend/react/tanstack-start/package.json.hbs +0 -43
  352. package/templates/frontend/react/tanstack-start/public/robots.txt +0 -3
  353. package/templates/frontend/react/tanstack-start/src/router.tsx.hbs +0 -144
  354. package/templates/frontend/react/tanstack-start/src/routes/__root.tsx.hbs +0 -208
  355. package/templates/frontend/react/tanstack-start/src/routes/index.tsx.hbs +0 -85
  356. package/templates/frontend/react/tanstack-start/tsconfig.json.hbs +0 -28
  357. package/templates/frontend/react/tanstack-start/vite.config.ts.hbs +0 -22
  358. package/templates/frontend/react/web-base/_gitignore +0 -60
  359. package/templates/frontend/react/web-base/components.json +0 -24
  360. package/templates/frontend/react/web-base/src/components/header.tsx.hbs +0 -78
  361. package/templates/frontend/react/web-base/src/components/loader.tsx.hbs +0 -9
  362. package/templates/frontend/react/web-base/src/components/ui/button.tsx.hbs +0 -57
  363. package/templates/frontend/react/web-base/src/components/ui/card.tsx.hbs +0 -103
  364. package/templates/frontend/react/web-base/src/components/ui/checkbox.tsx.hbs +0 -26
  365. package/templates/frontend/react/web-base/src/components/ui/dropdown-menu.tsx.hbs +0 -262
  366. package/templates/frontend/react/web-base/src/components/ui/input.tsx.hbs +0 -20
  367. package/templates/frontend/react/web-base/src/components/ui/label.tsx.hbs +0 -20
  368. package/templates/frontend/react/web-base/src/components/ui/skeleton.tsx.hbs +0 -13
  369. package/templates/frontend/react/web-base/src/components/ui/sonner.tsx.hbs +0 -44
  370. package/templates/frontend/react/web-base/src/index.css.hbs +0 -131
  371. package/templates/frontend/react/web-base/src/lib/utils.ts.hbs +0 -6
  372. package/templates/frontend/solid/_gitignore +0 -11
  373. package/templates/frontend/solid/index.html +0 -13
  374. package/templates/frontend/solid/package.json.hbs +0 -24
  375. package/templates/frontend/solid/public/robots.txt +0 -3
  376. package/templates/frontend/solid/src/components/header.tsx.hbs +0 -38
  377. package/templates/frontend/solid/src/components/loader.tsx +0 -9
  378. package/templates/frontend/solid/src/main.tsx.hbs +0 -41
  379. package/templates/frontend/solid/src/routes/__root.tsx.hbs +0 -34
  380. package/templates/frontend/solid/src/routes/index.tsx.hbs +0 -72
  381. package/templates/frontend/solid/src/styles.css +0 -5
  382. package/templates/frontend/solid/tsconfig.json.hbs +0 -29
  383. package/templates/frontend/solid/vite.config.ts.hbs +0 -21
  384. package/templates/frontend/svelte/_gitignore +0 -24
  385. package/templates/frontend/svelte/_npmrc +0 -1
  386. package/templates/frontend/svelte/package.json.hbs +0 -27
  387. package/templates/frontend/svelte/src/app.css +0 -5
  388. package/templates/frontend/svelte/src/app.d.ts +0 -13
  389. package/templates/frontend/svelte/src/app.html +0 -12
  390. package/templates/frontend/svelte/src/components/Header.svelte.hbs +0 -40
  391. package/templates/frontend/svelte/src/lib/index.ts +0 -2
  392. package/templates/frontend/svelte/src/routes/+layout.svelte.hbs +0 -54
  393. package/templates/frontend/svelte/src/routes/+page.svelte.hbs +0 -92
  394. package/templates/frontend/svelte/static/favicon.png +0 -0
  395. package/templates/frontend/svelte/svelte.config.js.hbs +0 -18
  396. package/templates/frontend/svelte/tsconfig.json.hbs +0 -19
  397. package/templates/frontend/svelte/vite.config.ts.hbs +0 -7
  398. package/templates/packages/config/package.json.hbs +0 -5
  399. package/templates/packages/config/tsconfig.base.json.hbs +0 -33
  400. package/templates/packages/env/env.d.ts.hbs +0 -16
  401. package/templates/packages/env/package.json.hbs +0 -7
  402. package/templates/packages/env/src/native.ts.hbs +0 -21
  403. package/templates/packages/env/src/server.ts.hbs +0 -39
  404. package/templates/packages/env/src/web.ts.hbs +0 -98
  405. package/templates/packages/env/tsconfig.json.hbs +0 -3
  406. package/templates/packages/infra/alchemy.run.ts.hbs +0 -271
  407. package/templates/packages/infra/package.json.hbs +0 -10
  408. package/templates/payments/polar/server/base/src/lib/payments.ts.hbs +0 -7
  409. package/templates/payments/polar/web/nuxt/app/pages/success.vue.hbs +0 -11
  410. package/templates/payments/polar/web/react/next/src/app/success/page.tsx.hbs +0 -15
  411. package/templates/payments/polar/web/react/react-router/src/routes/success.tsx.hbs +0 -13
  412. package/templates/payments/polar/web/react/tanstack-router/src/routes/success.tsx.hbs +0 -19
  413. package/templates/payments/polar/web/react/tanstack-start/src/functions/get-payment.ts.hbs +0 -15
  414. package/templates/payments/polar/web/react/tanstack-start/src/routes/success.tsx.hbs +0 -19
  415. package/templates/payments/polar/web/solid/src/routes/success.tsx.hbs +0 -23
  416. package/templates/payments/polar/web/svelte/src/routes/success/+page.svelte.hbs +0 -12
  417. /package/dist/{chunk-Dt3mZKp0.mjs → chunk-DPg_XC7m.mjs} +0 -0
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { EMBEDDED_TEMPLATES, GeneratorOptions, GeneratorResult, TEMPLATE_COUNT, VirtualDirectory, VirtualFile, VirtualFileSystem, VirtualFileTree, VirtualNode, generateVirtualProject } from "@better-t-stack/template-generator";
3
+ import { API, Addons, Auth, Backend, Database, DatabaseSetup, Examples, Frontend, ORM, PackageManager, Payments, ProjectConfig, Runtime, ServerDeploy, WebDeploy } from "@better-t-stack/types";
4
+ export { type API, type Addons, type Auth, type Backend, type Database, type DatabaseSetup, EMBEDDED_TEMPLATES, type Examples, type Frontend, type GeneratorOptions, type GeneratorResult, type ORM, type PackageManager, type Payments, type ProjectConfig, type Runtime, type ServerDeploy, TEMPLATE_COUNT, type VirtualDirectory, type VirtualFile, VirtualFileSystem, type VirtualFileTree, type VirtualNode, type WebDeploy, generateVirtualProject };
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { EMBEDDED_TEMPLATES, TEMPLATE_COUNT, VirtualFileSystem, generateVirtualProject } from "@better-t-stack/template-generator";
3
+
4
+ export { EMBEDDED_TEMPLATES, TEMPLATE_COUNT, VirtualFileSystem, generateVirtualProject };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-better-t-stack",
3
- "version": "3.13.1",
3
+ "version": "3.13.2-dev.41e5758",
4
4
  "description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
5
5
  "keywords": [
6
6
  "better-auth",
@@ -40,8 +40,7 @@
40
40
  "create-better-t-stack": "dist/cli.mjs"
41
41
  },
42
42
  "files": [
43
- "dist",
44
- "templates"
43
+ "dist"
45
44
  ],
46
45
  "type": "module",
47
46
  "exports": {
@@ -51,6 +50,10 @@
51
50
  },
52
51
  "./cli": {
53
52
  "import": "./dist/cli.mjs"
53
+ },
54
+ "./virtual": {
55
+ "types": "./dist/virtual.d.mts",
56
+ "import": "./dist/virtual.mjs"
54
57
  }
55
58
  },
56
59
  "publishConfig": {
@@ -67,7 +70,8 @@
67
70
  "prepublishOnly": "npm run build"
68
71
  },
69
72
  "dependencies": {
70
- "@better-t-stack/types": "^3.13.1",
73
+ "@better-t-stack/template-generator": "3.13.2-dev.41e5758",
74
+ "@better-t-stack/types": "3.13.2-dev.41e5758",
71
75
  "@clack/core": "^0.5.0",
72
76
  "@clack/prompts": "^1.0.0-alpha.8",
73
77
  "@orpc/server": "^1.13.0",
@@ -1,96 +0,0 @@
1
- {
2
- "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
3
- "vcs": {
4
- "enabled": false,
5
- "clientKind": "git",
6
- "useIgnoreFile": false
7
- },
8
- "files": {
9
- "ignoreUnknown": false,
10
- "includes": [
11
- "**",
12
- "!**/.next",
13
- "!**/dist",
14
- "!**/.turbo",
15
- "!**/dev-dist",
16
- "!**/.zed",
17
- "!**/.vscode",
18
- "!**/routeTree.gen.ts",
19
- "!**/src-tauri",
20
- "!**/.nuxt",
21
- "!bts.jsonc",
22
- "!**/.expo",
23
- "!**/.wrangler",
24
- "!**/.alchemy",
25
- "!**/.svelte-kit",
26
- "!**/wrangler.jsonc",
27
- "!**/.source",
28
- "!**/convex/_generated"
29
- ]
30
- },
31
- "formatter": {
32
- "enabled": true,
33
- "indentStyle": "tab"
34
- },
35
- "assist": { "actions": { "source": { "organizeImports": "on" } } },
36
- "linter": {
37
- "enabled": true,
38
- "rules": {
39
- "recommended": true,
40
- "correctness": {
41
- "useExhaustiveDependencies": "info"
42
- },
43
- "nursery": {
44
- "useSortedClasses": {
45
- "level": "warn",
46
- "fix": "safe",
47
- "options": {
48
- "functions": ["clsx", "cva", "cn"]
49
- }
50
- }
51
- },
52
- "style": {
53
- "noParameterAssign": "error",
54
- "useAsConstAssertion": "error",
55
- "useDefaultParameterLast": "error",
56
- "useEnumInitializers": "error",
57
- "useSelfClosingElements": "error",
58
- "useSingleVarDeclarator": "error",
59
- "noUnusedTemplateLiteral": "error",
60
- "useNumberNamespace": "error",
61
- "noInferrableTypes": "error",
62
- "noUselessElse": "error"
63
- }
64
- }
65
- },
66
- "javascript": {
67
- "formatter": {
68
- "quoteStyle": "double"
69
- }
70
- },
71
- "css": {
72
- "parser": {
73
- "tailwindDirectives": true
74
- }
75
- }
76
- {{#if (or (includes frontend "svelte") (includes frontend "nuxt"))}}
77
- ,
78
- "overrides": [
79
- {
80
- "includes": ["**/*.svelte", "**/*.vue"],
81
- "linter": {
82
- "rules": {
83
- "style": {
84
- "useConst": "off",
85
- "useImportType": "off"
86
- },
87
- "correctness": {
88
- "noUnusedVariables": "off",
89
- "noUnusedImports": "off"
90
- }
91
- }
92
- }
93
- }
94
- ]
95
- {{/if}}
96
- }
@@ -1 +0,0 @@
1
- lint-staged
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="92" height="92"><svg width="92" height="92" viewBox="0 0 92 92" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="8" y="8" width="76" height="76" rx="12" fill="#F5EEFF" stroke="#B79AFF" stroke-width="3"></rect>
3
- <text x="46" y="56" text-anchor="middle" font-family="monospace" font-size="40" fill="#8F5BFF">$<tspan dx="0" dy="0">_</tspan></text>
4
- </svg><style>@media (prefers-color-scheme: light) { :root { filter: none; } }
5
- @media (prefers-color-scheme: dark) { :root { filter: none; } }
6
- </style></svg>
@@ -1,21 +0,0 @@
1
- {
2
- "name": "{{projectName}}",
3
- "short_name": "{{projectName}}",
4
- "icons": [
5
- {
6
- "src": "/web-app-manifest-192x192.png",
7
- "sizes": "192x192",
8
- "type": "image/png",
9
- "purpose": "maskable"
10
- },
11
- {
12
- "src": "/web-app-manifest-512x512.png",
13
- "sizes": "512x512",
14
- "type": "image/png",
15
- "purpose": "maskable"
16
- }
17
- ],
18
- "theme_color": "#ffffff",
19
- "background_color": "#ffffff",
20
- "display": "standalone"
21
- }
@@ -1,26 +0,0 @@
1
- import type { MetadataRoute } from "next";
2
-
3
- export default function manifest(): MetadataRoute.Manifest {
4
- return {
5
- name: "{{projectName}}",
6
- short_name: "{{projectName}}",
7
- description:
8
- "my pwa app",
9
- start_url: "/new",
10
- display: "standalone",
11
- background_color: "#ffffff",
12
- theme_color: "#000000",
13
- icons: [
14
- {
15
- src: "/favicon/web-app-manifest-192x192.png",
16
- sizes: "192x192",
17
- type: "image/png",
18
- },
19
- {
20
- src: "/favicon/web-app-manifest-512x512.png",
21
- sizes: "512x512",
22
- type: "image/png",
23
- },
24
- ],
25
- };
26
- }
@@ -1,12 +0,0 @@
1
- import {
2
- defineConfig,
3
- minimal2023Preset as preset,
4
- } from "@vite-pwa/assets-generator/config";
5
-
6
- export default defineConfig({
7
- headLinkOptions: {
8
- preset: "2023",
9
- },
10
- preset,
11
- images: ["public/logo.png"],
12
- });
@@ -1,142 +0,0 @@
1
- # Better-T-Stack Project Rules
2
-
3
- This is a {{projectName}} project created with Better-T-Stack CLI.
4
-
5
- ## Project Structure
6
-
7
- This is a monorepo with the following structure:
8
-
9
- {{#if (or (includes frontend "tanstack-router") (includes frontend "react-router") (includes frontend "tanstack-start")
10
- (includes frontend "next") (includes frontend "nuxt") (includes frontend "svelte") (includes frontend "solid"))}}
11
- - **`apps/web/`** - {{#if (eq backend "self")}}Fullstack application{{else}}Frontend application{{/if}}{{#if (includes frontend "tanstack-router")}} (React with TanStack Router){{else
12
- if (includes frontend "react-router")}} (React with React Router){{else if (includes frontend "next")}} (Next.js){{else
13
- if (includes frontend "nuxt")}} (Nuxt.js){{else if (includes frontend "svelte")}} (SvelteKit){{else if (includes
14
- frontend "solid")}} (SolidStart){{/if}}
15
- {{/if}}
16
-
17
- {{#if (ne backend "convex")}}
18
- {{#if (and (ne backend "none") (ne backend "self"))}}
19
- - **`apps/server/`** - Backend server{{#if (eq backend "hono")}} (Hono){{else if (eq backend "express")}}
20
- (Express){{else if (eq backend "fastify")}} (Fastify){{else if (eq backend "elysia")}} (Elysia){{else if (eq backend
21
- "next")}} (Next.js API){{/if}}
22
- {{/if}}
23
- {{else}}
24
- - **`packages/backend/`** - Convex backend functions
25
- {{/if}}
26
-
27
- {{#if (or (ne backend "none") (ne backend "convex"))}}
28
- {{#if (ne api "none")}}
29
- - **`packages/api/`** - Shared API logic and types
30
- {{/if}}
31
- {{#if (and (ne auth "none") (ne backend "convex"))}}
32
- - **`packages/auth/`** - Authentication logic and utilities
33
- {{/if}}
34
- {{#if (and (ne database "none") (ne orm "none") (ne backend "convex"))}}
35
- - **`packages/db/`** - Database schema and utilities
36
- {{/if}}
37
- {{/if}}
38
-
39
- {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
40
- - **`apps/native/`** - React Native mobile app{{#if (includes frontend "native-nativewind")}} (with NativeWind){{else if
41
- (includes frontend "native-unistyles")}} (with Unistyles){{/if}}
42
- {{/if}}
43
-
44
- ## Available Scripts
45
-
46
- - `{{packageManager}} run dev` - Start all apps in development mode
47
- {{#if (and (or (includes frontend "tanstack-router") (includes frontend "react-router") (includes frontend "tanstack-start")
48
- (includes frontend "next") (includes frontend "nuxt") (includes frontend "svelte") (includes frontend "solid")) (ne backend "self"))}}
49
- - `{{packageManager}} run dev:web` - Start only the web app
50
- {{/if}}
51
- {{#if (and (ne backend "none") (ne backend "convex") (ne backend "self"))}}
52
- - `{{packageManager}} run dev:server` - Start only the server
53
- {{/if}}
54
- {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
55
- - `{{packageManager}} run dev:native` - Start only the native app
56
- {{/if}}
57
-
58
- {{#if (and (ne database "none") (ne orm "none") (ne backend "convex"))}}
59
- ## Database Commands
60
-
61
- All database operations should be run from the {{#if (eq backend "self")}}web{{else}}server{{/if}} workspace:
62
-
63
- - `{{packageManager}} run db:push` - Push schema changes to database
64
- - `{{packageManager}} run db:studio` - Open database studio
65
- - `{{packageManager}} run db:generate` - Generate {{#if (eq orm "drizzle")}}Drizzle{{else if (eq orm
66
- "prisma")}}Prisma{{else}}{{orm}}{{/if}} files
67
- - `{{packageManager}} run db:migrate` - Run database migrations
68
-
69
- {{#if (eq orm "drizzle")}}
70
- Database schema files are located in {{#if (eq backend "self")}}`apps/web/src/db/schema/`{{else}}`apps/server/src/db/schema/`{{/if}}
71
- {{else if (eq orm "prisma")}}
72
- Database schema is located in {{#if (eq backend "self")}}`apps/web/prisma/schema.prisma`{{else}}`apps/server/prisma/schema.prisma`{{/if}}
73
- {{else if (eq orm "mongoose")}}
74
- Database models are located in {{#if (eq backend "self")}}`apps/web/src/db/models/`{{else}}`apps/server/src/db/models/`{{/if}}
75
- {{/if}}
76
- {{/if}}
77
-
78
- {{#if (ne api "none")}}
79
- ## API Structure
80
-
81
- {{#if (eq api "trpc")}}
82
- - tRPC routers are in {{#if (eq backend "self")}}`packages/api/src/routers/`{{else}}`apps/server/src/routers/`{{/if}}
83
- - Client-side tRPC utils are in `apps/web/src/utils/trpc.ts`
84
- {{else if (eq api "orpc")}}
85
- - oRPC endpoints are in {{#if (eq backend "self")}}`packages/api/src/api/`{{else}}`apps/server/src/api/`{{/if}}
86
- - Client-side API utils are in `apps/web/src/utils/api.ts`
87
- {{/if}}
88
- {{/if}}
89
-
90
- {{#if (eq auth "better-auth")}}
91
- ## Authentication
92
-
93
- Authentication is enabled in this project:
94
- {{#if (ne backend "convex")}}
95
- - Server auth logic is in {{#if (eq backend "self")}}`packages/auth/src/lib/auth.ts`{{else}}`apps/server/src/lib/auth.ts`{{/if}}
96
- {{#if (or (includes frontend "tanstack-router") (includes frontend "react-router") (includes frontend "tanstack-start")
97
- (includes frontend "next") (includes frontend "nuxt") (includes frontend "svelte") (includes frontend "solid"))}}
98
- - Web app auth client is in `apps/web/src/lib/auth-client.ts`
99
- {{/if}}
100
- {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
101
- - Native app auth client is in `apps/native/src/lib/auth-client.ts`
102
- {{/if}}
103
- {{else}}
104
- {{/if}}
105
- {{/if}}
106
-
107
- ## Adding More Features
108
-
109
- You can add additional addons or deployment options to your project using:
110
-
111
- ```bash
112
- {{#if (eq packageManager "bun")}}bunx{{else if (eq packageManager "pnpm")}}pnpx{{else}}npx{{/if}} create-better-t-stack
113
- add
114
- ```
115
-
116
- Available addons you can add:
117
- - **Documentation**: Starlight, Fumadocs
118
- - **Linting**: Biome, Oxlint, Ultracite
119
- - **Other**: Ruler, Turborepo, PWA, Tauri, Husky
120
-
121
- You can also add web deployment configurations like Cloudflare Workers support.
122
-
123
- ## Project Configuration
124
-
125
- This project includes a `bts.jsonc` configuration file that stores your Better-T-Stack settings:
126
-
127
- - Contains your selected stack configuration (database, ORM, backend, frontend, etc.)
128
- - Used by the CLI to understand your project structure
129
- - Safe to delete if not needed
130
- - Updated automatically when using the `add` command
131
-
132
- ## Key Points
133
-
134
- - This is a {{#if (includes addons "turborepo")}}Turborepo {{/if}}monorepo using {{packageManager}} workspaces
135
- - Each app has its own `package.json` and dependencies
136
- - Run commands from the root to execute across all workspaces
137
- - Run workspace-specific commands with `{{packageManager}} run command-name`
138
- {{#if (includes addons "turborepo")}}
139
- - Turborepo handles build caching and parallel execution
140
- {{/if}}
141
- - Use `{{#if (eq packageManager "bun")}}bunx{{else if (eq packageManager "pnpm")}}pnpx{{else}}npx{{/if}}
142
- create-better-t-stack add` to add more features later
@@ -1,80 +0,0 @@
1
- # Ruler Configuration File
2
- # See https://okigu.com/ruler for documentation.
3
-
4
- # Default agents to run when --agents is not specified
5
- default_agents = []
6
-
7
- # --- Global MCP Server Configuration ---
8
- [mcp]
9
- # Enable/disable MCP propagation globally (default: true)
10
- enabled = true
11
- # Global merge strategy: 'merge' or 'overwrite' (default: 'merge')
12
- merge_strategy = "merge"
13
-
14
- # --- MCP Server Definitions ---
15
- [mcp_servers.context7]
16
- command = "npx"
17
- args = ["-y", "@upstash/context7-mcp"]
18
-
19
- {{#if (or (eq runtime "workers") (eq webDeploy "wrangler"))}}
20
- [mcp_servers.cloudflare]
21
- command = "npx"
22
- args = ["mcp-remote", "https://docs.mcp.cloudflare.com/sse"]
23
- {{/if}}
24
-
25
- {{#if (eq backend "convex")}}
26
- [mcp_servers.convex]
27
- command = "npx"
28
- args = ["-y", "convex@latest", "mcp", "start"]
29
- {{/if}}
30
-
31
- {{#if (or (includes frontend "tanstack-router") (includes frontend "react-router") (includes frontend "tanstack-start") (includes frontend "next"))}}
32
- [mcp_servers.shadcn]
33
- command = "npx"
34
- args = ["shadcn@latest", "mcp"]
35
- {{/if}}
36
-
37
- {{#if (eq dbSetup "planetscale")}}
38
- [mcp_servers.planetscale]
39
- command = "pscale"
40
- args = ["mcp", "server"]
41
- {{/if}}
42
-
43
- {{#if (eq dbSetup "prisma-postgres")}}
44
- [mcp_servers.prisma]
45
- command = "npx"
46
- args = ["-y", "prisma", "mcp"]
47
- {{/if}}
48
-
49
- {{#if (eq dbSetup "neon")}}
50
- [mcp_servers.neon]
51
- command = "npx"
52
- args = ["-y", "mcp-remote@latest", "https://mcp.neon.tech/mcp"]
53
- {{/if}}
54
-
55
- {{#if (eq dbSetup "mongodb-atlas")}}
56
- [mcp_servers.mongodb]
57
- command = "npx"
58
- args = ["-y", "mongodb-mcp-server", "--connectionString", "mongodb://localhost:27017/myDatabase", "--readOnly"]
59
- {{/if}}
60
-
61
- {{#if (eq auth "better-auth")}}
62
- [mcp_servers.better-auth]
63
- url = "https://mcp.chonkie.ai/better-auth/better-auth-builder/mcp"
64
- {{/if}}
65
-
66
- {{#if (includes frontend "nuxt")}}
67
- [mcp_servers.nuxt-ui]
68
- url = "https://ui.nuxt.com/mcp"
69
- {{/if}}
70
-
71
- {{#if (includes frontend "next")}}
72
- [mcp_servers.next-devtools]
73
- command = "npx"
74
- args = ["-y", "next-devtools-mcp@latest"]
75
- {{/if}}
76
-
77
- # --- Global .gitignore Configuration ---
78
- [gitignore]
79
- # Enable/disable automatic .gitignore updates (default: true)
80
- enabled = true
@@ -1,74 +0,0 @@
1
- {
2
- "$schema": "https://turbo.build/schema.json",
3
- "ui": "tui",
4
- "tasks": {
5
- "build": {
6
- "dependsOn": ["^build"],
7
- "inputs": ["$TURBO_DEFAULT$", ".env*"],
8
- "outputs": ["dist/**"]
9
- },
10
- "lint": {
11
- "dependsOn": ["^lint"]
12
- },
13
- "check-types": {
14
- "dependsOn": ["^check-types"]
15
- },
16
- "dev": {
17
- "cache": false,
18
- "persistent": true
19
- }{{#if (eq backend "convex")}},
20
- "dev:setup": {
21
- "cache": false,
22
- "persistent": true
23
- }
24
- {{else}}{{#unless (or (eq database "none") (eq orm "none"))}},
25
- "db:push": {
26
- "cache": false,
27
- "persistent": true
28
- },
29
- "db:studio": {
30
- "cache": false,
31
- "persistent": true
32
- },
33
- "db:migrate": {
34
- "cache": false,
35
- "persistent": true
36
- },
37
- "db:generate": {
38
- "cache": false,
39
- "persistent": true
40
- }
41
- {{/unless}}{{/if}}
42
- {{#if (eq dbSetup "docker")}},
43
- "db:start": {
44
- "cache": false,
45
- "persistent": true
46
- },
47
- "db:stop": {
48
- "cache": false,
49
- "persistent": true
50
- },
51
- "db:watch": {
52
- "cache": false,
53
- "persistent": true
54
- },
55
- "db:down": {
56
- "cache": false,
57
- "persistent": true
58
- }{{/if}}
59
- {{#if (and (eq database "sqlite") (ne dbSetup "d1"))}},
60
- "db:local": {
61
- "cache": false,
62
- "persistent": true
63
- }
64
- {{/if}}
65
- {{#if (or (eq webDeploy "cloudflare") (eq serverDeploy "cloudflare"))}},
66
- "deploy": {
67
- "cache": false
68
- },
69
- "destroy": {
70
- "cache": false
71
- }
72
- {{/if}}
73
- }
74
- }
@@ -1,26 +0,0 @@
1
- {
2
- "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
3
- "files": {
4
- "ignoreUnknown": false,
5
- "includes": [
6
- "**",
7
- "!**/.next",
8
- "!**/dist",
9
- "!**/.turbo",
10
- "!**/dev-dist",
11
- "!**/.zed",
12
- "!**/.vscode",
13
- "!**/routeTree.gen.ts",
14
- "!**/src-tauri",
15
- "!**/.nuxt",
16
- "!bts.jsonc",
17
- "!**/.expo",
18
- "!**/.wrangler",
19
- "!**/.alchemy",
20
- "!**/.svelte-kit",
21
- "!**/wrangler.jsonc",
22
- "!**/.source",
23
- "!**/convex/_generated"
24
- ]
25
- }
26
- }
@@ -1,50 +0,0 @@
1
- import { createContext } from "@{{projectName}}/api/context";
2
- import { appRouter } from "@{{projectName}}/api/routers/index";
3
- import { OpenAPIHandler } from "@orpc/openapi/fetch";
4
- import { OpenAPIReferencePlugin } from "@orpc/openapi/plugins";
5
- import { ZodToJsonSchemaConverter } from "@orpc/zod/zod4";
6
- import { RPCHandler } from "@orpc/server/fetch";
7
- import { onError } from "@orpc/server";
8
- import { NextRequest } from "next/server";
9
-
10
- const rpcHandler = new RPCHandler(appRouter, {
11
- interceptors: [
12
- onError((error) => {
13
- console.error(error);
14
- }),
15
- ],
16
- });
17
- const apiHandler = new OpenAPIHandler(appRouter, {
18
- plugins: [
19
- new OpenAPIReferencePlugin({
20
- schemaConverters: [new ZodToJsonSchemaConverter()],
21
- }),
22
- ],
23
- interceptors: [
24
- onError((error) => {
25
- console.error(error);
26
- }),
27
- ],
28
- });
29
-
30
- async function handleRequest(req: NextRequest) {
31
- const rpcResult = await rpcHandler.handle(req, {
32
- prefix: "/api/rpc",
33
- context: await createContext(req),
34
- });
35
- if (rpcResult.response) return rpcResult.response;
36
-
37
- const apiResult = await apiHandler.handle(req, {
38
- prefix: "/api/rpc/api-reference",
39
- context: await createContext(req),
40
- });
41
- if (apiResult.response) return apiResult.response;
42
-
43
- return new Response("Not found", { status: 404 });
44
- }
45
-
46
- export const GET = handleRequest;
47
- export const POST = handleRequest;
48
- export const PUT = handleRequest;
49
- export const PATCH = handleRequest;
50
- export const DELETE = handleRequest;
@@ -1,58 +0,0 @@
1
- import { createContext } from "@{{projectName}}/api/context";
2
- import { appRouter } from "@{{projectName}}/api/routers/index";
3
- import { OpenAPIHandler } from "@orpc/openapi/fetch";
4
- import { OpenAPIReferencePlugin } from "@orpc/openapi/plugins";
5
- import { ZodToJsonSchemaConverter } from "@orpc/zod/zod4";
6
- import { RPCHandler } from "@orpc/server/fetch";
7
- import { onError } from "@orpc/server";
8
- import { createFileRoute } from "@tanstack/react-router";
9
-
10
- const rpcHandler = new RPCHandler(appRouter, {
11
- interceptors: [
12
- onError((error) => {
13
- console.error(error);
14
- }),
15
- ],
16
- });
17
-
18
- const apiHandler = new OpenAPIHandler(appRouter, {
19
- plugins: [
20
- new OpenAPIReferencePlugin({
21
- schemaConverters: [new ZodToJsonSchemaConverter()],
22
- }),
23
- ],
24
- interceptors: [
25
- onError((error) => {
26
- console.error(error);
27
- }),
28
- ],
29
- });
30
-
31
- async function handle({ request }: { request: Request }) {
32
- const rpcResult = await rpcHandler.handle(request, {
33
- prefix: "/api/rpc",
34
- context: await createContext({ req: request }),
35
- });
36
- if (rpcResult.response) return rpcResult.response;
37
-
38
- const apiResult = await apiHandler.handle(request, {
39
- prefix: "/api/rpc/api-reference",
40
- context: await createContext({ req: request }),
41
- });
42
- if (apiResult.response) return apiResult.response;
43
-
44
- return new Response("Not found", { status: 404 });
45
- }
46
-
47
- export const Route = createFileRoute('/api/rpc/$')({
48
- server: {
49
- handlers: {
50
- HEAD: handle,
51
- GET: handle,
52
- POST: handle,
53
- PUT: handle,
54
- PATCH: handle,
55
- DELETE: handle,
56
- },
57
- },
58
- })