Thanks for your interest in improving Visual Astro! This document covers how to propose changes and what to expect.
Visual Astro is licensed under the GNU Affero General Public License v3.0
(AGPL-3.0) — see LICENSE. By opening a pull request you agree
that your contribution is provided under the same license, so that the whole
project can stay under one consistent, copyleft license.
If you add a new dependency, please check that its license is compatible with AGPL-3.0 (permissive licenses such as MIT, BSD, ISC, or Apache-2.0 are fine; avoid dependencies under incompatible or non-OSI-approved/"source available" licenses). Mention the dependency and its license in the PR description.
Open a GitHub issue with:
- What you expected to happen vs. what actually happened
- Steps to reproduce (for bugs)
- Browser/OS, and whether it happens in production or only in a local dev build
- Fork the repository and create a branch from
main. - Install dependencies:
npm install. - Set up a
.envwith your own Supabase project credentials (see the README) — please don't use or commit production credentials. - Make your change, keeping it focused and scoped to one concern per PR.
- Before opening a PR, run:
npm run lint npm run test - Add or update tests for behavior you change (Vitest, under
*.test.tsfiles next to the code they cover). - Open a pull request describing the change and the motivation behind it. Link any related issue.
Changes to the Supabase schema go in supabase/migrations/ as a new,
timestamped SQL migration file — don't edit past migrations. Enable Row Level
Security (RLS) and add explicit policies for any new table.
- TypeScript, React function components, and the existing
shadcn/ui+ Tailwind conventions used throughoutsrc/components. - Keep UI strings translatable through the existing i18n setup (
useI18n) rather than hardcoding user-facing text.
Be respectful and constructive in issues, PRs, and reviews. Disagreements about code are fine; personal attacks are not.