mirror of
https://github.com/bretzel-app/crumbs.git
synced 2026-10-12 12:06:57 +02:00
Add LICENSE, CONTRIBUTING, CHANGELOG, SECURITY, CODE_OF_CONDUCT, GitHub issue/PR templates, CODEOWNERS. Update package.json with license/repo/author metadata. Add badges and logo to README. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Contributing to Crumbs
Thanks for your interest in contributing! This guide will help you get started.
Development Setup
# Clone the repo
git clone https://github.com/bretzel-app/crumbs.git
cd crumbs
# Install dependencies
pnpm install
# Start the dev server
pnpm dev
Open http://localhost:5173 and set your password on first visit.
Run make help to see all available commands.
Project Structure
See docs/ARCHITECTURE.md for the full system design. Key directories:
src/routes/— SvelteKit pages and API endpointssrc/lib/components/— Svelte 5 components (runes, not stores)src/lib/server/db/— Drizzle ORM schema and database connectionsrc/lib/sync/— Offline sync and CRDT logictests/unit/— Vitest unit teststests/e2e/— Playwright end-to-end tests
Making Changes
- Fork and branch — Create a feature branch from
main - Follow existing patterns — Match the code style you see in the codebase
- Write tests — Add unit tests for logic, E2E tests for user-facing features
- Run checks before pushing:
make check # Type checking make lint # Linting make test-unit # Unit tests make test-e2e # E2E tests - Open a PR — Target
main, describe what and why
Commit Messages
We use conventional-style commit messages:
feat: add tag autocomplete
fix: prevent duplicate notes on sync
docs: update deployment guide
chore: bump dependencies
Keep the subject line under 70 characters. Use the body for context when needed.
Code Style
- Svelte 5 runes — Use
$state,$derived,$props,$effect(not Svelte 4 stores) - TypeScript — Strict mode, no
anyunless absolutely necessary - Tailwind CSS v4 — Use CSS variables from
src/app.css, never hardcoded Tailwind colors - Design system — Follow the Retro Parchment aesthetic described in
CLAUDE.md
Testing
- Unit tests: Pure logic (parsing, auth, sync). Run with
make test-unit - E2E tests: User workflows in the browser. Run with
make test-e2e - E2E tests use Gherkin-style Given/When/Then comments (see
CLAUDE.mdfor conventions)
Reporting Bugs
Use GitHub Issues with the bug report template. Include:
- Steps to reproduce
- Expected vs actual behavior
- Browser/OS and Crumbs version
Security Issues
Do not open public issues for security vulnerabilities. See SECURITY.md for responsible disclosure instructions.
License
By contributing, you agree that your contributions will be licensed under the MIT License.