Tracksy: privacy-first music streaming data viz tool. Monorepo via Moon.
| Component | Stack | Guide |
|---|---|---|
app/ |
Astro, React, TypeScript, TailwindCSS, DuckDB WASM, Vitest | app/AGENTS.md |
synthetic-datasets/ |
Python, Faker, NumPy, openpyxl, Pydantic, pytest, Ruff, ty | synthetic-datasets/AGENTS.md |
blog/ |
Gohugo | blog/AGENTS.md |
e2e/ |
Playwright | e2e/AGENTS.md |
Privacy: All processing client-side in browser. No server-side storage, no external API calls with user data.
moon setup # Downloads Node.js, Python, and dependenciesmoon run :testβ run all tests across monorepomoon run app:devβ start web app dev servermoon run blog:devβ start blog dev server
Follow Conventional Commits:
feat(scope): descriptionβ new featurefix(scope): descriptionβ bug fixdocs: descriptionβ documentation changesstyle: descriptionβ code formatting (no logic change)refactor: descriptionβ code restructuringtest: descriptionβ test additions/correctionschore: descriptionβ build/tooling changes
All tests and quality checks must pass before committing.
See sub-project AGENTS.md for format/lint/test/typecheck commands.
- Feature branch from
main:git checkout -b feat/your-feature-name - Focused, atomic commits per conventions above
- Before submitting, rebase on latest main:
git fetch origin && git rebase origin/main - Quality checks: see sub-project AGENTS.md for format/lint/test/typecheck commands
- All tests must pass before merging
- Use rebase and merge strategy (enforced)
PRs use the template at .github/pull_request_template.md. Fill all sections. Issues and PRs use labels defined in .github/labels.yml β apply the relevant ones.
Workflows in .github/workflows/.
- No server-side data storage β all processing client-side
- No external API calls with user data
- Review
SECURITY.mdfor vulnerability reporting moon run app:auditβ check dependency vulnerabilities