virastack 0.0.1 → 1.0.0

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 (433) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +94 -18
  3. package/bin/virastack.js +7 -0
  4. package/package.json +43 -9
  5. package/src/commands/add.js +64 -0
  6. package/src/commands/init.js +286 -0
  7. package/src/i18n.js +231 -0
  8. package/src/index.js +64 -0
  9. package/src/utils/args.js +60 -0
  10. package/src/utils/copy-template.js +80 -0
  11. package/src/utils/exec.js +29 -0
  12. package/src/utils/git.js +38 -0
  13. package/src/utils/is-online.js +14 -0
  14. package/src/utils/package-info.js +12 -0
  15. package/src/utils/package-manager.js +33 -0
  16. package/src/utils/setup-env.js +25 -0
  17. package/src/utils/telemetry.js +86 -0
  18. package/src/utils/tools.js +48 -0
  19. package/src/utils/update-package-json.js +44 -0
  20. package/src/utils/update-readme.js +25 -0
  21. package/src/utils/validate-project-name.js +26 -0
  22. package/templates/nextjs/.changeset/README.md +8 -0
  23. package/templates/nextjs/.changeset/config.json +11 -0
  24. package/templates/nextjs/.env.example +6 -0
  25. package/templates/nextjs/.github/workflows/ci.yml +41 -0
  26. package/templates/nextjs/.husky/commit-msg +1 -0
  27. package/templates/nextjs/.husky/pre-commit +1 -0
  28. package/templates/nextjs/.husky/pre-push +1 -0
  29. package/templates/nextjs/.prettierignore +6 -0
  30. package/templates/nextjs/.prettierrc +42 -0
  31. package/templates/nextjs/.vscode/extensions.json +7 -0
  32. package/templates/nextjs/.vscode/settings.json +20 -0
  33. package/templates/nextjs/LICENSE +21 -0
  34. package/templates/nextjs/README.md +202 -0
  35. package/templates/nextjs/commitlint.config.js +6 -0
  36. package/templates/nextjs/eslint.config.mjs +27 -0
  37. package/templates/nextjs/knip.config.js +25 -0
  38. package/templates/nextjs/next.config.ts +39 -0
  39. package/templates/nextjs/package.json +115 -0
  40. package/templates/nextjs/pnpm-lock.yaml +6467 -0
  41. package/templates/nextjs/pnpm-workspace.yaml +3 -0
  42. package/templates/nextjs/postcss.config.mjs +7 -0
  43. package/templates/nextjs/public/favicon.ico +0 -0
  44. package/templates/nextjs/public/llms.txt +96 -0
  45. package/templates/nextjs/public/logo.png +0 -0
  46. package/templates/nextjs/public/logo.webp +0 -0
  47. package/templates/nextjs/public/og.png +0 -0
  48. package/templates/nextjs/src/app/error.tsx +34 -0
  49. package/templates/nextjs/src/app/favicon.ico +0 -0
  50. package/templates/nextjs/src/app/global-error.tsx +32 -0
  51. package/templates/nextjs/src/app/layout.tsx +37 -0
  52. package/templates/nextjs/src/app/loading.tsx +12 -0
  53. package/templates/nextjs/src/app/manifest.ts +22 -0
  54. package/templates/nextjs/src/app/not-found.tsx +18 -0
  55. package/templates/nextjs/src/app/page.tsx +5 -0
  56. package/templates/nextjs/src/app/robots.ts +13 -0
  57. package/templates/nextjs/src/app/sitemap.ts +14 -0
  58. package/templates/nextjs/src/components/shared/ThemeToggle.tsx +30 -0
  59. package/templates/nextjs/src/components/ui/avatar.tsx +54 -0
  60. package/templates/nextjs/src/components/ui/button.tsx +46 -0
  61. package/templates/nextjs/src/components/ui/dialog.tsx +107 -0
  62. package/templates/nextjs/src/components/ui/field.tsx +24 -0
  63. package/templates/nextjs/src/components/ui/index.ts +27 -0
  64. package/templates/nextjs/src/components/ui/input.tsx +23 -0
  65. package/templates/nextjs/src/components/ui/label.tsx +17 -0
  66. package/templates/nextjs/src/components/ui/skeleton.tsx +13 -0
  67. package/templates/nextjs/src/components/ui/table.tsx +94 -0
  68. package/templates/nextjs/src/components/ui/tabs.tsx +46 -0
  69. package/templates/nextjs/src/config/seo.config.ts +37 -0
  70. package/templates/nextjs/src/config/site.config.ts +15 -0
  71. package/templates/nextjs/src/constants/index.ts +5 -0
  72. package/templates/nextjs/src/env.ts +41 -0
  73. package/templates/nextjs/src/features/landing/api/get-users.api.ts +7 -0
  74. package/templates/nextjs/src/features/landing/api/index.ts +2 -0
  75. package/templates/nextjs/src/features/landing/api/query-keys.ts +7 -0
  76. package/templates/nextjs/src/features/landing/components/CartDemo.tsx +66 -0
  77. package/templates/nextjs/src/features/landing/components/Features.tsx +39 -0
  78. package/templates/nextjs/src/features/landing/components/Hero.tsx +65 -0
  79. package/templates/nextjs/src/features/landing/components/LandingPage.tsx +17 -0
  80. package/templates/nextjs/src/features/landing/components/ProjectFormDemo.tsx +62 -0
  81. package/templates/nextjs/src/features/landing/components/Reveal.tsx +83 -0
  82. package/templates/nextjs/src/features/landing/components/Showcase.tsx +66 -0
  83. package/templates/nextjs/src/features/landing/components/UsersDemo.tsx +188 -0
  84. package/templates/nextjs/src/features/landing/data/features.data.tsx +47 -0
  85. package/templates/nextjs/src/features/landing/data/index.ts +1 -0
  86. package/templates/nextjs/src/features/landing/helpers/get-initials.ts +15 -0
  87. package/templates/nextjs/src/features/landing/helpers/index.ts +7 -0
  88. package/templates/nextjs/src/features/landing/helpers/motion.ts +21 -0
  89. package/templates/nextjs/src/features/landing/hooks/index.ts +1 -0
  90. package/templates/nextjs/src/features/landing/hooks/use-users.ts +16 -0
  91. package/templates/nextjs/src/features/landing/icons/index.ts +6 -0
  92. package/templates/nextjs/src/features/landing/icons/nextjs.tsx +68 -0
  93. package/templates/nextjs/src/features/landing/icons/react-hook-form.tsx +18 -0
  94. package/templates/nextjs/src/features/landing/icons/react.tsx +20 -0
  95. package/templates/nextjs/src/features/landing/icons/tailwind.tsx +14 -0
  96. package/templates/nextjs/src/features/landing/icons/tanstack.tsx +321 -0
  97. package/templates/nextjs/src/features/landing/icons/typescript.tsx +16 -0
  98. package/templates/nextjs/src/features/landing/index.ts +1 -0
  99. package/templates/nextjs/src/features/landing/schemas/index.ts +1 -0
  100. package/templates/nextjs/src/features/landing/schemas/project.schema.ts +7 -0
  101. package/templates/nextjs/src/features/landing/stores/counter.store.ts +18 -0
  102. package/templates/nextjs/src/features/landing/stores/index.ts +1 -0
  103. package/templates/nextjs/src/features/landing/types/index.ts +1 -0
  104. package/templates/nextjs/src/features/landing/types/user.types.ts +9 -0
  105. package/templates/nextjs/src/helpers/format-date.ts +13 -0
  106. package/templates/nextjs/src/helpers/index.ts +1 -0
  107. package/templates/nextjs/src/hooks/index.ts +5 -0
  108. package/templates/nextjs/src/lib/api.ts +97 -0
  109. package/templates/nextjs/src/lib/query-client.ts +18 -0
  110. package/templates/nextjs/src/lib/utils.ts +12 -0
  111. package/templates/nextjs/src/providers/Providers.tsx +15 -0
  112. package/templates/nextjs/src/providers/QueryProvider.tsx +19 -0
  113. package/templates/nextjs/src/providers/ThemeProvider.tsx +9 -0
  114. package/templates/nextjs/src/providers/index.ts +1 -0
  115. package/templates/nextjs/src/proxy.ts +6 -0
  116. package/templates/nextjs/src/schemas/index.ts +5 -0
  117. package/templates/nextjs/src/stores/index.ts +5 -0
  118. package/templates/nextjs/src/styles/tailwind.css +122 -0
  119. package/templates/nextjs/src/types/site-config.types.ts +10 -0
  120. package/templates/nextjs/tsconfig.json +45 -0
  121. package/templates/tanstack/.changeset/README.md +8 -0
  122. package/templates/tanstack/.changeset/config.json +11 -0
  123. package/templates/tanstack/.env.example +6 -0
  124. package/templates/tanstack/.github/workflows/ci.yml +41 -0
  125. package/templates/tanstack/.husky/commit-msg +1 -0
  126. package/templates/tanstack/.husky/pre-commit +1 -0
  127. package/templates/tanstack/.husky/pre-push +1 -0
  128. package/templates/tanstack/.prettierignore +7 -0
  129. package/templates/tanstack/.prettierrc +41 -0
  130. package/templates/tanstack/.vscode/extensions.json +7 -0
  131. package/templates/tanstack/.vscode/settings.json +22 -0
  132. package/templates/tanstack/LICENSE +21 -0
  133. package/templates/tanstack/README.md +204 -0
  134. package/templates/tanstack/commitlint.config.js +6 -0
  135. package/templates/tanstack/eslint.config.js +28 -0
  136. package/templates/tanstack/knip.config.js +22 -0
  137. package/templates/tanstack/package.json +130 -0
  138. package/templates/tanstack/pnpm-lock.yaml +5835 -0
  139. package/templates/tanstack/pnpm-workspace.yaml +3 -0
  140. package/templates/tanstack/public/favicon.ico +0 -0
  141. package/templates/tanstack/public/llms.txt +86 -0
  142. package/templates/tanstack/public/logo.png +0 -0
  143. package/templates/tanstack/public/logo.webp +0 -0
  144. package/templates/tanstack/public/og.png +0 -0
  145. package/templates/tanstack/src/components/shared/DefaultCatchBoundary.tsx +36 -0
  146. package/templates/tanstack/src/components/shared/NotFound.tsx +18 -0
  147. package/templates/tanstack/src/components/shared/Pending.tsx +13 -0
  148. package/templates/tanstack/src/components/shared/ThemeToggle.tsx +31 -0
  149. package/templates/tanstack/src/components/ui/avatar.tsx +52 -0
  150. package/templates/tanstack/src/components/ui/button.tsx +47 -0
  151. package/templates/tanstack/src/components/ui/dialog.tsx +107 -0
  152. package/templates/tanstack/src/components/ui/field.tsx +24 -0
  153. package/templates/tanstack/src/components/ui/index.ts +27 -0
  154. package/templates/tanstack/src/components/ui/input.tsx +23 -0
  155. package/templates/tanstack/src/components/ui/label.tsx +17 -0
  156. package/templates/tanstack/src/components/ui/skeleton.tsx +13 -0
  157. package/templates/tanstack/src/components/ui/table.tsx +94 -0
  158. package/templates/tanstack/src/components/ui/tabs.tsx +46 -0
  159. package/templates/tanstack/src/config/seo.config.ts +52 -0
  160. package/templates/tanstack/src/config/site.config.ts +15 -0
  161. package/templates/tanstack/src/constants/index.ts +5 -0
  162. package/templates/tanstack/src/env.ts +47 -0
  163. package/templates/tanstack/src/features/landing/api/get-users.api.ts +7 -0
  164. package/templates/tanstack/src/features/landing/api/index.ts +2 -0
  165. package/templates/tanstack/src/features/landing/api/query-keys.ts +7 -0
  166. package/templates/tanstack/src/features/landing/components/CartDemo.tsx +66 -0
  167. package/templates/tanstack/src/features/landing/components/Features.tsx +39 -0
  168. package/templates/tanstack/src/features/landing/components/Hero.tsx +63 -0
  169. package/templates/tanstack/src/features/landing/components/LandingPage.tsx +17 -0
  170. package/templates/tanstack/src/features/landing/components/ProjectFormDemo.tsx +63 -0
  171. package/templates/tanstack/src/features/landing/components/Reveal.tsx +83 -0
  172. package/templates/tanstack/src/features/landing/components/Showcase.tsx +66 -0
  173. package/templates/tanstack/src/features/landing/components/UsersDemo.tsx +191 -0
  174. package/templates/tanstack/src/features/landing/data/features.data.tsx +45 -0
  175. package/templates/tanstack/src/features/landing/data/index.ts +1 -0
  176. package/templates/tanstack/src/features/landing/helpers/get-initials.ts +15 -0
  177. package/templates/tanstack/src/features/landing/helpers/index.ts +7 -0
  178. package/templates/tanstack/src/features/landing/helpers/motion.ts +21 -0
  179. package/templates/tanstack/src/features/landing/hooks/index.ts +1 -0
  180. package/templates/tanstack/src/features/landing/hooks/use-users.ts +19 -0
  181. package/templates/tanstack/src/features/landing/icons/index.ts +5 -0
  182. package/templates/tanstack/src/features/landing/icons/react-hook-form.tsx +18 -0
  183. package/templates/tanstack/src/features/landing/icons/react.tsx +20 -0
  184. package/templates/tanstack/src/features/landing/icons/tailwind.tsx +14 -0
  185. package/templates/tanstack/src/features/landing/icons/tanstack.tsx +321 -0
  186. package/templates/tanstack/src/features/landing/icons/typescript.tsx +16 -0
  187. package/templates/tanstack/src/features/landing/index.ts +1 -0
  188. package/templates/tanstack/src/features/landing/schemas/index.ts +1 -0
  189. package/templates/tanstack/src/features/landing/schemas/project.schema.ts +7 -0
  190. package/templates/tanstack/src/features/landing/stores/counter.store.ts +18 -0
  191. package/templates/tanstack/src/features/landing/stores/index.ts +1 -0
  192. package/templates/tanstack/src/features/landing/types/index.ts +1 -0
  193. package/templates/tanstack/src/features/landing/types/user.types.ts +9 -0
  194. package/templates/tanstack/src/helpers/format-date.ts +13 -0
  195. package/templates/tanstack/src/helpers/index.ts +1 -0
  196. package/templates/tanstack/src/hooks/index.ts +5 -0
  197. package/templates/tanstack/src/lib/api.ts +97 -0
  198. package/templates/tanstack/src/lib/query-client.ts +18 -0
  199. package/templates/tanstack/src/lib/utils.ts +13 -0
  200. package/templates/tanstack/src/providers/Providers.tsx +12 -0
  201. package/templates/tanstack/src/providers/ThemeProvider.tsx +98 -0
  202. package/templates/tanstack/src/providers/devtools.tsx +6 -0
  203. package/templates/tanstack/src/providers/index.ts +1 -0
  204. package/templates/tanstack/src/providers/root-provider.ts +9 -0
  205. package/templates/tanstack/src/routeTree.gen.ts +123 -0
  206. package/templates/tanstack/src/router.tsx +27 -0
  207. package/templates/tanstack/src/routes/__root.tsx +78 -0
  208. package/templates/tanstack/src/routes/index.tsx +13 -0
  209. package/templates/tanstack/src/routes/robots[.]txt.ts +21 -0
  210. package/templates/tanstack/src/routes/site[.]webmanifest.ts +32 -0
  211. package/templates/tanstack/src/routes/sitemap[.]xml.ts +27 -0
  212. package/templates/tanstack/src/schemas/index.ts +5 -0
  213. package/templates/tanstack/src/start.ts +20 -0
  214. package/templates/tanstack/src/stores/index.ts +5 -0
  215. package/templates/tanstack/src/styles/tailwind.css +123 -0
  216. package/templates/tanstack/src/types/site-config.types.ts +10 -0
  217. package/templates/tanstack/tsconfig.json +25 -0
  218. package/templates/tanstack/tsr.config.json +3 -0
  219. package/templates/tanstack/vite.config.ts +12 -0
  220. package/templates-i18n/nextjs/.changeset/README.md +8 -0
  221. package/templates-i18n/nextjs/.changeset/config.json +11 -0
  222. package/templates-i18n/nextjs/.env.example +6 -0
  223. package/templates-i18n/nextjs/.github/workflows/ci.yml +41 -0
  224. package/templates-i18n/nextjs/.husky/commit-msg +1 -0
  225. package/templates-i18n/nextjs/.husky/pre-commit +1 -0
  226. package/templates-i18n/nextjs/.husky/pre-push +1 -0
  227. package/templates-i18n/nextjs/.prettierignore +6 -0
  228. package/templates-i18n/nextjs/.prettierrc +42 -0
  229. package/templates-i18n/nextjs/.vscode/extensions.json +7 -0
  230. package/templates-i18n/nextjs/.vscode/settings.json +20 -0
  231. package/templates-i18n/nextjs/LICENSE +21 -0
  232. package/templates-i18n/nextjs/README.md +202 -0
  233. package/templates-i18n/nextjs/commitlint.config.js +6 -0
  234. package/templates-i18n/nextjs/eslint.config.mjs +27 -0
  235. package/templates-i18n/nextjs/knip.config.js +29 -0
  236. package/templates-i18n/nextjs/next.config.ts +42 -0
  237. package/templates-i18n/nextjs/package.json +117 -0
  238. package/templates-i18n/nextjs/pnpm-lock.yaml +6854 -0
  239. package/templates-i18n/nextjs/pnpm-workspace.yaml +3 -0
  240. package/templates-i18n/nextjs/postcss.config.mjs +7 -0
  241. package/templates-i18n/nextjs/public/favicon.ico +0 -0
  242. package/templates-i18n/nextjs/public/llms.txt +96 -0
  243. package/templates-i18n/nextjs/public/logo.png +0 -0
  244. package/templates-i18n/nextjs/public/logo.webp +0 -0
  245. package/templates-i18n/nextjs/public/og.png +0 -0
  246. package/templates-i18n/nextjs/src/app/[locale]/error.tsx +34 -0
  247. package/templates-i18n/nextjs/src/app/[locale]/layout.tsx +60 -0
  248. package/templates-i18n/nextjs/src/app/[locale]/loading.tsx +12 -0
  249. package/templates-i18n/nextjs/src/app/[locale]/not-found.tsx +18 -0
  250. package/templates-i18n/nextjs/src/app/[locale]/page.tsx +10 -0
  251. package/templates-i18n/nextjs/src/app/favicon.ico +0 -0
  252. package/templates-i18n/nextjs/src/app/global-error.tsx +32 -0
  253. package/templates-i18n/nextjs/src/app/manifest.ts +22 -0
  254. package/templates-i18n/nextjs/src/app/robots.ts +13 -0
  255. package/templates-i18n/nextjs/src/app/sitemap.ts +14 -0
  256. package/templates-i18n/nextjs/src/components/shared/LanguageSwitcher.tsx +48 -0
  257. package/templates-i18n/nextjs/src/components/shared/ThemeToggle.tsx +30 -0
  258. package/templates-i18n/nextjs/src/components/ui/avatar.tsx +54 -0
  259. package/templates-i18n/nextjs/src/components/ui/button.tsx +46 -0
  260. package/templates-i18n/nextjs/src/components/ui/dialog.tsx +107 -0
  261. package/templates-i18n/nextjs/src/components/ui/field.tsx +24 -0
  262. package/templates-i18n/nextjs/src/components/ui/index.ts +27 -0
  263. package/templates-i18n/nextjs/src/components/ui/input.tsx +23 -0
  264. package/templates-i18n/nextjs/src/components/ui/label.tsx +17 -0
  265. package/templates-i18n/nextjs/src/components/ui/skeleton.tsx +13 -0
  266. package/templates-i18n/nextjs/src/components/ui/table.tsx +94 -0
  267. package/templates-i18n/nextjs/src/components/ui/tabs.tsx +46 -0
  268. package/templates-i18n/nextjs/src/config/seo.config.ts +37 -0
  269. package/templates-i18n/nextjs/src/config/site.config.ts +15 -0
  270. package/templates-i18n/nextjs/src/constants/index.ts +5 -0
  271. package/templates-i18n/nextjs/src/env.ts +41 -0
  272. package/templates-i18n/nextjs/src/features/landing/api/get-users.api.ts +7 -0
  273. package/templates-i18n/nextjs/src/features/landing/api/index.ts +2 -0
  274. package/templates-i18n/nextjs/src/features/landing/api/query-keys.ts +7 -0
  275. package/templates-i18n/nextjs/src/features/landing/components/CartDemo.tsx +68 -0
  276. package/templates-i18n/nextjs/src/features/landing/components/Features.tsx +84 -0
  277. package/templates-i18n/nextjs/src/features/landing/components/Hero.tsx +76 -0
  278. package/templates-i18n/nextjs/src/features/landing/components/LandingPage.tsx +17 -0
  279. package/templates-i18n/nextjs/src/features/landing/components/ProjectFormDemo.tsx +64 -0
  280. package/templates-i18n/nextjs/src/features/landing/components/Reveal.tsx +83 -0
  281. package/templates-i18n/nextjs/src/features/landing/components/Showcase.tsx +83 -0
  282. package/templates-i18n/nextjs/src/features/landing/components/UsersDemo.tsx +191 -0
  283. package/templates-i18n/nextjs/src/features/landing/data/features.data.tsx +47 -0
  284. package/templates-i18n/nextjs/src/features/landing/data/index.ts +1 -0
  285. package/templates-i18n/nextjs/src/features/landing/helpers/get-initials.ts +15 -0
  286. package/templates-i18n/nextjs/src/features/landing/helpers/index.ts +7 -0
  287. package/templates-i18n/nextjs/src/features/landing/helpers/motion.ts +21 -0
  288. package/templates-i18n/nextjs/src/features/landing/hooks/index.ts +1 -0
  289. package/templates-i18n/nextjs/src/features/landing/hooks/use-users.ts +16 -0
  290. package/templates-i18n/nextjs/src/features/landing/icons/index.ts +6 -0
  291. package/templates-i18n/nextjs/src/features/landing/icons/nextjs.tsx +68 -0
  292. package/templates-i18n/nextjs/src/features/landing/icons/react-hook-form.tsx +18 -0
  293. package/templates-i18n/nextjs/src/features/landing/icons/react.tsx +20 -0
  294. package/templates-i18n/nextjs/src/features/landing/icons/tailwind.tsx +14 -0
  295. package/templates-i18n/nextjs/src/features/landing/icons/tanstack.tsx +321 -0
  296. package/templates-i18n/nextjs/src/features/landing/icons/typescript.tsx +16 -0
  297. package/templates-i18n/nextjs/src/features/landing/index.ts +1 -0
  298. package/templates-i18n/nextjs/src/features/landing/schemas/index.ts +1 -0
  299. package/templates-i18n/nextjs/src/features/landing/schemas/project.schema.ts +9 -0
  300. package/templates-i18n/nextjs/src/features/landing/stores/counter.store.ts +18 -0
  301. package/templates-i18n/nextjs/src/features/landing/stores/index.ts +1 -0
  302. package/templates-i18n/nextjs/src/features/landing/types/index.ts +1 -0
  303. package/templates-i18n/nextjs/src/features/landing/types/user.types.ts +9 -0
  304. package/templates-i18n/nextjs/src/helpers/format-date.ts +13 -0
  305. package/templates-i18n/nextjs/src/helpers/index.ts +1 -0
  306. package/templates-i18n/nextjs/src/hooks/index.ts +5 -0
  307. package/templates-i18n/nextjs/src/i18n/request.ts +16 -0
  308. package/templates-i18n/nextjs/src/i18n/routing.ts +11 -0
  309. package/templates-i18n/nextjs/src/lib/api.ts +97 -0
  310. package/templates-i18n/nextjs/src/lib/query-client.ts +18 -0
  311. package/templates-i18n/nextjs/src/lib/utils.ts +12 -0
  312. package/templates-i18n/nextjs/src/messages/en.json +55 -0
  313. package/templates-i18n/nextjs/src/messages/tr.json +55 -0
  314. package/templates-i18n/nextjs/src/providers/Providers.tsx +15 -0
  315. package/templates-i18n/nextjs/src/providers/QueryProvider.tsx +19 -0
  316. package/templates-i18n/nextjs/src/providers/ThemeProvider.tsx +9 -0
  317. package/templates-i18n/nextjs/src/providers/index.ts +1 -0
  318. package/templates-i18n/nextjs/src/proxy.ts +16 -0
  319. package/templates-i18n/nextjs/src/schemas/index.ts +5 -0
  320. package/templates-i18n/nextjs/src/stores/index.ts +5 -0
  321. package/templates-i18n/nextjs/src/styles/tailwind.css +122 -0
  322. package/templates-i18n/nextjs/src/types/site-config.types.ts +10 -0
  323. package/templates-i18n/nextjs/tsconfig.json +45 -0
  324. package/templates-i18n/tanstack/.changeset/README.md +8 -0
  325. package/templates-i18n/tanstack/.changeset/config.json +11 -0
  326. package/templates-i18n/tanstack/.env.example +6 -0
  327. package/templates-i18n/tanstack/.github/workflows/ci.yml +41 -0
  328. package/templates-i18n/tanstack/.husky/commit-msg +1 -0
  329. package/templates-i18n/tanstack/.husky/pre-commit +1 -0
  330. package/templates-i18n/tanstack/.husky/pre-push +1 -0
  331. package/templates-i18n/tanstack/.prettierignore +7 -0
  332. package/templates-i18n/tanstack/.prettierrc +41 -0
  333. package/templates-i18n/tanstack/.vscode/extensions.json +7 -0
  334. package/templates-i18n/tanstack/.vscode/settings.json +22 -0
  335. package/templates-i18n/tanstack/LICENSE +21 -0
  336. package/templates-i18n/tanstack/README.md +204 -0
  337. package/templates-i18n/tanstack/commitlint.config.js +6 -0
  338. package/templates-i18n/tanstack/eslint.config.js +29 -0
  339. package/templates-i18n/tanstack/knip.config.js +26 -0
  340. package/templates-i18n/tanstack/messages/en.json +65 -0
  341. package/templates-i18n/tanstack/messages/tr.json +65 -0
  342. package/templates-i18n/tanstack/package.json +132 -0
  343. package/templates-i18n/tanstack/pnpm-lock.yaml +5998 -0
  344. package/templates-i18n/tanstack/pnpm-workspace.yaml +3 -0
  345. package/templates-i18n/tanstack/project.inlang/README.md +157 -0
  346. package/templates-i18n/tanstack/project.inlang/settings.json +9 -0
  347. package/templates-i18n/tanstack/public/favicon.ico +0 -0
  348. package/templates-i18n/tanstack/public/llms.txt +86 -0
  349. package/templates-i18n/tanstack/public/logo.png +0 -0
  350. package/templates-i18n/tanstack/public/logo.webp +0 -0
  351. package/templates-i18n/tanstack/public/og.png +0 -0
  352. package/templates-i18n/tanstack/src/components/shared/DefaultCatchBoundary.tsx +36 -0
  353. package/templates-i18n/tanstack/src/components/shared/LanguageSwitcher.tsx +57 -0
  354. package/templates-i18n/tanstack/src/components/shared/NotFound.tsx +18 -0
  355. package/templates-i18n/tanstack/src/components/shared/Pending.tsx +13 -0
  356. package/templates-i18n/tanstack/src/components/shared/ThemeToggle.tsx +31 -0
  357. package/templates-i18n/tanstack/src/components/ui/avatar.tsx +52 -0
  358. package/templates-i18n/tanstack/src/components/ui/button.tsx +47 -0
  359. package/templates-i18n/tanstack/src/components/ui/dialog.tsx +107 -0
  360. package/templates-i18n/tanstack/src/components/ui/field.tsx +24 -0
  361. package/templates-i18n/tanstack/src/components/ui/index.ts +27 -0
  362. package/templates-i18n/tanstack/src/components/ui/input.tsx +23 -0
  363. package/templates-i18n/tanstack/src/components/ui/label.tsx +17 -0
  364. package/templates-i18n/tanstack/src/components/ui/skeleton.tsx +13 -0
  365. package/templates-i18n/tanstack/src/components/ui/table.tsx +94 -0
  366. package/templates-i18n/tanstack/src/components/ui/tabs.tsx +46 -0
  367. package/templates-i18n/tanstack/src/config/seo.config.ts +52 -0
  368. package/templates-i18n/tanstack/src/config/site.config.ts +15 -0
  369. package/templates-i18n/tanstack/src/constants/index.ts +5 -0
  370. package/templates-i18n/tanstack/src/env.ts +47 -0
  371. package/templates-i18n/tanstack/src/features/landing/api/get-users.api.ts +7 -0
  372. package/templates-i18n/tanstack/src/features/landing/api/index.ts +2 -0
  373. package/templates-i18n/tanstack/src/features/landing/api/query-keys.ts +7 -0
  374. package/templates-i18n/tanstack/src/features/landing/components/CartDemo.tsx +67 -0
  375. package/templates-i18n/tanstack/src/features/landing/components/Features.tsx +79 -0
  376. package/templates-i18n/tanstack/src/features/landing/components/Hero.tsx +68 -0
  377. package/templates-i18n/tanstack/src/features/landing/components/LandingPage.tsx +17 -0
  378. package/templates-i18n/tanstack/src/features/landing/components/ProjectFormDemo.tsx +64 -0
  379. package/templates-i18n/tanstack/src/features/landing/components/Reveal.tsx +83 -0
  380. package/templates-i18n/tanstack/src/features/landing/components/Showcase.tsx +81 -0
  381. package/templates-i18n/tanstack/src/features/landing/components/UsersDemo.tsx +191 -0
  382. package/templates-i18n/tanstack/src/features/landing/data/features.data.tsx +45 -0
  383. package/templates-i18n/tanstack/src/features/landing/data/index.ts +1 -0
  384. package/templates-i18n/tanstack/src/features/landing/helpers/get-initials.ts +15 -0
  385. package/templates-i18n/tanstack/src/features/landing/helpers/index.ts +7 -0
  386. package/templates-i18n/tanstack/src/features/landing/helpers/motion.ts +21 -0
  387. package/templates-i18n/tanstack/src/features/landing/hooks/index.ts +1 -0
  388. package/templates-i18n/tanstack/src/features/landing/hooks/use-users.ts +19 -0
  389. package/templates-i18n/tanstack/src/features/landing/icons/index.ts +5 -0
  390. package/templates-i18n/tanstack/src/features/landing/icons/react-hook-form.tsx +18 -0
  391. package/templates-i18n/tanstack/src/features/landing/icons/react.tsx +20 -0
  392. package/templates-i18n/tanstack/src/features/landing/icons/tailwind.tsx +14 -0
  393. package/templates-i18n/tanstack/src/features/landing/icons/tanstack.tsx +321 -0
  394. package/templates-i18n/tanstack/src/features/landing/icons/typescript.tsx +16 -0
  395. package/templates-i18n/tanstack/src/features/landing/index.ts +1 -0
  396. package/templates-i18n/tanstack/src/features/landing/schemas/index.ts +1 -0
  397. package/templates-i18n/tanstack/src/features/landing/schemas/project.schema.ts +10 -0
  398. package/templates-i18n/tanstack/src/features/landing/stores/counter.store.ts +18 -0
  399. package/templates-i18n/tanstack/src/features/landing/stores/index.ts +1 -0
  400. package/templates-i18n/tanstack/src/features/landing/types/index.ts +1 -0
  401. package/templates-i18n/tanstack/src/features/landing/types/user.types.ts +9 -0
  402. package/templates-i18n/tanstack/src/helpers/format-date.ts +13 -0
  403. package/templates-i18n/tanstack/src/helpers/index.ts +1 -0
  404. package/templates-i18n/tanstack/src/hooks/index.ts +5 -0
  405. package/templates-i18n/tanstack/src/lib/api.ts +97 -0
  406. package/templates-i18n/tanstack/src/lib/query-client.ts +18 -0
  407. package/templates-i18n/tanstack/src/lib/utils.ts +13 -0
  408. package/templates-i18n/tanstack/src/paraglide/README.md +162 -0
  409. package/templates-i18n/tanstack/src/providers/Providers.tsx +12 -0
  410. package/templates-i18n/tanstack/src/providers/ThemeProvider.tsx +98 -0
  411. package/templates-i18n/tanstack/src/providers/devtools.tsx +6 -0
  412. package/templates-i18n/tanstack/src/providers/index.ts +1 -0
  413. package/templates-i18n/tanstack/src/providers/root-provider.ts +9 -0
  414. package/templates-i18n/tanstack/src/routeTree.gen.ts +179 -0
  415. package/templates-i18n/tanstack/src/router.tsx +27 -0
  416. package/templates-i18n/tanstack/src/routes/$lang/index.tsx +13 -0
  417. package/templates-i18n/tanstack/src/routes/$lang.tsx +22 -0
  418. package/templates-i18n/tanstack/src/routes/__root.tsx +80 -0
  419. package/templates-i18n/tanstack/src/routes/index.tsx +13 -0
  420. package/templates-i18n/tanstack/src/routes/robots[.]txt.ts +21 -0
  421. package/templates-i18n/tanstack/src/routes/site[.]webmanifest.ts +32 -0
  422. package/templates-i18n/tanstack/src/routes/sitemap[.]xml.ts +27 -0
  423. package/templates-i18n/tanstack/src/schemas/index.ts +5 -0
  424. package/templates-i18n/tanstack/src/server.ts +10 -0
  425. package/templates-i18n/tanstack/src/start.ts +20 -0
  426. package/templates-i18n/tanstack/src/stores/index.ts +5 -0
  427. package/templates-i18n/tanstack/src/styles/tailwind.css +123 -0
  428. package/templates-i18n/tanstack/src/types/site-config.types.ts +10 -0
  429. package/templates-i18n/tanstack/tsconfig.json +26 -0
  430. package/templates-i18n/tanstack/tsr.config.json +3 -0
  431. package/templates-i18n/tanstack/vite.config.ts +31 -0
  432. package/index.js +0 -3
  433. package/public/start.jpg +0 -0
@@ -0,0 +1,204 @@
1
+ <div align="center">
2
+
3
+ <a href="https://github.com/virastack/start" target="_blank" rel="noreferrer">
4
+ <picture>
5
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/virastack/start/main/assets/logo-dark.png">
6
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/virastack/start/main/assets/logo-light.png">
7
+ <img src="https://raw.githubusercontent.com/virastack/start/main/assets/logo-light.png" alt="ViraStack Start" height="120" style="max-width: 100%;" />
8
+ </picture>
9
+ </a>
10
+
11
+ # ViraStack Start — TanStack Edition
12
+
13
+ _The TanStack Start boilerplate that feels effortless._
14
+
15
+ [![ViraStack TanStack](https://img.shields.io/badge/ViraStack-TanStack-%2300bba7)](https://virastack.com)
16
+ [![npm version](https://img.shields.io/npm/v/virastack)](https://www.npmjs.com/package/virastack)
17
+ [![npm downloads](https://img.shields.io/npm/dt/virastack)](https://www.npmjs.com/package/virastack)
18
+ [![Node](https://img.shields.io/badge/node-%3E%3D20.9-339933?logo=node.js&logoColor=white)](package.json)
19
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
20
+ [![CI](https://github.com/virastack/start/actions/workflows/ci.yml/badge.svg)](https://github.com/virastack/start/actions/workflows/ci.yml)
21
+ [![@virastack](https://img.shields.io/badge/-%40virastack-black?logo=x&logoColor=white)](https://x.com/virastack)
22
+
23
+ </div>
24
+
25
+ ---
26
+
27
+ **Docs:** [See the docs](https://www.virastack.com/)
28
+
29
+ **Contents:** [Why](#why-virastack) · [Features](#features) · [Getting started](#getting-started) · [Environment](#environment-variables) · [Scripts](#scripts) · [Project structure](#project-structure) · [Customization](#customization) · [ViraStack AI](#virastack-ai) · [Deployment](#deployment)
30
+
31
+ Production-grade TanStack Start starter with feature-sliced architecture, strict TypeScript, and a pre-configured [**ViraStack AI**](https://github.com/virastack/ai) layer — so you and your coding agents ship consistent code from day one.
32
+
33
+ ## Why ViraStack
34
+
35
+ - **Opinionated, not opaque** — clear folder rules and placement conventions; nothing important is hidden behind magic
36
+ - **Agent-ready by default** — `AGENTS.md`, Cursor rules, `llms.txt`, and design skills ship with every project
37
+ - **Own your UI** — Base UI primitives in `components/ui` (shadcn-style), fully editable
38
+ - **State triad** — TanStack Query (server), Zustand (client), nuqs (URL) — each with a dedicated job
39
+ - **DX that sticks** — ESLint, Prettier, Knip, Husky, Commitlint, and GitHub Actions CI out of the box
40
+
41
+ ## Features
42
+
43
+ **Included**
44
+
45
+ - ⚡ **TanStack Start** — file-based TanStack Router, type-safe loaders, SSR
46
+ - ⚛️ **React 19** + TypeScript strict (`noUncheckedIndexedAccess`)
47
+ - 🎨 **Tailwind CSS 4** + Base UI primitives
48
+ - 🔄 **TanStack Query** · **Zustand** · **nuqs**
49
+ - 📋 **React Hook Form** + **Zod** — validated forms end to end
50
+ - 🤖 **ViraStack AI** — agent context, scoped rules, design skills
51
+ - ✅ **Quality built in** — ESLint, Prettier, Knip, Husky, Commitlint, CI (typecheck → lint → knip → build)
52
+
53
+ **Optional / bring your own**
54
+
55
+ - Auth, database, i18n, analytics, and monitoring — wire them in when you need them; the architecture is ready
56
+
57
+ ## Getting started
58
+
59
+ **Quick Start & Setup:** Please follow the instructions in the main [ViraStack Start README](https://github.com/virastack/start#quick-start).
60
+
61
+ Once your project is scaffolded, start the development server:
62
+
63
+ ```bash
64
+ pnpm dev
65
+ ```
66
+
67
+ Open [http://localhost:3000](http://localhost:3000). The home route renders `LandingPage` from `src/features/landing` — a full demo of the stack (theme toggle, TanStack Query, Zustand, Zod forms, nuqs). Delete that feature when you are ready to build.
68
+
69
+ ## Environment variables
70
+
71
+ Validated in `src/env.ts`. Scaffolded projects already have `.env.local`.
72
+
73
+ | Variable | Scope | Description |
74
+ | :-------------- | :----- | :------------------------------------------------------------ |
75
+ | `VITE_APP_URL` | Public | Canonical app URL (default `http://localhost:3000`) |
76
+ | `VITE_APP_NAME` | Public | Product name shown in UI/metadata (default `ViraStack Start`) |
77
+
78
+ `NODE_ENV` is set by Vite — do not define it manually. Add new vars in both `.env.example` and `src/env.ts`.
79
+
80
+ ## Scripts
81
+
82
+ | Script | Description |
83
+ | :------------------------------ | :------------------------------------------- |
84
+ | `dev` | Start the Vite + TanStack Start dev server |
85
+ | `build` | Production build |
86
+ | `start` / `preview` | Serve the production build |
87
+ | `lint` / `lint:fix` / `lint:ci` | ESLint (+ format check in CI) |
88
+ | `format` / `format:check` | Prettier |
89
+ | `typecheck` | `tsc --noEmit` |
90
+ | `knip` | Find unused files, exports, and dependencies |
91
+
92
+ CI runs the same gates: typecheck → lint → knip → build (see `.github/workflows/ci.yml`).
93
+
94
+ ## Project structure
95
+
96
+ ```
97
+ src/
98
+ ├── routes/ # File-based TanStack Router routes
99
+ ├── features/
100
+ │ └── landing/ # Demo feature (canonical folder layout)
101
+ │ ├── api/
102
+ │ ├── components/ # Hero, Features, Showcase, demos, LandingPage
103
+ │ ├── constants/
104
+ │ ├── data/
105
+ │ ├── helpers/
106
+ │ ├── hooks/
107
+ │ ├── icons/ # Brand SVGs used only by the landing demo
108
+ │ ├── schemas/
109
+ │ ├── stores/
110
+ │ ├── types/
111
+ │ └── index.ts
112
+ ├── components/
113
+ │ ├── ui/ # Base UI primitives (Button, Dialog, Tabs, …)
114
+ │ ├── layout/ # Header, Footer (reusable chrome)
115
+ │ └── shared/ # Cross-feature components (ThemeToggle, …)
116
+ ├── hooks/ # Shared hooks (promote via Rule of Three)
117
+ ├── stores/
118
+ ├── schemas/
119
+ ├── providers/
120
+ ├── lib/ # api.ts, query-client.ts, utils
121
+ ├── config/
122
+ ├── constants/
123
+ ├── helpers/
124
+ ├── types/
125
+ ├── styles/
126
+ ├── integrations/ # Framework integrations (TanStack Query)
127
+ ├── router.tsx
128
+ ├── start.ts # Global request middleware (security headers)
129
+ └── env.ts
130
+ ```
131
+
132
+ The bundled `landing` feature follows the ViraStack AI feature tree and is meant to be deleted when you start building.
133
+
134
+ **Quick start (strip the demo)**
135
+
136
+ 1. Delete `src/features/landing`
137
+ 2. Replace `src/routes/index.tsx` with your own route
138
+ 3. Keep `components/layout` Header/Footer if you still want site chrome — pass `links` only when you need nav items
139
+
140
+ **Rules of thumb**
141
+
142
+ - Default scope is `features/[feature]/` — promote to global `src/` only when a second feature needs it
143
+ - No cross-feature imports; share via `components/`, `lib/`, `hooks/`, etc.
144
+ - Path aliases are mandatory; parent-relative imports (`../`) are forbidden
145
+
146
+ See [`docs/architecture-guide.md`](docs/architecture-guide.md) for placement rules and import conventions.
147
+
148
+ ## Customization
149
+
150
+ Search the repo for `FIXME:` to find the first things to own:
151
+
152
+ | File | What to change |
153
+ | :---------------------------- | :-------------------------------- |
154
+ | `src/config/site.config.ts` | Site name, description, metadata |
155
+ | `vite.config.ts` | Vite / TanStack Start options |
156
+ | `src/start.ts` | Global request middleware/headers |
157
+ | `src/lib/api.ts` | Auth header / API client wiring |
158
+ | `src/env.ts` + `.env.example` | New environment variables |
159
+ | `public/` | Favicon and static assets |
160
+
161
+ You own every file — trim demos, rename features, keep only what you need.
162
+
163
+ ## ViraStack AI
164
+
165
+ Developed with [**ViraStack AI**](https://github.com/virastack/ai) — an AI-native architecture kit that ships agent context into every project:
166
+
167
+ | File | Purpose |
168
+ | :---------------- | :------------------------------- |
169
+ | `AGENTS.md` | Agent operating guide |
170
+ | `CLAUDE.md` | Claude Code entry point |
171
+ | `.cursor/rules/` | Scoped coding rules |
172
+ | `public/llms.txt` | Machine-readable project summary |
173
+ | `.agents/skills/` | Design-taste skills |
174
+
175
+ Install or refresh rules: `npx @virastack/ai init`
176
+
177
+ ## Deployment
178
+
179
+ Works with [Netlify](https://www.netlify.com/), [Cloudflare](https://developers.cloudflare.com/), Nitro, Railway, or any Node host:
180
+
181
+ 1. Push the repo and import the project
182
+ 2. Set `VITE_APP_URL` and `VITE_APP_NAME` from `.env.example`
183
+ 3. Deploy — `pnpm build` / `pnpm start` work on any Node host that can serve the Vite output
184
+
185
+ ## Philosophy
186
+
187
+ - Minimal surface, strong conventions
188
+ - Agent-first documentation lives next to the code
189
+ - Own your UI and architecture — no locked black boxes
190
+ - Production-ready DX without forcing auth/db opinions until you need them
191
+
192
+ ## Contributing
193
+
194
+ Ideas and bug reports welcome — open an [issue](https://github.com/virastack/start/issues).
195
+
196
+ PRs that improve DX, architecture docs, or the landing showcase are especially appreciated.
197
+
198
+ ---
199
+
200
+ <div align="center">
201
+
202
+ Bootstrapped with [**ViraStack Start**](https://github.com/virastack/start) · Built by <a href="https://omergulcicek.com">Ömer Gülçiçek</a> · <a href="LICENSE">MIT Licensed</a>
203
+
204
+ </div>
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ extends: ["@commitlint/config-conventional"],
3
+ rules: {
4
+ "body-max-line-length": [0, "always"],
5
+ },
6
+ };
@@ -0,0 +1,29 @@
1
+ // @ts-check
2
+
3
+ import { tanstackConfig } from "@tanstack/eslint-config";
4
+
5
+ export default [
6
+ ...tanstackConfig,
7
+ {
8
+ rules: {
9
+ "import/no-cycle": "off",
10
+ "import/order": "off",
11
+ "sort-imports": "off",
12
+ "@typescript-eslint/array-type": "off",
13
+ "@typescript-eslint/require-await": "off",
14
+ "pnpm/json-enforce-catalog": "off",
15
+ },
16
+ },
17
+ {
18
+ ignores: [
19
+ "eslint.config.js",
20
+ "knip.config.js",
21
+ "commitlint.config.js",
22
+ "src/routeTree.gen.ts",
23
+ "src/paraglide/**",
24
+ "dist/**",
25
+ ".tanstack/**",
26
+ ".output/**",
27
+ ],
28
+ },
29
+ ];
@@ -0,0 +1,26 @@
1
+ /** @type {import('knip').KnipConfig} */
2
+ const config = {
3
+ entry: ["src/router.tsx", "src/start.ts", "src/server.ts", "src/routes/**/*.{ts,tsx}"],
4
+ project: ["src/**/*.{ts,tsx,js,jsx}"],
5
+ ignore: [
6
+ "src/components/ui/**",
7
+ // Shared-layer barrels reserved for Rule-of-Three promotions
8
+ "src/hooks/index.ts",
9
+ "src/stores/index.ts",
10
+ "src/schemas/index.ts",
11
+ "src/constants/index.ts",
12
+ // Domain-layer barrels
13
+ "src/features/**/data/index.ts",
14
+ "src/features/**/data/*.data.tsx",
15
+ "src/features/**/schemas/index.ts",
16
+ ],
17
+ ignoreDependencies: ["tailwindcss", "tw-animate-css"],
18
+ rules: {
19
+ dependencies: "error",
20
+ exports: "warn",
21
+ types: "warn",
22
+ files: "warn",
23
+ },
24
+ };
25
+
26
+ module.exports = config;
@@ -0,0 +1,65 @@
1
+ {
2
+ "$schema": "https://inlang.com/schema/inlang-message-format",
3
+ "hero_badge": "Premium UI/UX · Agent-ready · Zero bloat",
4
+ "hero_title_1": "ViraStack",
5
+ "hero_title_2": "Start",
6
+ "hero_desc_1": "Built with ",
7
+ "hero_desc_2": ", ",
8
+ "hero_desc_3": ", and ",
9
+ "hero_desc_4": " - wired together with ",
10
+ "hero_desc_5": ", ",
11
+ "hero_desc_6": ", and ",
12
+ "hero_desc_7": " so you can ship a polished product from day one.",
13
+ "github": "Star on GitHub",
14
+ "theme": "Theme",
15
+ "language": "Language",
16
+ "features_title": "Features",
17
+ "features_subtitle": "Everything you need to build a modern web application, already configured with the best practices.",
18
+ "feature_1_title": "TanStack Start",
19
+ "feature_1_desc": "Full-stack React framework with SSR, streaming, and powerful routing features.",
20
+ "feature_2_title": "Type-Safe Everything",
21
+ "feature_2_desc": "End-to-end type safety from environment variables to API responses with TypeScript and Zod.",
22
+ "feature_3_title": "TanStack Query",
23
+ "feature_3_desc": "Server-state caching and synchronization, plus URL state via nuqs - all wired and ready to use.",
24
+ "feature_4_title": "Tailwind & shadcn/ui",
25
+ "feature_4_desc": "shadcn/ui patterns on Base UI primitives - Tailwind CSS v4, accessible, and fully yours to own.",
26
+ "feature_5_title": "React Hook Form",
27
+ "feature_5_desc": "Performant, flexible, and extensible forms with easy-to-use validation integration.",
28
+ "feature_6_title": "ViraStack AI",
29
+ "feature_6_desc": "Pre-configured agent context - coding rules, design skills, and AGENTS.md so any AI assistant matches this codebase.",
30
+ "showcase_title": "Showcase",
31
+ "showcase_subtitle": "Experience the seamless integration of UI components and state management.",
32
+ "showcase_project_title": "New Project",
33
+ "showcase_project_desc_1": "Validated forms with ",
34
+ "showcase_project_desc_2": " and ",
35
+ "showcase_project_desc_3": ".",
36
+ "showcase_state_title": "Global State",
37
+ "showcase_state_desc_1": "Shared client state managed with ",
38
+ "showcase_state_desc_2": ".",
39
+ "showcase_footer_license": "© {year} {name}. MIT Licensed.",
40
+ "showcase_footer_built": "Last updated on {date}.",
41
+ "users_title": "Recent Users",
42
+ "users_desc_1": "Fetch and cache data with ",
43
+ "users_desc_2": ", synced to the URL via ",
44
+ "users_desc_3": ".",
45
+ "users_search": "Search users...",
46
+ "users_refresh": "Refresh",
47
+ "users_refreshing": "Refreshing...",
48
+ "users_col_user": "User",
49
+ "users_col_city": "City",
50
+ "users_error_status": "Request failed with status {status}.",
51
+ "users_error_network": "Failed to load users. Check your network connection.",
52
+ "users_empty": "No users found.",
53
+ "project_label": "Project Name",
54
+ "project_placeholder": "virastack-app",
55
+ "project_desc": "Use 3–50 characters for the project name.",
56
+ "project_submit": "Create Project",
57
+ "project_submitting": "Creating…",
58
+ "project_success": "Created project: {name}",
59
+ "project_validation_min": "Project name must be at least 3 characters.",
60
+ "project_validation_max": "Project name must be at most 50 characters.",
61
+ "cart_item_name": "Cotton T-Shirt",
62
+ "cart_item_variant": "White / XL",
63
+ "cart_item_total": "Total",
64
+ "cart_clear": "Clear"
65
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "$schema": "https://inlang.com/schema/inlang-message-format",
3
+ "hero_badge": "Premium UI/UX · Yapay zeka uyumlu · Sıfır fazlalık",
4
+ "hero_title_1": "ViraStack",
5
+ "hero_title_2": "Start",
6
+ "hero_desc_1": "",
7
+ "hero_desc_2": ", ",
8
+ "hero_desc_3": " ve ",
9
+ "hero_desc_4": " ile oluşturuldu - ilk günden mükemmel bir ürün çıkarabilmeniz için ",
10
+ "hero_desc_5": ", ",
11
+ "hero_desc_6": " ve ",
12
+ "hero_desc_7": " ile birbirine bağlandı.",
13
+ "github": "GitHub'da Yıldızla",
14
+ "theme": "Tema",
15
+ "language": "Dil",
16
+ "features_title": "Özellikler",
17
+ "features_subtitle": "Modern bir web uygulaması oluşturmak için ihtiyacınız olan her şey, en iyi uygulamalarla önceden yapılandırıldı.",
18
+ "feature_1_title": "TanStack Start",
19
+ "feature_1_desc": "SSR, akış ve güçlü yönlendirme özelliklerine sahip tam yığın React framework'ü.",
20
+ "feature_2_title": "Her Şey Tip Güvenli",
21
+ "feature_2_desc": "TypeScript ve Zod ile ortam değişkenlerinden API yanıtlarına kadar uçtan uca tip güvenliği.",
22
+ "feature_3_title": "TanStack Query",
23
+ "feature_3_desc": "Sunucu durumu önbelleğe alma ve senkronizasyon, artı nuqs aracılığıyla URL durumu - hepsi bağlı ve kullanıma hazır.",
24
+ "feature_4_title": "Tailwind ve shadcn/ui",
25
+ "feature_4_desc": "Base UI temel öğeleri üzerinde shadcn/ui desenleri - Tailwind CSS v4, erişilebilir ve tamamen size ait.",
26
+ "feature_5_title": "React Hook Form",
27
+ "feature_5_desc": "Kullanımı kolay doğrulama entegrasyonuna sahip yüksek performanslı, esnek ve genişletilebilir formlar.",
28
+ "feature_6_title": "ViraStack AI",
29
+ "feature_6_desc": "Önceden yapılandırılmış ajan bağlamı - herhangi bir AI asistanının bu kod tabanıyla eşleşmesi için kodlama kuralları, tasarım becerileri ve AGENTS.md.",
30
+ "showcase_title": "Vitrin",
31
+ "showcase_subtitle": "Kullanıcı arayüzü bileşenleri ile durum yönetiminin kusursuz entegrasyonunu deneyimleyin.",
32
+ "showcase_project_title": "Yeni Proje",
33
+ "showcase_project_desc_1": "",
34
+ "showcase_project_desc_2": " ve ",
35
+ "showcase_project_desc_3": " ile doğrulanmış formlar.",
36
+ "showcase_state_title": "Global Durum",
37
+ "showcase_state_desc_1": "",
38
+ "showcase_state_desc_2": " ile yönetilen paylaşılan istemci durumu.",
39
+ "showcase_footer_license": "© {year} {name}. MIT Lisanslı.",
40
+ "showcase_footer_built": "Son güncelleme tarihi: {date}.",
41
+ "users_title": "Son Kullanıcılar",
42
+ "users_desc_1": "",
43
+ "users_desc_2": " ile verileri çekip önbelleğe alın, ",
44
+ "users_desc_3": " ile URL'e eşitleyin.",
45
+ "users_search": "Kullanıcıları ara...",
46
+ "users_refresh": "Yenile",
47
+ "users_refreshing": "Yenileniyor...",
48
+ "users_col_user": "Kullanıcı",
49
+ "users_col_city": "Şehir",
50
+ "users_error_status": "İstek {status} durumu ile başarısız oldu.",
51
+ "users_error_network": "Kullanıcılar yüklenemedi. Lütfen internet bağlantınızı kontrol edin.",
52
+ "users_empty": "Kullanıcı bulunamadı.",
53
+ "project_label": "Proje Adı",
54
+ "project_placeholder": "virastack-app",
55
+ "project_desc": "Proje adı için 3-50 karakter kullanın.",
56
+ "project_submit": "Proje Oluştur",
57
+ "project_submitting": "Oluşturuluyor…",
58
+ "project_success": "Proje oluşturuldu: {name}",
59
+ "project_validation_min": "Proje adı en az 3 karakter olmalıdır.",
60
+ "project_validation_max": "Proje adı en fazla 50 karakter olabilir.",
61
+ "cart_item_name": "Pamuklu Tişört",
62
+ "cart_item_variant": "Beyaz / XL",
63
+ "cart_item_total": "Toplam",
64
+ "cart_clear": "Temizle"
65
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "name": "virastack",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "description": "Premium TanStack Start + React 19 + Tailwind CSS 4 boilerplate focused on clean architecture, UI/UX, and agent-ready developer experience.",
7
+ "author": {
8
+ "name": "Ömer Gülçiçek (ViraStack)",
9
+ "email": "iletisim@omergulcicek.com",
10
+ "url": "https://omergulcicek.com"
11
+ },
12
+ "license": "MIT",
13
+ "virastack": {
14
+ "template": "tanstack",
15
+ "version": "1.0.0",
16
+ "i18n": true,
17
+ "url": "https://virastack.com"
18
+ },
19
+ "homepage": "https://virastack.com",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/virastack/start.git"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/virastack/start/issues"
26
+ },
27
+ "engines": {
28
+ "node": ">=20.9.0"
29
+ },
30
+ "imports": {
31
+ "#/*": "./src/*"
32
+ },
33
+ "scripts": {
34
+ "dev": "vite dev --port 3000",
35
+ "build": "vite build",
36
+ "start": "vite preview --port 3000",
37
+ "preview": "vite preview --port 3000",
38
+ "generate-routes": "tsr generate",
39
+ "clean": "rimraf dist .tanstack .output",
40
+ "format": "prettier --write .",
41
+ "format:check": "prettier --check .",
42
+ "knip": "knip",
43
+ "lint": "eslint . --cache",
44
+ "lint:fix": "eslint . --fix --cache && prettier --write .",
45
+ "lint:ci": "eslint . --max-warnings=0 && prettier --check .",
46
+ "typecheck": "tsc --noEmit",
47
+ "prepare": "husky",
48
+ "changeset": "changeset",
49
+ "changeset:version": "changeset version",
50
+ "changeset:publish": "changeset publish"
51
+ },
52
+ "lint-staged": {
53
+ "*.{ts,tsx,js,jsx}": [
54
+ "eslint --fix --cache",
55
+ "prettier --write"
56
+ ],
57
+ "*.{css,md,json}": [
58
+ "prettier --write"
59
+ ]
60
+ },
61
+ "keywords": [
62
+ "virastack",
63
+ "tanstack-start",
64
+ "tanstack-router",
65
+ "react-boilerplate",
66
+ "react",
67
+ "tanstack",
68
+ "cursor-rules",
69
+ "clean-architecture",
70
+ "typescript",
71
+ "tanstack-query",
72
+ "tailwindcss",
73
+ "base-ui",
74
+ "dx"
75
+ ],
76
+ "dependencies": {
77
+ "@base-ui/react": "^1.6.0",
78
+ "@fontsource-variable/inter": "^5.3.0",
79
+ "@hookform/resolvers": "^5.4.0",
80
+ "@tailwindcss/vite": "^4.1.18",
81
+ "@tanstack/react-devtools": "^0.10.9",
82
+ "@tanstack/react-query": "^5.101.4",
83
+ "@tanstack/react-query-devtools": "^5.101.4",
84
+ "@tanstack/react-router": "^1.170.18",
85
+ "@tanstack/react-router-devtools": "^1.167.0",
86
+ "@tanstack/react-router-ssr-query": "^1.167.1",
87
+ "@tanstack/react-start": "^1.168.32",
88
+ "class-variance-authority": "^0.7.1",
89
+ "clsx": "^2.1.1",
90
+ "framer-motion": "^12.42.2",
91
+ "lucide-react": "^1.26.0",
92
+ "nuqs": "^2.9.1",
93
+ "react": "^19.2.0",
94
+ "react-dom": "^19.2.0",
95
+ "react-hook-form": "^7.82.0",
96
+ "sonner": "^2.0.7",
97
+ "tailwind-merge": "^3.6.0",
98
+ "tailwindcss": "^4.1.18",
99
+ "usehooks-ts": "^3.1.1",
100
+ "zod": "^4.4.3",
101
+ "zustand": "^5.0.14"
102
+ },
103
+ "devDependencies": {
104
+ "@changesets/cli": "^2.31.1",
105
+ "@commitlint/cli": "^21.2.1",
106
+ "@commitlint/config-conventional": "^21.2.0",
107
+ "@ianvs/prettier-plugin-sort-imports": "^4.7.1",
108
+ "@inlang/paraglide-js": "^2.23.0",
109
+ "@tanstack/eslint-config": "^0.4.0",
110
+ "@tanstack/router-cli": "^1.167.21",
111
+ "@types/node": "^22.10.2",
112
+ "@types/react": "^19.2.0",
113
+ "@types/react-dom": "^19.2.0",
114
+ "@vitejs/plugin-react": "^6.0.1",
115
+ "eslint": "^9.20.0",
116
+ "husky": "^9.1.7",
117
+ "knip": "^6.29.0",
118
+ "lint-staged": "^17.2.0",
119
+ "prettier": "^3.8.1",
120
+ "prettier-plugin-tailwindcss": "^0.8.1",
121
+ "rimraf": "^6.1.3",
122
+ "tw-animate-css": "^1.4.0",
123
+ "typescript": "^6.0.2",
124
+ "vite": "^8.0.0"
125
+ },
126
+ "pnpm": {
127
+ "onlyBuiltDependencies": [
128
+ "esbuild",
129
+ "lightningcss"
130
+ ]
131
+ }
132
+ }