{"id":31532597,"url":"https://github.com/vasilvelikov00/ts-stack","last_synced_at":"2026-01-20T16:55:27.348Z","repository":{"id":317548311,"uuid":"1067897498","full_name":"VasilVelikov00/ts-stack","owner":"VasilVelikov00","description":"Generate a fullstack project from a config with react, vite, hono, drizzle and turborepo","archived":false,"fork":false,"pushed_at":"2025-10-01T17:09:41.000Z","size":137,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-01T17:18:22.083Z","etag":null,"topics":["app","cli","drizzle-orm","eslint","fullstack","generator","hono","prettier","project","react","react-query","scaffold","shadcn-ui","tailwindcss","turborepo","typescript","vite","yaml","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VasilVelikov00.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-01T14:46:29.000Z","updated_at":"2025-10-01T17:09:45.000Z","dependencies_parsed_at":"2025-10-01T17:18:26.875Z","dependency_job_id":"88815645-9643-4b16-ae4d-11389b02f75c","html_url":"https://github.com/VasilVelikov00/ts-stack","commit_stats":null,"previous_names":["vasilvelikov00/scaffolder","vasilvelikov00/ts-stack"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/VasilVelikov00/ts-stack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VasilVelikov00%2Fts-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VasilVelikov00%2Fts-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VasilVelikov00%2Fts-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VasilVelikov00%2Fts-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VasilVelikov00","download_url":"https://codeload.github.com/VasilVelikov00/ts-stack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VasilVelikov00%2Fts-stack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278262444,"owners_count":25957938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","cli","drizzle-orm","eslint","fullstack","generator","hono","prettier","project","react","react-query","scaffold","shadcn-ui","tailwindcss","turborepo","typescript","vite","yaml","zod"],"created_at":"2025-10-04T03:56:36.989Z","updated_at":"2025-10-04T03:56:41.466Z","avatar_url":"https://github.com/VasilVelikov00.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ts-stack\n\nThis project came into existence because I got tired of looking for template repositories, creating and configuring\nprojects from scratch, setting up directory structures and monorepos and configuring linting and code style each time I\nstarted a new project.\n\nIt is a strongly opinionated generator, which uses technologies that I would typically use when working on a fullstack\nTypeScript project. Hopefully that's a good thing. Some of these technologies are already strongly established in the\nweb ecosystem like [`react`](https://react.dev), [`react-query`](https://tanstack.com/query/docs),\n[`vite`](https://vite.dev) and [`tailwind`](https://tailwindcss.com). Some of them are relatively new and fresh but are\nalready gaining popularity and seem promising like [`shadcn`](https://www.shadcn.io), [`hono`](https://hono.dev), \n[`drizzle`](https://orm.drizzle.team) and [`turborepo`](https://turborepo.com).\n\nThis project is aimed at developers who, like me, want to be able to quickly *scaffold* a new project and get to work.\nIt can also be used by less technical people, who want to get a fully working web app without much coding.\n\n\u003e **Disclaimer**\n\u003e \n\u003e The project is under development so you can expect new features and changes to its core.\n\n## Benefits of the tool\n\n### Fully typed and validated\n\nBoth the generator and the generated projects use TypeScript end to end. The generator uses zod to validate the yaml\nconfigs. The generated projects include runtime validation with zod, which ensures predictability and correctness.\n\n### Full ownership of the generated code\n\nYou can extend and modify the generated projects however you want. You can setup your own build and deployment pipelines\nand choose your infrastructure.\n\n### No runtime overhead\n\nConverting the yaml config into files happens at generation time, so there is no runtime overhead compared to regular\nTypeScript projects.\n\n### Follows best practices\n\nAs mentioned before, the generated projects use established tools and methodologies. They also follow best practices for\nproject and directory structure, code and components reuse, caching, API and database modeling and more.\n\n## How to generate a project\n\nCheck out the configuration guide [here](./GUIDE.md) to create your yaml config or pick an example from\n[here](./examples).\n\nThen run the following command:\n\n```shell\nnpx ts-stack example.yaml my-generated-project\n```\n\nAfter that you can go into the generated project's directory and start the project with `npm run dev`\n\n## What do you get in the generated project\n\n- React 19 + Vite frontend with shadcn UI components and Tailwind\n- Hono server with Drizzle ORM for Postgres or SQLite\n- Zod schemas for validation, used across client and server\n- React Query hooks generated automatically for your data sources\n- Turborepo monorepo structure with shared ESLint and TypeScript configs\n- CLI built with Commander, ts-morph, and fs-extra\n\n## Planned features\n\n- More types inside schemas\n- Form generation inferred from schemas\n- Relations in schemas","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvasilvelikov00%2Fts-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvasilvelikov00%2Fts-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvasilvelikov00%2Fts-stack/lists"}