{"id":13880868,"url":"https://github.com/bstaruk/starbase","last_synced_at":"2026-02-09T02:10:47.001Z","repository":{"id":18837384,"uuid":"85409538","full_name":"bstaruk/starbase","owner":"bstaruk","description":"⭐ Production-ready static website boilerplate featuring Webpack 5, TypeScript, PostCSS \u0026 Tailwind CSS.","archived":false,"fork":false,"pushed_at":"2026-02-05T22:38:18.000Z","size":2707,"stargazers_count":76,"open_issues_count":1,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-02-05T23:11:57.418Z","etag":null,"topics":["boilerplate","boilerplate-template","eslint","front-end-starter-kit","postcss","static-site","stylelint","tailwindcss","typescript","webpack","webpack-dev-server","webpack5","webpack5-boilerplate"],"latest_commit_sha":null,"homepage":"https://starbase.dev","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/bstaruk.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}},"created_at":"2017-03-18T15:00:04.000Z","updated_at":"2025-11-24T13:22:18.000Z","dependencies_parsed_at":"2024-01-25T00:31:48.679Z","dependency_job_id":"35aa05c9-bf33-4f55-aa6f-1754e86a7361","html_url":"https://github.com/bstaruk/starbase","commit_stats":null,"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/bstaruk/starbase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstaruk%2Fstarbase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstaruk%2Fstarbase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstaruk%2Fstarbase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstaruk%2Fstarbase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bstaruk","download_url":"https://codeload.github.com/bstaruk/starbase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bstaruk%2Fstarbase/sbom","scorecard":{"id":256471,"data":{"date":"2025-08-11","repo":{"name":"github.com/bstaruk/starbase","commit":"63b6f8b3b7110f9e675eb757baa6e11847d73b8f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"20 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-4vvj-4cpr-p986","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T09:49:27.491Z","repository_id":18837384,"created_at":"2025-08-17T09:49:27.491Z","updated_at":"2025-08-17T09:49:27.491Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29254309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T01:52:29.835Z","status":"online","status_checked_at":"2026-02-09T02:00:09.501Z","response_time":56,"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":["boilerplate","boilerplate-template","eslint","front-end-starter-kit","postcss","static-site","stylelint","tailwindcss","typescript","webpack","webpack-dev-server","webpack5","webpack5-boilerplate"],"created_at":"2024-08-06T08:03:33.865Z","updated_at":"2026-02-09T02:10:46.996Z","avatar_url":"https://github.com/bstaruk.png","language":"TypeScript","readme":"# Starbase\n\n**A Claude-first front-end launchpad.**\n\nStarbase is an opinionated front-end starter kit built on Vite, TypeScript, React, and Tailwind CSS. Claude Code sits in the co-pilot seat by design. Every convention, component, and architectural decision is shaped to make Claude generate code that actually looks like yours.\n\n## Liftoff\n\n```bash\nnpm create starbase@latest my-project\ncd my-project\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000). You're in orbit.\n\n## The Mission\n\nGetting a dev server running is the easy part. Maintaining consistency as your codebase grows? That's where things get interesting, especially when AI tooling is writing a significant chunk of your code.\n\nStarbase puts `CLAUDE.md` at the center of everything. It encodes your preferences, conventions, and architectural decisions into a format that Claude Code can pattern-match against. The baseline components double as reference implementations. Teaching artifacts. When Claude generates new code in a Starbase project, it reads the flight manual and follows the plan.\n\nThe result: an accelerator, not an autopilot. AI-assisted development where the output actually feels like _your_ codebase, not a generic suggestion from the void of space.\n\n## Payload\n\n| Tool                                               | Role                                                           |\n| -------------------------------------------------- | -------------------------------------------------------------- |\n| [Vite](https://vite.dev/)                          | Build tooling and dev server                                   |\n| [TypeScript](https://www.typescriptlang.org/)      | Type safety                                                    |\n| [React](https://react.dev/)                        | UI library                                                     |\n| [Tailwind CSS](https://tailwindcss.com/)           | Utility-first styling with a semantic `sb-` color token system |\n| [TanStack Router](https://tanstack.com/router)     | File-based routing                                             |\n| [TanStack React Query](https://tanstack.com/query) | Server state and data fetching                                 |\n| [Motion](https://motion.dev/)                      | Animation                                                      |\n| [ESLint](https://eslint.org/)                      | Linting (with react-x, react-dom, and jsx-a11y plugins)        |\n| [Prettier](https://prettier.io/)                   | Formatting                                                     |\n\nSee [`template/package.json`](template/package.json) for the full manifest.\n\nThe value lives in how these tools are wired together. `CLAUDE.md` documents the conventions. The reference components demonstrate them. ESLint enforces them mechanically. The `/audit` and `/review` skills catch the architectural stuff a linter can't reach. It's a closed loop: Claude reads the conventions, generates code that follows them, and the toolchain validates the output.\n\nThe ESLint setup is a good example of this philosophy in action. The config goes well beyond recommended defaults, pulling in nine plugins: React best practices ([react-x](https://github.com/niconiahi/eslint-plugin-react-x), [react-dom](https://github.com/niconiahi/eslint-plugin-react-dom), [react-hooks](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks)), accessibility ([jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y)), TanStack [Router](https://tanstack.com/router) and [Query](https://tanstack.com/query) patterns, [Vite-aware refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) boundaries, and [import ordering](https://github.com/import-js/eslint-plugin-import) that understands the project's path alias structure. Atoms sort before molecules. External deps sort before internal ones. React always floats to the top. The linter knows the architecture, so it can enforce it without you thinking about it.\n\n## Star Chart\n\nComponents follow [Atomic Design](https://atomicdesign.bradfrost.com/chapter-2/):\n\n- **Atoms**: The smallest building blocks. Buttons, inputs, links, icons.\n- **Molecules**: Small groups of atoms functioning as a unit. A dark mode toggle, a page header.\n- **Organisms**: Larger sections composed of molecules and atoms. Full-width layouts, distinct page sections.\n- **Templates**: Page-level layout structures that define where things go and how they relate.\n\nEverything else is organized by concern:\n\n```\nsrc/\n  lib/\n    queries/    # React Query options, organized by API domain\n    theme/      # Tailwind CSS and theme config\n    utils/      # Utility functions (cn, darkMode, etc.)\n  ui/\n    atoms/      # Button, Link, Code, StarbaseLogo\n    molecules/  # DarkModeToggle, PageHeader, Stargazers\n    organisms/\n    templates/\n  routes/       # TanStack Router file-based routes\n```\n\nImports use path aliases everywhere: `from 'atoms/Button'` instead of `from '../../ui/atoms/Button'`. If you're reaching for a relative path, that's a sign a new alias is needed.\n\n## Mission Control\n\n`CLAUDE.md` is the north star of this project. It's a living document that maps your development preferences directly to codebase patterns: accessibility standards, import conventions, component architecture, color tokens, writing style, and more.\n\nThink of it as a working contract between you and Claude. Here's how I like things done, and here are the reference implementations to prove it. When Claude generates code in a Starbase project, it builds on these conventions instead of guessing.\n\nRead it. Evolve it. It's designed to grow with your project.\n\n## Comms\n\nStarbase ships with custom [Claude Code skills](https://docs.anthropic.com/en/docs/claude-code/tutorials#create-custom-slash-commands) that go beyond what a linter can catch:\n\n- **`/audit`**: Scans the codebase for drift against CLAUDE.md conventions. Raw color values, misleveled components, accessibility gaps, import violations. Architecture enforcement, automated.\n- **`/review`**: Reviews the current branch's changes against CLAUDE.md. Like a code review from someone who actually read the style guide.\n- **`/update-deps`**: Categorizes dependency updates into safe, Vite-aligned, and major-breaking tiers. Bumps what's safe, holds what isn't, and verifies with build + lint.\n\nThe goal: a suite of tools that handle the mechanical parts of consistency so you can focus on building cool stuff.\n\n## Learn More\n\n- [Atomic Design](https://atomicdesign.bradfrost.com/chapter-2/): the component methodology\n- [Claude Code](https://docs.anthropic.com/en/docs/claude-code): your AI co-pilot\n- [Vite](https://vite.dev/guide/): the build engine\n- [TanStack Router](https://tanstack.com/router/latest/docs/framework/react/overview): file-based routing\n- [TanStack React Query](https://tanstack.com/query/latest/docs/framework/react/overview): server state management\n\n## History\n\nStarbase is built and maintained by [Brian Staruk](https://brian.staruk.net), a Boston-based web developer who's been nerding out in public for over 20 years. Go Sox.\n\nThis project has been actively maintained since 2017, through four major versions. Each one reflected whatever felt like the right way to build for the web at the time. PostCSS, Webpack, TypeScript, Tailwind: tools got picked up as they matured and dropped when something better came along.\n\nv5 is the biggest shift yet. The build tool era is over. The new frontier is encoding taste and standards so that AI tooling can extend your work faithfully. That's the mission now.\n\n## License\n\nMIT\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbstaruk%2Fstarbase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbstaruk%2Fstarbase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbstaruk%2Fstarbase/lists"}