Repository navigation
Testing and Contributing
Contributions should preserve StarryBio’s core promise: a strict, configurable static profile site that builds one portable artifact for GitHub Pages, Cloudflare Workers, Vercel, Netlify, and future static hosts.
- For a site configuration/support question, read this wiki—especially Troubleshooting—before opening an issue.
- For a reproducible product bug, use the repository’s bug report form.
- For a theme or layout proposal, use the theme/layout proposal form.
- For an analytics provider proposal, use the analytics provider proposal form.
- For a security issue, use private GitHub Security Advisory reporting, not a public issue.
Review the repository’s CONTRIBUTING.md, Code of Conduct, and Security Policy before submitting a contribution.
-
Fork and clone the repository.
-
Create a focused branch, such as
fix/status-timezoneorfeat/aurora-theme. -
Install dependencies and start the site.
pnpm install pnpm dev
-
Make the smallest coherent change. Avoid unrelated formatting or refactors in the same pull request.
-
Add tests and documentation with the implementation.
The public starter configuration in config/starrybio.config.ts is part of the project experience. When a configuration feature changes, keep the schema, example configuration, generator behavior, user wiki, and tests aligned.
pnpm checkpnpm check runs formatting verification, ESLint, astro check, tsc --noEmit, and unit tests. Use pnpm format if Prettier reports a formatting difference.
pnpm testThis runs the portable unit and integration suites for a downstream deployment.
pnpm test:unitVitest unit tests cover isolated schema, normalization, runtime, generator, security-header, and updater behavior. Place narrow regression tests alongside the relevant existing tests/unit/*.test.ts topic.
pnpm test:integrationThis builds minimal and heavily customized configurations in temporary project copies without replacing the installation’s configuration or assets.
pnpm test:e2eThis builds the active configuration and runs Playwright. Expectations are derived from that configuration, and disabled optional features are skipped.
pnpm test:e2e:fixturesThis runs deterministic browser deployments for minimal and heavily customized configurations.
pnpm test:upstreamThis checks StarryBio’s stock assets, starter metadata, and maintainer workflows. It is for upstream release work, not downstream deployments.
pnpm release:checkThis runs pnpm check, integration and upstream checks, active-config and fixture browser tests, and pnpm audit. It does not publish a release or deploy to Cloudflare.
| Change | Minimum additional care |
|---|---|
| Schema/configuration | Add accept/reject/default tests; document the field; preserve strict validation. |
| Theme/layout/CSS | Check desktop and mobile, keyboard focus, contrast, and reduced motion. |
| Status logic | Cover timezone-local semantics, overnight intervals, overlap ordering, and exclusive end times. |
| Generated assets | Test correct output, escaping, invalid paths/extensions, and stale-file cleanup. |
| Analytics | Add schema/descriptors/tests, keep HTTPS and no-inline-script model, tighten CSP. |
| Deployment config | Keep the build provider-neutral, preserve header parity, and test/document each affected host. |
| New visible behavior | Update both the relevant user wiki page and the configuration starter/example. |
- Keep the PR focused and explain the user-visible outcome.
- Link a prior issue for substantial features, themes, layouts, or provider integrations.
- Include screenshots or a recording for visual changes, including narrow-screen results.
- Record commands and results in the pull-request template.
- Use a clear Conventional Commit-style title, for example
fix: preserve overnight status schedulesorfeat: add aurora theme preset. - Never commit real analytics identifiers tied to a private account, Cloudflare credentials, or other secrets; use placeholders in examples and tests.
The wiki is the detailed operator documentation. Update it when behavior, settings, deployment, security, or troubleshooting changes. Keep README concise and point readers to the wiki rather than duplicating whole configuration guides in repository landing-page documentation.
If code behavior and documentation disagree, fix the mismatch in the same contribution. When you cannot verify a platform behavior from the repository or primary vendor documentation, do not state it as a StarryBio feature.
StarryBio · 🏠 Home · ✨ Configure · 🚀 Deploy · 🩺 Troubleshoot · 🛠 Developer guide
Static link-in-bio setup, operation, and development guides.
- Configuration Reference
- Managing Content
- Appearance and Branding
- Availability and Announcements
- Assets and Generated Downloads
- SEO and Analytics