{"id":49780582,"url":"https://github.com/deltartificial/vesta","last_synced_at":"2026-05-11T19:33:01.477Z","repository":{"id":356166836,"uuid":"1231279256","full_name":"deltartificial/vesta","owner":"deltartificial","description":"An ultra-strict React + TypeScript workspace template for AI-assisted development.","archived":false,"fork":false,"pushed_at":"2026-05-06T22:56:34.000Z","size":227,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-06T23:36:48.812Z","etag":null,"topics":["react","template","tooling","typescript","workspace"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deltartificial.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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":"2026-05-06T20:09:40.000Z","updated_at":"2026-05-06T22:56:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/deltartificial/vesta","commit_stats":null,"previous_names":["deltartificial/vesta"],"tags_count":4,"template":true,"template_full_name":null,"purl":"pkg:github/deltartificial/vesta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltartificial%2Fvesta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltartificial%2Fvesta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltartificial%2Fvesta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltartificial%2Fvesta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deltartificial","download_url":"https://codeload.github.com/deltartificial/vesta/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deltartificial%2Fvesta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32910443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-11T17:09:15.040Z","status":"ssl_error","status_checked_at":"2026-05-11T17:08:45.420Z","response_time":120,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["react","template","tooling","typescript","workspace"],"created_at":"2026-05-11T19:32:57.208Z","updated_at":"2026-05-11T19:33:01.473Z","avatar_url":"https://github.com/deltartificial.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vesta\n\nAn ultra-strict React + TypeScript workspace template for AI-assisted\ndevelopment.\n\nThere is one correct way to do every common task. Tooling rejects deviations\nat commit time, in CI, and at release time — so AI-generated code stays on\nrails and human reviewers spend their time on logic, not consistency.\n\n## Stack\n\n- **Build**: Vite 7 with esbuild, gzip + brotli compression, deterministic\n  manualChunks (vendor / router / query / state / forms / animation / ui)\n- **Framework**: React 19 with `react-router-dom` v7 (lazy routes only)\n- **State**: Zustand factories with `useShallow`\n- **Data**: TanStack Query (the only side-effect anchor) + Zod schemas at\n  every external boundary\n- **Forms**: react-hook-form + `@hookform/resolvers` + Zod\n- **UI primitives**: Base UI (headless) + Tailwind 3\n- **Animation**: Framer Motion\n- **Tests**: Vitest + Testing Library + jsdom + v8 coverage\n- **Lint / format**: Biome 2 with kebab-case filenames, no `any`, no\n  `console`, no `!`, cognitive complexity capped at 15\n- **Architecture rules**: 26 custom rules in `scripts/lint-rules.ts` running\n  on every commit (no `useEffect`, no `as` casts, memo enforcement, store\n  size limits, boundary parsing, banned libs, …)\n- **Quality gates**: knip (unused), size-limit (gzip budgets per chunk),\n  typos (spellcheck), license-checker (allowlist)\n- **Releases**: release-please from conventional commits\n\n## Quickstart\n\n```sh\nbun install\nbun run dev          # http://localhost:5173\nbun run pr           # full local CI mirror before pushing\n```\n\n## Documentation\n\n| Doc | Topic |\n|-----|-------|\n| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | Layered model, data flow, where things live |\n| [docs/RULES.md](docs/RULES.md) | Every architecture rule with rationale and alternatives |\n| [docs/COMMITS.md](docs/COMMITS.md) | Commit and PR title format |\n| [docs/RELEASES.md](docs/RELEASES.md) | Versioning and changelog automation |\n| [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) | Local workflow, PR loop, and gotchas |\n| [docs/adr/](docs/adr/) | Architecture Decision Records |\n| [CLAUDE.md](CLAUDE.md) | Instructions for AI contributors |\n\n## Workflow\n\n```\ngit commit\n   ↓ husky pre-commit\nlint-staged → biome → architecture linter\n   ↓ husky commit-msg\ncommitlint → conventional-commit format\n   ↓ git push\nPR opened\n   ↓ ci.yml\nbiome / typecheck / architecture-rules / test (linux/mac/win) /\ncoverage / build / knip / licenses / typos / size-limit / all-green\n   ↓ pr-title.yml\nPR title validated\n   ↓ squash \u0026 merge\nmain updated → release.yml → release-please opens \"chore: release X.Y.Z\" PR\n   ↓ merge release PR\ngit tag vX.Y.Z + GitHub Release with rendered changelog\n```\n\n## License\n\nDual-licensed under [MIT](LICENSE-MIT) or [Apache-2.0](LICENSE-APACHE) at\nyour option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeltartificial%2Fvesta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeltartificial%2Fvesta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeltartificial%2Fvesta/lists"}