virastack 0.0.1 → 1.0.1

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 (447) 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 +81 -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/.env.local +6 -0
  26. package/templates/nextjs/.eslintcache +1 -0
  27. package/templates/nextjs/.github/workflows/ci.yml +41 -0
  28. package/templates/nextjs/.husky/commit-msg +1 -0
  29. package/templates/nextjs/.husky/pre-commit +1 -0
  30. package/templates/nextjs/.husky/pre-push +1 -0
  31. package/templates/nextjs/.prettierignore +6 -0
  32. package/templates/nextjs/.prettierrc +42 -0
  33. package/templates/nextjs/.vscode/extensions.json +7 -0
  34. package/templates/nextjs/.vscode/settings.json +20 -0
  35. package/templates/nextjs/LICENSE +21 -0
  36. package/templates/nextjs/README.md +202 -0
  37. package/templates/nextjs/_gitignore +45 -0
  38. package/templates/nextjs/commitlint.config.js +6 -0
  39. package/templates/nextjs/eslint.config.mjs +27 -0
  40. package/templates/nextjs/knip.config.js +25 -0
  41. package/templates/nextjs/next-env.d.ts +6 -0
  42. package/templates/nextjs/next.config.ts +39 -0
  43. package/templates/nextjs/package.json +115 -0
  44. package/templates/nextjs/pnpm-lock.yaml +6467 -0
  45. package/templates/nextjs/pnpm-workspace.yaml +3 -0
  46. package/templates/nextjs/postcss.config.mjs +7 -0
  47. package/templates/nextjs/public/favicon.ico +0 -0
  48. package/templates/nextjs/public/llms.txt +96 -0
  49. package/templates/nextjs/public/logo.png +0 -0
  50. package/templates/nextjs/public/logo.webp +0 -0
  51. package/templates/nextjs/public/og.png +0 -0
  52. package/templates/nextjs/src/app/error.tsx +34 -0
  53. package/templates/nextjs/src/app/favicon.ico +0 -0
  54. package/templates/nextjs/src/app/global-error.tsx +32 -0
  55. package/templates/nextjs/src/app/layout.tsx +37 -0
  56. package/templates/nextjs/src/app/loading.tsx +12 -0
  57. package/templates/nextjs/src/app/manifest.ts +22 -0
  58. package/templates/nextjs/src/app/not-found.tsx +18 -0
  59. package/templates/nextjs/src/app/page.tsx +5 -0
  60. package/templates/nextjs/src/app/robots.ts +13 -0
  61. package/templates/nextjs/src/app/sitemap.ts +14 -0
  62. package/templates/nextjs/src/components/shared/ThemeToggle.tsx +30 -0
  63. package/templates/nextjs/src/components/ui/avatar.tsx +54 -0
  64. package/templates/nextjs/src/components/ui/button.tsx +46 -0
  65. package/templates/nextjs/src/components/ui/dialog.tsx +107 -0
  66. package/templates/nextjs/src/components/ui/field.tsx +24 -0
  67. package/templates/nextjs/src/components/ui/index.ts +27 -0
  68. package/templates/nextjs/src/components/ui/input.tsx +23 -0
  69. package/templates/nextjs/src/components/ui/label.tsx +17 -0
  70. package/templates/nextjs/src/components/ui/skeleton.tsx +13 -0
  71. package/templates/nextjs/src/components/ui/table.tsx +94 -0
  72. package/templates/nextjs/src/components/ui/tabs.tsx +46 -0
  73. package/templates/nextjs/src/config/seo.config.ts +37 -0
  74. package/templates/nextjs/src/config/site.config.ts +15 -0
  75. package/templates/nextjs/src/constants/index.ts +5 -0
  76. package/templates/nextjs/src/env.ts +41 -0
  77. package/templates/nextjs/src/features/landing/api/get-users.api.ts +7 -0
  78. package/templates/nextjs/src/features/landing/api/index.ts +2 -0
  79. package/templates/nextjs/src/features/landing/api/query-keys.ts +7 -0
  80. package/templates/nextjs/src/features/landing/components/CartDemo.tsx +66 -0
  81. package/templates/nextjs/src/features/landing/components/Features.tsx +39 -0
  82. package/templates/nextjs/src/features/landing/components/Hero.tsx +65 -0
  83. package/templates/nextjs/src/features/landing/components/LandingPage.tsx +17 -0
  84. package/templates/nextjs/src/features/landing/components/ProjectFormDemo.tsx +62 -0
  85. package/templates/nextjs/src/features/landing/components/Reveal.tsx +83 -0
  86. package/templates/nextjs/src/features/landing/components/Showcase.tsx +66 -0
  87. package/templates/nextjs/src/features/landing/components/UsersDemo.tsx +188 -0
  88. package/templates/nextjs/src/features/landing/data/features.data.tsx +47 -0
  89. package/templates/nextjs/src/features/landing/data/index.ts +1 -0
  90. package/templates/nextjs/src/features/landing/helpers/get-initials.ts +15 -0
  91. package/templates/nextjs/src/features/landing/helpers/index.ts +7 -0
  92. package/templates/nextjs/src/features/landing/helpers/motion.ts +21 -0
  93. package/templates/nextjs/src/features/landing/hooks/index.ts +1 -0
  94. package/templates/nextjs/src/features/landing/hooks/use-users.ts +16 -0
  95. package/templates/nextjs/src/features/landing/icons/index.ts +6 -0
  96. package/templates/nextjs/src/features/landing/icons/nextjs.tsx +68 -0
  97. package/templates/nextjs/src/features/landing/icons/react-hook-form.tsx +18 -0
  98. package/templates/nextjs/src/features/landing/icons/react.tsx +20 -0
  99. package/templates/nextjs/src/features/landing/icons/tailwind.tsx +14 -0
  100. package/templates/nextjs/src/features/landing/icons/tanstack.tsx +321 -0
  101. package/templates/nextjs/src/features/landing/icons/typescript.tsx +16 -0
  102. package/templates/nextjs/src/features/landing/index.ts +1 -0
  103. package/templates/nextjs/src/features/landing/schemas/index.ts +1 -0
  104. package/templates/nextjs/src/features/landing/schemas/project.schema.ts +7 -0
  105. package/templates/nextjs/src/features/landing/stores/counter.store.ts +18 -0
  106. package/templates/nextjs/src/features/landing/stores/index.ts +1 -0
  107. package/templates/nextjs/src/features/landing/types/index.ts +1 -0
  108. package/templates/nextjs/src/features/landing/types/user.types.ts +9 -0
  109. package/templates/nextjs/src/helpers/format-date.ts +13 -0
  110. package/templates/nextjs/src/helpers/index.ts +1 -0
  111. package/templates/nextjs/src/hooks/index.ts +5 -0
  112. package/templates/nextjs/src/lib/api.ts +97 -0
  113. package/templates/nextjs/src/lib/query-client.ts +18 -0
  114. package/templates/nextjs/src/lib/utils.ts +12 -0
  115. package/templates/nextjs/src/providers/Providers.tsx +15 -0
  116. package/templates/nextjs/src/providers/QueryProvider.tsx +19 -0
  117. package/templates/nextjs/src/providers/ThemeProvider.tsx +9 -0
  118. package/templates/nextjs/src/providers/index.ts +1 -0
  119. package/templates/nextjs/src/proxy.ts +6 -0
  120. package/templates/nextjs/src/schemas/index.ts +5 -0
  121. package/templates/nextjs/src/stores/index.ts +5 -0
  122. package/templates/nextjs/src/styles/tailwind.css +122 -0
  123. package/templates/nextjs/src/types/site-config.types.ts +10 -0
  124. package/templates/nextjs/tsconfig.json +45 -0
  125. package/templates/nextjs/tsconfig.tsbuildinfo +1 -0
  126. package/templates/tanstack/.changeset/README.md +8 -0
  127. package/templates/tanstack/.changeset/config.json +11 -0
  128. package/templates/tanstack/.env.example +6 -0
  129. package/templates/tanstack/.env.local +6 -0
  130. package/templates/tanstack/.eslintcache +1 -0
  131. package/templates/tanstack/.github/workflows/ci.yml +41 -0
  132. package/templates/tanstack/.husky/commit-msg +1 -0
  133. package/templates/tanstack/.husky/pre-commit +1 -0
  134. package/templates/tanstack/.husky/pre-push +1 -0
  135. package/templates/tanstack/.prettierignore +7 -0
  136. package/templates/tanstack/.prettierrc +41 -0
  137. package/templates/tanstack/.vscode/extensions.json +7 -0
  138. package/templates/tanstack/.vscode/settings.json +22 -0
  139. package/templates/tanstack/LICENSE +21 -0
  140. package/templates/tanstack/README.md +204 -0
  141. package/templates/tanstack/_gitignore +52 -0
  142. package/templates/tanstack/commitlint.config.js +6 -0
  143. package/templates/tanstack/eslint.config.js +28 -0
  144. package/templates/tanstack/knip.config.js +22 -0
  145. package/templates/tanstack/package.json +130 -0
  146. package/templates/tanstack/pnpm-lock.yaml +5835 -0
  147. package/templates/tanstack/pnpm-workspace.yaml +3 -0
  148. package/templates/tanstack/public/favicon.ico +0 -0
  149. package/templates/tanstack/public/llms.txt +86 -0
  150. package/templates/tanstack/public/logo.png +0 -0
  151. package/templates/tanstack/public/logo.webp +0 -0
  152. package/templates/tanstack/public/og.png +0 -0
  153. package/templates/tanstack/src/components/shared/DefaultCatchBoundary.tsx +36 -0
  154. package/templates/tanstack/src/components/shared/NotFound.tsx +18 -0
  155. package/templates/tanstack/src/components/shared/Pending.tsx +13 -0
  156. package/templates/tanstack/src/components/shared/ThemeToggle.tsx +31 -0
  157. package/templates/tanstack/src/components/ui/avatar.tsx +52 -0
  158. package/templates/tanstack/src/components/ui/button.tsx +47 -0
  159. package/templates/tanstack/src/components/ui/dialog.tsx +107 -0
  160. package/templates/tanstack/src/components/ui/field.tsx +24 -0
  161. package/templates/tanstack/src/components/ui/index.ts +27 -0
  162. package/templates/tanstack/src/components/ui/input.tsx +23 -0
  163. package/templates/tanstack/src/components/ui/label.tsx +17 -0
  164. package/templates/tanstack/src/components/ui/skeleton.tsx +13 -0
  165. package/templates/tanstack/src/components/ui/table.tsx +94 -0
  166. package/templates/tanstack/src/components/ui/tabs.tsx +46 -0
  167. package/templates/tanstack/src/config/seo.config.ts +52 -0
  168. package/templates/tanstack/src/config/site.config.ts +15 -0
  169. package/templates/tanstack/src/constants/index.ts +5 -0
  170. package/templates/tanstack/src/env.ts +47 -0
  171. package/templates/tanstack/src/features/landing/api/get-users.api.ts +7 -0
  172. package/templates/tanstack/src/features/landing/api/index.ts +2 -0
  173. package/templates/tanstack/src/features/landing/api/query-keys.ts +7 -0
  174. package/templates/tanstack/src/features/landing/components/CartDemo.tsx +66 -0
  175. package/templates/tanstack/src/features/landing/components/Features.tsx +39 -0
  176. package/templates/tanstack/src/features/landing/components/Hero.tsx +63 -0
  177. package/templates/tanstack/src/features/landing/components/LandingPage.tsx +17 -0
  178. package/templates/tanstack/src/features/landing/components/ProjectFormDemo.tsx +63 -0
  179. package/templates/tanstack/src/features/landing/components/Reveal.tsx +83 -0
  180. package/templates/tanstack/src/features/landing/components/Showcase.tsx +66 -0
  181. package/templates/tanstack/src/features/landing/components/UsersDemo.tsx +191 -0
  182. package/templates/tanstack/src/features/landing/data/features.data.tsx +45 -0
  183. package/templates/tanstack/src/features/landing/data/index.ts +1 -0
  184. package/templates/tanstack/src/features/landing/helpers/get-initials.ts +15 -0
  185. package/templates/tanstack/src/features/landing/helpers/index.ts +7 -0
  186. package/templates/tanstack/src/features/landing/helpers/motion.ts +21 -0
  187. package/templates/tanstack/src/features/landing/hooks/index.ts +1 -0
  188. package/templates/tanstack/src/features/landing/hooks/use-users.ts +19 -0
  189. package/templates/tanstack/src/features/landing/icons/index.ts +5 -0
  190. package/templates/tanstack/src/features/landing/icons/react-hook-form.tsx +18 -0
  191. package/templates/tanstack/src/features/landing/icons/react.tsx +20 -0
  192. package/templates/tanstack/src/features/landing/icons/tailwind.tsx +14 -0
  193. package/templates/tanstack/src/features/landing/icons/tanstack.tsx +321 -0
  194. package/templates/tanstack/src/features/landing/icons/typescript.tsx +16 -0
  195. package/templates/tanstack/src/features/landing/index.ts +1 -0
  196. package/templates/tanstack/src/features/landing/schemas/index.ts +1 -0
  197. package/templates/tanstack/src/features/landing/schemas/project.schema.ts +7 -0
  198. package/templates/tanstack/src/features/landing/stores/counter.store.ts +18 -0
  199. package/templates/tanstack/src/features/landing/stores/index.ts +1 -0
  200. package/templates/tanstack/src/features/landing/types/index.ts +1 -0
  201. package/templates/tanstack/src/features/landing/types/user.types.ts +9 -0
  202. package/templates/tanstack/src/helpers/format-date.ts +13 -0
  203. package/templates/tanstack/src/helpers/index.ts +1 -0
  204. package/templates/tanstack/src/hooks/index.ts +5 -0
  205. package/templates/tanstack/src/lib/api.ts +97 -0
  206. package/templates/tanstack/src/lib/query-client.ts +18 -0
  207. package/templates/tanstack/src/lib/utils.ts +13 -0
  208. package/templates/tanstack/src/providers/Providers.tsx +12 -0
  209. package/templates/tanstack/src/providers/ThemeProvider.tsx +98 -0
  210. package/templates/tanstack/src/providers/devtools.tsx +6 -0
  211. package/templates/tanstack/src/providers/index.ts +1 -0
  212. package/templates/tanstack/src/providers/root-provider.ts +9 -0
  213. package/templates/tanstack/src/routeTree.gen.ts +123 -0
  214. package/templates/tanstack/src/router.tsx +27 -0
  215. package/templates/tanstack/src/routes/__root.tsx +78 -0
  216. package/templates/tanstack/src/routes/index.tsx +13 -0
  217. package/templates/tanstack/src/routes/robots[.]txt.ts +21 -0
  218. package/templates/tanstack/src/routes/site[.]webmanifest.ts +32 -0
  219. package/templates/tanstack/src/routes/sitemap[.]xml.ts +27 -0
  220. package/templates/tanstack/src/schemas/index.ts +5 -0
  221. package/templates/tanstack/src/start.ts +20 -0
  222. package/templates/tanstack/src/stores/index.ts +5 -0
  223. package/templates/tanstack/src/styles/tailwind.css +123 -0
  224. package/templates/tanstack/src/types/site-config.types.ts +10 -0
  225. package/templates/tanstack/tsconfig.json +25 -0
  226. package/templates/tanstack/tsr.config.json +3 -0
  227. package/templates/tanstack/vite.config.ts +12 -0
  228. package/templates-i18n/nextjs/.changeset/README.md +8 -0
  229. package/templates-i18n/nextjs/.changeset/config.json +11 -0
  230. package/templates-i18n/nextjs/.env.example +6 -0
  231. package/templates-i18n/nextjs/.eslintcache +1 -0
  232. package/templates-i18n/nextjs/.github/workflows/ci.yml +41 -0
  233. package/templates-i18n/nextjs/.husky/commit-msg +1 -0
  234. package/templates-i18n/nextjs/.husky/pre-commit +1 -0
  235. package/templates-i18n/nextjs/.husky/pre-push +1 -0
  236. package/templates-i18n/nextjs/.prettierignore +6 -0
  237. package/templates-i18n/nextjs/.prettierrc +42 -0
  238. package/templates-i18n/nextjs/.vscode/extensions.json +7 -0
  239. package/templates-i18n/nextjs/.vscode/settings.json +20 -0
  240. package/templates-i18n/nextjs/LICENSE +21 -0
  241. package/templates-i18n/nextjs/README.md +202 -0
  242. package/templates-i18n/nextjs/_gitignore +45 -0
  243. package/templates-i18n/nextjs/commitlint.config.js +6 -0
  244. package/templates-i18n/nextjs/eslint.config.mjs +27 -0
  245. package/templates-i18n/nextjs/knip.config.js +29 -0
  246. package/templates-i18n/nextjs/next-env.d.ts +6 -0
  247. package/templates-i18n/nextjs/next.config.ts +42 -0
  248. package/templates-i18n/nextjs/package.json +117 -0
  249. package/templates-i18n/nextjs/pnpm-lock.yaml +6854 -0
  250. package/templates-i18n/nextjs/pnpm-workspace.yaml +3 -0
  251. package/templates-i18n/nextjs/postcss.config.mjs +7 -0
  252. package/templates-i18n/nextjs/public/favicon.ico +0 -0
  253. package/templates-i18n/nextjs/public/llms.txt +96 -0
  254. package/templates-i18n/nextjs/public/logo.png +0 -0
  255. package/templates-i18n/nextjs/public/logo.webp +0 -0
  256. package/templates-i18n/nextjs/public/og.png +0 -0
  257. package/templates-i18n/nextjs/src/app/[locale]/error.tsx +34 -0
  258. package/templates-i18n/nextjs/src/app/[locale]/layout.tsx +60 -0
  259. package/templates-i18n/nextjs/src/app/[locale]/loading.tsx +12 -0
  260. package/templates-i18n/nextjs/src/app/[locale]/not-found.tsx +18 -0
  261. package/templates-i18n/nextjs/src/app/[locale]/page.tsx +10 -0
  262. package/templates-i18n/nextjs/src/app/favicon.ico +0 -0
  263. package/templates-i18n/nextjs/src/app/global-error.tsx +32 -0
  264. package/templates-i18n/nextjs/src/app/manifest.ts +22 -0
  265. package/templates-i18n/nextjs/src/app/robots.ts +13 -0
  266. package/templates-i18n/nextjs/src/app/sitemap.ts +14 -0
  267. package/templates-i18n/nextjs/src/components/shared/LanguageSwitcher.tsx +48 -0
  268. package/templates-i18n/nextjs/src/components/shared/ThemeToggle.tsx +30 -0
  269. package/templates-i18n/nextjs/src/components/ui/avatar.tsx +54 -0
  270. package/templates-i18n/nextjs/src/components/ui/button.tsx +46 -0
  271. package/templates-i18n/nextjs/src/components/ui/dialog.tsx +107 -0
  272. package/templates-i18n/nextjs/src/components/ui/field.tsx +24 -0
  273. package/templates-i18n/nextjs/src/components/ui/index.ts +27 -0
  274. package/templates-i18n/nextjs/src/components/ui/input.tsx +23 -0
  275. package/templates-i18n/nextjs/src/components/ui/label.tsx +17 -0
  276. package/templates-i18n/nextjs/src/components/ui/skeleton.tsx +13 -0
  277. package/templates-i18n/nextjs/src/components/ui/table.tsx +94 -0
  278. package/templates-i18n/nextjs/src/components/ui/tabs.tsx +46 -0
  279. package/templates-i18n/nextjs/src/config/seo.config.ts +37 -0
  280. package/templates-i18n/nextjs/src/config/site.config.ts +15 -0
  281. package/templates-i18n/nextjs/src/constants/index.ts +5 -0
  282. package/templates-i18n/nextjs/src/env.ts +41 -0
  283. package/templates-i18n/nextjs/src/features/landing/api/get-users.api.ts +7 -0
  284. package/templates-i18n/nextjs/src/features/landing/api/index.ts +2 -0
  285. package/templates-i18n/nextjs/src/features/landing/api/query-keys.ts +7 -0
  286. package/templates-i18n/nextjs/src/features/landing/components/CartDemo.tsx +68 -0
  287. package/templates-i18n/nextjs/src/features/landing/components/Features.tsx +84 -0
  288. package/templates-i18n/nextjs/src/features/landing/components/Hero.tsx +76 -0
  289. package/templates-i18n/nextjs/src/features/landing/components/LandingPage.tsx +17 -0
  290. package/templates-i18n/nextjs/src/features/landing/components/ProjectFormDemo.tsx +64 -0
  291. package/templates-i18n/nextjs/src/features/landing/components/Reveal.tsx +83 -0
  292. package/templates-i18n/nextjs/src/features/landing/components/Showcase.tsx +83 -0
  293. package/templates-i18n/nextjs/src/features/landing/components/UsersDemo.tsx +191 -0
  294. package/templates-i18n/nextjs/src/features/landing/data/features.data.tsx +47 -0
  295. package/templates-i18n/nextjs/src/features/landing/data/index.ts +1 -0
  296. package/templates-i18n/nextjs/src/features/landing/helpers/get-initials.ts +15 -0
  297. package/templates-i18n/nextjs/src/features/landing/helpers/index.ts +7 -0
  298. package/templates-i18n/nextjs/src/features/landing/helpers/motion.ts +21 -0
  299. package/templates-i18n/nextjs/src/features/landing/hooks/index.ts +1 -0
  300. package/templates-i18n/nextjs/src/features/landing/hooks/use-users.ts +16 -0
  301. package/templates-i18n/nextjs/src/features/landing/icons/index.ts +6 -0
  302. package/templates-i18n/nextjs/src/features/landing/icons/nextjs.tsx +68 -0
  303. package/templates-i18n/nextjs/src/features/landing/icons/react-hook-form.tsx +18 -0
  304. package/templates-i18n/nextjs/src/features/landing/icons/react.tsx +20 -0
  305. package/templates-i18n/nextjs/src/features/landing/icons/tailwind.tsx +14 -0
  306. package/templates-i18n/nextjs/src/features/landing/icons/tanstack.tsx +321 -0
  307. package/templates-i18n/nextjs/src/features/landing/icons/typescript.tsx +16 -0
  308. package/templates-i18n/nextjs/src/features/landing/index.ts +1 -0
  309. package/templates-i18n/nextjs/src/features/landing/schemas/index.ts +1 -0
  310. package/templates-i18n/nextjs/src/features/landing/schemas/project.schema.ts +9 -0
  311. package/templates-i18n/nextjs/src/features/landing/stores/counter.store.ts +18 -0
  312. package/templates-i18n/nextjs/src/features/landing/stores/index.ts +1 -0
  313. package/templates-i18n/nextjs/src/features/landing/types/index.ts +1 -0
  314. package/templates-i18n/nextjs/src/features/landing/types/user.types.ts +9 -0
  315. package/templates-i18n/nextjs/src/helpers/format-date.ts +13 -0
  316. package/templates-i18n/nextjs/src/helpers/index.ts +1 -0
  317. package/templates-i18n/nextjs/src/hooks/index.ts +5 -0
  318. package/templates-i18n/nextjs/src/i18n/request.ts +16 -0
  319. package/templates-i18n/nextjs/src/i18n/routing.ts +11 -0
  320. package/templates-i18n/nextjs/src/lib/api.ts +97 -0
  321. package/templates-i18n/nextjs/src/lib/query-client.ts +18 -0
  322. package/templates-i18n/nextjs/src/lib/utils.ts +12 -0
  323. package/templates-i18n/nextjs/src/messages/en.json +55 -0
  324. package/templates-i18n/nextjs/src/messages/tr.json +55 -0
  325. package/templates-i18n/nextjs/src/providers/Providers.tsx +15 -0
  326. package/templates-i18n/nextjs/src/providers/QueryProvider.tsx +19 -0
  327. package/templates-i18n/nextjs/src/providers/ThemeProvider.tsx +9 -0
  328. package/templates-i18n/nextjs/src/providers/index.ts +1 -0
  329. package/templates-i18n/nextjs/src/proxy.ts +16 -0
  330. package/templates-i18n/nextjs/src/schemas/index.ts +5 -0
  331. package/templates-i18n/nextjs/src/stores/index.ts +5 -0
  332. package/templates-i18n/nextjs/src/styles/tailwind.css +122 -0
  333. package/templates-i18n/nextjs/src/types/site-config.types.ts +10 -0
  334. package/templates-i18n/nextjs/tsconfig.json +45 -0
  335. package/templates-i18n/nextjs/tsconfig.tsbuildinfo +1 -0
  336. package/templates-i18n/tanstack/.changeset/README.md +8 -0
  337. package/templates-i18n/tanstack/.changeset/config.json +11 -0
  338. package/templates-i18n/tanstack/.env.example +6 -0
  339. package/templates-i18n/tanstack/.eslintcache +1 -0
  340. package/templates-i18n/tanstack/.github/workflows/ci.yml +41 -0
  341. package/templates-i18n/tanstack/.husky/commit-msg +1 -0
  342. package/templates-i18n/tanstack/.husky/pre-commit +1 -0
  343. package/templates-i18n/tanstack/.husky/pre-push +1 -0
  344. package/templates-i18n/tanstack/.prettierignore +7 -0
  345. package/templates-i18n/tanstack/.prettierrc +41 -0
  346. package/templates-i18n/tanstack/.vscode/extensions.json +7 -0
  347. package/templates-i18n/tanstack/.vscode/settings.json +22 -0
  348. package/templates-i18n/tanstack/LICENSE +21 -0
  349. package/templates-i18n/tanstack/README.md +204 -0
  350. package/templates-i18n/tanstack/_gitignore +52 -0
  351. package/templates-i18n/tanstack/commitlint.config.js +6 -0
  352. package/templates-i18n/tanstack/eslint.config.js +29 -0
  353. package/templates-i18n/tanstack/knip.config.js +26 -0
  354. package/templates-i18n/tanstack/messages/en.json +65 -0
  355. package/templates-i18n/tanstack/messages/tr.json +65 -0
  356. package/templates-i18n/tanstack/package.json +132 -0
  357. package/templates-i18n/tanstack/pnpm-lock.yaml +5998 -0
  358. package/templates-i18n/tanstack/pnpm-workspace.yaml +3 -0
  359. package/templates-i18n/tanstack/project.inlang/README.md +157 -0
  360. package/templates-i18n/tanstack/project.inlang/settings.json +9 -0
  361. package/templates-i18n/tanstack/public/favicon.ico +0 -0
  362. package/templates-i18n/tanstack/public/llms.txt +86 -0
  363. package/templates-i18n/tanstack/public/logo.png +0 -0
  364. package/templates-i18n/tanstack/public/logo.webp +0 -0
  365. package/templates-i18n/tanstack/public/og.png +0 -0
  366. package/templates-i18n/tanstack/src/components/shared/DefaultCatchBoundary.tsx +36 -0
  367. package/templates-i18n/tanstack/src/components/shared/LanguageSwitcher.tsx +57 -0
  368. package/templates-i18n/tanstack/src/components/shared/NotFound.tsx +18 -0
  369. package/templates-i18n/tanstack/src/components/shared/Pending.tsx +13 -0
  370. package/templates-i18n/tanstack/src/components/shared/ThemeToggle.tsx +31 -0
  371. package/templates-i18n/tanstack/src/components/ui/avatar.tsx +52 -0
  372. package/templates-i18n/tanstack/src/components/ui/button.tsx +47 -0
  373. package/templates-i18n/tanstack/src/components/ui/dialog.tsx +107 -0
  374. package/templates-i18n/tanstack/src/components/ui/field.tsx +24 -0
  375. package/templates-i18n/tanstack/src/components/ui/index.ts +27 -0
  376. package/templates-i18n/tanstack/src/components/ui/input.tsx +23 -0
  377. package/templates-i18n/tanstack/src/components/ui/label.tsx +17 -0
  378. package/templates-i18n/tanstack/src/components/ui/skeleton.tsx +13 -0
  379. package/templates-i18n/tanstack/src/components/ui/table.tsx +94 -0
  380. package/templates-i18n/tanstack/src/components/ui/tabs.tsx +46 -0
  381. package/templates-i18n/tanstack/src/config/seo.config.ts +52 -0
  382. package/templates-i18n/tanstack/src/config/site.config.ts +15 -0
  383. package/templates-i18n/tanstack/src/constants/index.ts +5 -0
  384. package/templates-i18n/tanstack/src/env.ts +47 -0
  385. package/templates-i18n/tanstack/src/features/landing/api/get-users.api.ts +7 -0
  386. package/templates-i18n/tanstack/src/features/landing/api/index.ts +2 -0
  387. package/templates-i18n/tanstack/src/features/landing/api/query-keys.ts +7 -0
  388. package/templates-i18n/tanstack/src/features/landing/components/CartDemo.tsx +67 -0
  389. package/templates-i18n/tanstack/src/features/landing/components/Features.tsx +79 -0
  390. package/templates-i18n/tanstack/src/features/landing/components/Hero.tsx +68 -0
  391. package/templates-i18n/tanstack/src/features/landing/components/LandingPage.tsx +17 -0
  392. package/templates-i18n/tanstack/src/features/landing/components/ProjectFormDemo.tsx +64 -0
  393. package/templates-i18n/tanstack/src/features/landing/components/Reveal.tsx +83 -0
  394. package/templates-i18n/tanstack/src/features/landing/components/Showcase.tsx +81 -0
  395. package/templates-i18n/tanstack/src/features/landing/components/UsersDemo.tsx +191 -0
  396. package/templates-i18n/tanstack/src/features/landing/data/features.data.tsx +45 -0
  397. package/templates-i18n/tanstack/src/features/landing/data/index.ts +1 -0
  398. package/templates-i18n/tanstack/src/features/landing/helpers/get-initials.ts +15 -0
  399. package/templates-i18n/tanstack/src/features/landing/helpers/index.ts +7 -0
  400. package/templates-i18n/tanstack/src/features/landing/helpers/motion.ts +21 -0
  401. package/templates-i18n/tanstack/src/features/landing/hooks/index.ts +1 -0
  402. package/templates-i18n/tanstack/src/features/landing/hooks/use-users.ts +19 -0
  403. package/templates-i18n/tanstack/src/features/landing/icons/index.ts +5 -0
  404. package/templates-i18n/tanstack/src/features/landing/icons/react-hook-form.tsx +18 -0
  405. package/templates-i18n/tanstack/src/features/landing/icons/react.tsx +20 -0
  406. package/templates-i18n/tanstack/src/features/landing/icons/tailwind.tsx +14 -0
  407. package/templates-i18n/tanstack/src/features/landing/icons/tanstack.tsx +321 -0
  408. package/templates-i18n/tanstack/src/features/landing/icons/typescript.tsx +16 -0
  409. package/templates-i18n/tanstack/src/features/landing/index.ts +1 -0
  410. package/templates-i18n/tanstack/src/features/landing/schemas/index.ts +1 -0
  411. package/templates-i18n/tanstack/src/features/landing/schemas/project.schema.ts +10 -0
  412. package/templates-i18n/tanstack/src/features/landing/stores/counter.store.ts +18 -0
  413. package/templates-i18n/tanstack/src/features/landing/stores/index.ts +1 -0
  414. package/templates-i18n/tanstack/src/features/landing/types/index.ts +1 -0
  415. package/templates-i18n/tanstack/src/features/landing/types/user.types.ts +9 -0
  416. package/templates-i18n/tanstack/src/helpers/format-date.ts +13 -0
  417. package/templates-i18n/tanstack/src/helpers/index.ts +1 -0
  418. package/templates-i18n/tanstack/src/hooks/index.ts +5 -0
  419. package/templates-i18n/tanstack/src/lib/api.ts +97 -0
  420. package/templates-i18n/tanstack/src/lib/query-client.ts +18 -0
  421. package/templates-i18n/tanstack/src/lib/utils.ts +13 -0
  422. package/templates-i18n/tanstack/src/paraglide/README.md +162 -0
  423. package/templates-i18n/tanstack/src/providers/Providers.tsx +12 -0
  424. package/templates-i18n/tanstack/src/providers/ThemeProvider.tsx +98 -0
  425. package/templates-i18n/tanstack/src/providers/devtools.tsx +6 -0
  426. package/templates-i18n/tanstack/src/providers/index.ts +1 -0
  427. package/templates-i18n/tanstack/src/providers/root-provider.ts +9 -0
  428. package/templates-i18n/tanstack/src/routeTree.gen.ts +179 -0
  429. package/templates-i18n/tanstack/src/router.tsx +27 -0
  430. package/templates-i18n/tanstack/src/routes/$lang/index.tsx +13 -0
  431. package/templates-i18n/tanstack/src/routes/$lang.tsx +22 -0
  432. package/templates-i18n/tanstack/src/routes/__root.tsx +80 -0
  433. package/templates-i18n/tanstack/src/routes/index.tsx +13 -0
  434. package/templates-i18n/tanstack/src/routes/robots[.]txt.ts +21 -0
  435. package/templates-i18n/tanstack/src/routes/site[.]webmanifest.ts +32 -0
  436. package/templates-i18n/tanstack/src/routes/sitemap[.]xml.ts +27 -0
  437. package/templates-i18n/tanstack/src/schemas/index.ts +5 -0
  438. package/templates-i18n/tanstack/src/server.ts +10 -0
  439. package/templates-i18n/tanstack/src/start.ts +20 -0
  440. package/templates-i18n/tanstack/src/stores/index.ts +5 -0
  441. package/templates-i18n/tanstack/src/styles/tailwind.css +123 -0
  442. package/templates-i18n/tanstack/src/types/site-config.types.ts +10 -0
  443. package/templates-i18n/tanstack/tsconfig.json +26 -0
  444. package/templates-i18n/tanstack/tsr.config.json +3 -0
  445. package/templates-i18n/tanstack/vite.config.ts +31 -0
  446. package/index.js +0 -3
  447. package/public/start.jpg +0 -0
@@ -0,0 +1,8 @@
1
+ # Changesets
2
+
3
+ Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4
+ with multi-package repos, or single-package repos to help you version and publish your code. You can
5
+ find the full documentation for it [in our repository](https://github.com/changesets/changesets).
6
+
7
+ We have a quick list of common questions to get you started engaging with this project in
8
+ [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md).
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://unpkg.com/@changesets/config@3.1.4/schema.json",
3
+ "changelog": "@changesets/cli/changelog",
4
+ "commit": false,
5
+ "fixed": [],
6
+ "linked": [],
7
+ "access": "restricted",
8
+ "baseBranch": "main",
9
+ "updateInternalDependencies": "patch",
10
+ "ignore": []
11
+ }
@@ -0,0 +1,6 @@
1
+ # Public (exposed to the browser) — must be prefixed with VITE_
2
+ VITE_APP_URL="http://localhost:3000"
3
+ VITE_APP_NAME="ViraStack Start - TanStack Edition"
4
+
5
+ # Server-only (never exposed to the browser)
6
+ # NODE_ENV is set automatically by Vite — no need to define it here.
@@ -0,0 +1 @@
1
+ [{"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/DefaultCatchBoundary.tsx":"1","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/LanguageSwitcher.tsx":"2","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/NotFound.tsx":"3","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/Pending.tsx":"4","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/ThemeToggle.tsx":"5","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/avatar.tsx":"6","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/button.tsx":"7","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/dialog.tsx":"8","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/field.tsx":"9","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/index.ts":"10","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/input.tsx":"11","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/label.tsx":"12","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/skeleton.tsx":"13","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/table.tsx":"14","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/tabs.tsx":"15","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/seo.config.ts":"16","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/site.config.ts":"17","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/constants/index.ts":"18","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/env.ts":"19","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/get-users.api.ts":"20","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/index.ts":"21","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/query-keys.ts":"22","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/CartDemo.tsx":"23","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Features.tsx":"24","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Hero.tsx":"25","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/LandingPage.tsx":"26","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/ProjectFormDemo.tsx":"27","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Reveal.tsx":"28","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Showcase.tsx":"29","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/UsersDemo.tsx":"30","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/features.data.tsx":"31","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/index.ts":"32","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/get-initials.ts":"33","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/index.ts":"34","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/motion.ts":"35","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/index.ts":"36","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/use-users.ts":"37","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/index.ts":"38","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react-hook-form.tsx":"39","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react.tsx":"40","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tailwind.tsx":"41","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tanstack.tsx":"42","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/typescript.tsx":"43","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/index.ts":"44","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/index.ts":"45","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/project.schema.ts":"46","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/counter.store.ts":"47","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/index.ts":"48","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/index.ts":"49","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/user.types.ts":"50","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/format-date.ts":"51","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/index.ts":"52","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/hooks/index.ts":"53","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/api.ts":"54","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/query-client.ts":"55","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/utils.ts":"56","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/Providers.tsx":"57","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/ThemeProvider.tsx":"58","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/devtools.tsx":"59","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/index.ts":"60","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/root-provider.ts":"61","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/router.tsx":"62","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang/index.tsx":"63","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang.tsx":"64","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/__root.tsx":"65","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/index.tsx":"66","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/robots[.]txt.ts":"67","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/site[.]webmanifest.ts":"68","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/sitemap[.]xml.ts":"69","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/schemas/index.ts":"70","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/server.ts":"71","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/start.ts":"72","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/stores/index.ts":"73","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/types/site-config.types.ts":"74","/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/vite.config.ts":"75"},{"size":1246,"mtime":1785060939000,"results":"76","hashOfConfig":"77"},{"size":1900,"mtime":1785175930867,"results":"78","hashOfConfig":"77"},{"size":659,"mtime":1784854633000,"results":"79","hashOfConfig":"77"},{"size":460,"mtime":1784890377000,"results":"80","hashOfConfig":"77"},{"size":830,"mtime":1785177872880,"results":"81","hashOfConfig":"77"},{"size":1454,"mtime":1784854986000,"results":"82","hashOfConfig":"77"},{"size":1841,"mtime":1784854986000,"results":"83","hashOfConfig":"77"},{"size":3186,"mtime":1784724501000,"results":"84","hashOfConfig":"77"},{"size":570,"mtime":1784844670000,"results":"85","hashOfConfig":"77"},{"size":775,"mtime":1784844515000,"results":"86","hashOfConfig":"77"},{"size":926,"mtime":1784724501000,"results":"87","hashOfConfig":"77"},{"size":430,"mtime":1784724501000,"results":"88","hashOfConfig":"77"},{"size":304,"mtime":1784724501000,"results":"89","hashOfConfig":"77"},{"size":2820,"mtime":1784844955000,"results":"90","hashOfConfig":"77"},{"size":1515,"mtime":1784724501000,"results":"91","hashOfConfig":"77"},{"size":2002,"mtime":1784855059000,"results":"92","hashOfConfig":"77"},{"size":521,"mtime":1784854595000,"results":"93","hashOfConfig":"77"},{"size":156,"mtime":1784848451000,"results":"94","hashOfConfig":"77"},{"size":1384,"mtime":1785162800964,"results":"95","hashOfConfig":"77"},{"size":233,"mtime":1784852534000,"results":"96","hashOfConfig":"77"},{"size":127,"mtime":1784852535000,"results":"97","hashOfConfig":"77"},{"size":301,"mtime":1784852534000,"results":"98","hashOfConfig":"77"},{"size":2363,"mtime":1785164243571,"results":"99","hashOfConfig":"77"},{"size":2641,"mtime":1785164243580,"results":"100","hashOfConfig":"77"},{"size":2748,"mtime":1785164243592,"results":"101","hashOfConfig":"77"},{"size":476,"mtime":1785058808000,"results":"102","hashOfConfig":"77"},{"size":2048,"mtime":1785164228849,"results":"103","hashOfConfig":"77"},{"size":2020,"mtime":1784848449000,"results":"104","hashOfConfig":"77"},{"size":3222,"mtime":1785164243620,"results":"105","hashOfConfig":"77"},{"size":6524,"mtime":1785164243638,"results":"106","hashOfConfig":"77"},{"size":1528,"mtime":1785058808000,"results":"107","hashOfConfig":"77"},{"size":66,"mtime":1784848481000,"results":"108","hashOfConfig":"77"},{"size":354,"mtime":1784848482000,"results":"109","hashOfConfig":"77"},{"size":192,"mtime":1784848482000,"results":"110","hashOfConfig":"77"},{"size":696,"mtime":1784849743000,"results":"111","hashOfConfig":"77"},{"size":63,"mtime":1784848503000,"results":"112","hashOfConfig":"77"},{"size":566,"mtime":1784890383000,"results":"113","hashOfConfig":"77"},{"size":340,"mtime":1784855062000,"results":"114","hashOfConfig":"77"},{"size":1973,"mtime":1784848418000,"results":"115","hashOfConfig":"77"},{"size":6639,"mtime":1784848418000,"results":"116","hashOfConfig":"77"},{"size":807,"mtime":1784848418000,"results":"117","hashOfConfig":"77"},{"size":12913,"mtime":1784848427000,"results":"118","hashOfConfig":"77"},{"size":1892,"mtime":1784848418000,"results":"119","hashOfConfig":"77"},{"size":73,"mtime":1784848503000,"results":"120","hashOfConfig":"77"},{"size":97,"mtime":1785163805287,"results":"121","hashOfConfig":"77"},{"size":297,"mtime":1785164243720,"results":"122","hashOfConfig":"77"},{"size":478,"mtime":1784724501000,"results":"123","hashOfConfig":"77"},{"size":75,"mtime":1784848436000,"results":"124","hashOfConfig":"77"},{"size":65,"mtime":1784848474000,"results":"125","hashOfConfig":"77"},{"size":127,"mtime":1784853202000,"results":"126","hashOfConfig":"77"},{"size":411,"mtime":1784724501000,"results":"127","hashOfConfig":"77"},{"size":52,"mtime":1784724501000,"results":"128","hashOfConfig":"77"},{"size":144,"mtime":1784848450000,"results":"129","hashOfConfig":"77"},{"size":2902,"mtime":1784890382000,"results":"130","hashOfConfig":"77"},{"size":465,"mtime":1784724501000,"results":"131","hashOfConfig":"77"},{"size":376,"mtime":1784854986000,"results":"132","hashOfConfig":"77"},{"size":350,"mtime":1785177896586,"results":"133","hashOfConfig":"77"},{"size":3049,"mtime":1785177856899},{"size":160,"mtime":1784855044000,"results":"134","hashOfConfig":"77"},{"size":51,"mtime":1784854605000,"results":"135","hashOfConfig":"77"},{"size":163,"mtime":1784855059000,"results":"136","hashOfConfig":"77"},{"size":708,"mtime":1785173719143,"results":"137","hashOfConfig":"77"},{"size":314,"mtime":1785093200098,"results":"138","hashOfConfig":"77"},{"size":774,"mtime":1785175914505,"results":"139","hashOfConfig":"77"},{"size":2399,"mtime":1785173723285,"results":"140","hashOfConfig":"77"},{"size":330,"mtime":1785175430774,"results":"141","hashOfConfig":"77"},{"size":448,"mtime":1784890374000,"results":"142","hashOfConfig":"77"},{"size":833,"mtime":1784890376000,"results":"143","hashOfConfig":"77"},{"size":702,"mtime":1784890375000,"results":"144","hashOfConfig":"77"},{"size":154,"mtime":1784848451000,"results":"145","hashOfConfig":"77"},{"size":349,"mtime":1785102111859,"results":"146","hashOfConfig":"77"},{"size":766,"mtime":1784890449000,"results":"147","hashOfConfig":"77"},{"size":154,"mtime":1784848451000,"results":"148","hashOfConfig":"77"},{"size":160,"mtime":1784724501000,"results":"149","hashOfConfig":"77"},{"size":771,"mtime":1785164244307,"results":"150","hashOfConfig":"77"},{"filePath":"151","messages":"152","suppressedMessages":"153","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1invr81",{"filePath":"154","messages":"155","suppressedMessages":"156","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"157","messages":"158","suppressedMessages":"159","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"160","messages":"161","suppressedMessages":"162","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"163","messages":"164","suppressedMessages":"165","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"166","messages":"167","suppressedMessages":"168","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"169","messages":"170","suppressedMessages":"171","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"172","messages":"173","suppressedMessages":"174","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"175","messages":"176","suppressedMessages":"177","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"178","messages":"179","suppressedMessages":"180","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"181","messages":"182","suppressedMessages":"183","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"184","messages":"185","suppressedMessages":"186","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"187","messages":"188","suppressedMessages":"189","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"190","messages":"191","suppressedMessages":"192","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"193","messages":"194","suppressedMessages":"195","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"196","messages":"197","suppressedMessages":"198","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"199","messages":"200","suppressedMessages":"201","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"202","messages":"203","suppressedMessages":"204","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"205","messages":"206","suppressedMessages":"207","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"208","messages":"209","suppressedMessages":"210","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"211","messages":"212","suppressedMessages":"213","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"214","messages":"215","suppressedMessages":"216","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"217","messages":"218","suppressedMessages":"219","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"220","messages":"221","suppressedMessages":"222","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"223","messages":"224","suppressedMessages":"225","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"226","messages":"227","suppressedMessages":"228","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"229","messages":"230","suppressedMessages":"231","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"232","messages":"233","suppressedMessages":"234","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"235","messages":"236","suppressedMessages":"237","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"238","messages":"239","suppressedMessages":"240","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"241","messages":"242","suppressedMessages":"243","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"244","messages":"245","suppressedMessages":"246","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"247","messages":"248","suppressedMessages":"249","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"250","messages":"251","suppressedMessages":"252","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"253","messages":"254","suppressedMessages":"255","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"256","messages":"257","suppressedMessages":"258","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"259","messages":"260","suppressedMessages":"261","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"262","messages":"263","suppressedMessages":"264","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"265","messages":"266","suppressedMessages":"267","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"268","messages":"269","suppressedMessages":"270","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"271","messages":"272","suppressedMessages":"273","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"274","messages":"275","suppressedMessages":"276","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"277","messages":"278","suppressedMessages":"279","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"280","messages":"281","suppressedMessages":"282","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"283","messages":"284","suppressedMessages":"285","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"286","messages":"287","suppressedMessages":"288","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"289","messages":"290","suppressedMessages":"291","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"292","messages":"293","suppressedMessages":"294","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"295","messages":"296","suppressedMessages":"297","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"298","messages":"299","suppressedMessages":"300","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"301","messages":"302","suppressedMessages":"303","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"304","messages":"305","suppressedMessages":"306","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"307","messages":"308","suppressedMessages":"309","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"310","messages":"311","suppressedMessages":"312","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"313","messages":"314","suppressedMessages":"315","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"316","messages":"317","suppressedMessages":"318","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"319","messages":"320","suppressedMessages":"321","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"322","messages":"323","suppressedMessages":"324","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"325","messages":"326","suppressedMessages":"327","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"328","messages":"329","suppressedMessages":"330","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"331","messages":"332","suppressedMessages":"333","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"334","messages":"335","suppressedMessages":"336","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"337","messages":"338","suppressedMessages":"339","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"340","messages":"341","suppressedMessages":"342","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"343","messages":"344","suppressedMessages":"345","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"346","messages":"347","suppressedMessages":"348","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"349","messages":"350","suppressedMessages":"351","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"352","messages":"353","suppressedMessages":"354","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"355","messages":"356","suppressedMessages":"357","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"358","messages":"359","suppressedMessages":"360","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"361","messages":"362","suppressedMessages":"363","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"364","messages":"365","suppressedMessages":"366","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"367","messages":"368","suppressedMessages":"369","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"370","messages":"371","suppressedMessages":"372","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/DefaultCatchBoundary.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/LanguageSwitcher.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/NotFound.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/Pending.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/shared/ThemeToggle.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/avatar.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/button.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/dialog.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/field.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/input.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/label.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/skeleton.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/table.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/components/ui/tabs.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/seo.config.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/config/site.config.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/constants/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/env.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/get-users.api.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/api/query-keys.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/CartDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Features.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Hero.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/LandingPage.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/ProjectFormDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Reveal.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/Showcase.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/components/UsersDemo.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/features.data.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/data/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/get-initials.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/helpers/motion.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/hooks/use-users.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react-hook-form.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/react.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tailwind.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/tanstack.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/icons/typescript.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/schemas/project.schema.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/counter.store.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/stores/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/features/landing/types/user.types.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/format-date.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/helpers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/hooks/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/api.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/query-client.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/lib/utils.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/Providers.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/devtools.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/providers/root-provider.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/router.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang/index.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/$lang.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/__root.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/index.tsx",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/robots[.]txt.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/site[.]webmanifest.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/routes/sitemap[.]xml.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/schemas/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/server.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/start.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/stores/index.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/src/types/site-config.types.ts",[],[],"/Users/omergulcicek/Projeler/virastack/start/templates-i18n/tanstack/vite.config.ts",[],[]]
@@ -0,0 +1,41 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+ branches: [main, master]
8
+
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Install pnpm
18
+ uses: pnpm/action-setup@v4
19
+ with:
20
+ version: 10
21
+
22
+ - name: Setup Node.js
23
+ uses: actions/setup-node@v4
24
+ with:
25
+ node-version: 22
26
+ cache: "pnpm"
27
+
28
+ - name: Install dependencies
29
+ run: pnpm install --frozen-lockfile
30
+
31
+ - name: Typecheck
32
+ run: pnpm run typecheck
33
+
34
+ - name: Lint
35
+ run: pnpm run lint:ci
36
+
37
+ - name: Knip
38
+ run: pnpm run knip
39
+
40
+ - name: Build
41
+ run: pnpm run build
@@ -0,0 +1 @@
1
+ npx --no -- commitlint --edit "$1"
@@ -0,0 +1 @@
1
+ npx --no -- lint-staged
@@ -0,0 +1 @@
1
+ npm run typecheck && npm run lint:ci
@@ -0,0 +1,7 @@
1
+ .next
2
+ node_modules
3
+ pnpm-lock.yaml
4
+ public
5
+ CHANGELOG.md
6
+ .changeset
7
+ src/routeTree.gen.ts
@@ -0,0 +1,41 @@
1
+ {
2
+ "singleQuote": false,
3
+ "trailingComma": "all",
4
+ "printWidth": 100,
5
+ "plugins": ["@ianvs/prettier-plugin-sort-imports", "prettier-plugin-tailwindcss"],
6
+ "tailwindFunctions": ["cn", "clsx", "cva"],
7
+ "tailwindStylesheet": "./src/styles/tailwind.css",
8
+ "importOrder": [
9
+ "^react$",
10
+ "^@tanstack/.*",
11
+ "",
12
+ "^zustand($|/)",
13
+ "^lucide-react($|/)",
14
+ "<THIRD_PARTY_MODULES>",
15
+ "",
16
+ "^@/types($|/)",
17
+ "^@/constants($|/)",
18
+ "^@/schemas($|/)",
19
+ "^@/config($|/)",
20
+ "^@/env($|/)",
21
+ "",
22
+ "^@/assets($|/)",
23
+ "^@/styles($|/)",
24
+ "^@/lib($|/)",
25
+ "^@/helpers($|/)",
26
+ "",
27
+ "^@/providers($|/)",
28
+ "^@/stores($|/)",
29
+ "^@/hooks($|/)",
30
+ "^@/data($|/)",
31
+ "",
32
+ "^@/components($|/)",
33
+ "^@/layout($|/)",
34
+ "^@/features($|/)",
35
+ "^@/ui($|/)",
36
+ "^@/.*",
37
+ "",
38
+ "^[./]"
39
+ ],
40
+ "importOrderParserPlugins": ["typescript", "jsx"]
41
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "recommendations": [
3
+ "esbenp.prettier-vscode",
4
+ "dbaeumer.vscode-eslint",
5
+ "bradlc.vscode-tailwindcss"
6
+ ]
7
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
3
+ "editor.formatOnSave": true,
4
+ "editor.codeActionsOnSave": {
5
+ "source.fixAll.eslint": "explicit"
6
+ },
7
+ "typescript.tsdk": "node_modules/typescript/lib",
8
+ "files.exclude": {
9
+ "**/.git": true,
10
+ "**/.svn": true,
11
+ "**/.hg": true,
12
+ "**/.DS_Store": true,
13
+ "**/Thumbs.db": true,
14
+ "**/.cache": true,
15
+ "**/.next": true,
16
+ "**/.tanstack": true,
17
+ "**/.output": true,
18
+ "**/build": true,
19
+ "**/dist": true,
20
+ "**/node_modules": true
21
+ }
22
+ }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026-present Ömer Gülçiçek (ViraStack)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -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,52 @@
1
+ # dependencies
2
+ /node_modules
3
+ /.pnp
4
+ .pnp.*
5
+ .yarn/*
6
+ !.yarn/patches
7
+ !.yarn/plugins
8
+ !.yarn/releases
9
+ !.yarn/versions
10
+
11
+ # testing
12
+ /coverage
13
+
14
+ # build / framework
15
+ /dist
16
+ /dist-ssr
17
+ .nitro
18
+ .tanstack
19
+ .wrangler
20
+ .output
21
+ .vinxi
22
+ __unconfig*
23
+
24
+ # production
25
+ /build
26
+
27
+ # misc
28
+ .DS_Store
29
+ *.pem
30
+ *.local
31
+ todos.json
32
+
33
+ # debug
34
+ npm-debug.log*
35
+ yarn-debug.log*
36
+ yarn-error.log*
37
+ .pnpm-debug.log*
38
+
39
+ # env files
40
+ .env*
41
+ !.env.example
42
+
43
+ # vercel
44
+ .vercel
45
+
46
+ # typescript
47
+ *.tsbuildinfo
48
+
49
+ # cache / tooling
50
+ .eslintcache
51
+ .knip
52
+ .turbo
@@ -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;