Spliit Cloud is a community fork of Spliit. Contributions are welcome: bug reports, fixes, tests, docs, translations, and features.
For project rules, see AGENTS.md. For behavior, see CODE_OF_CONDUCT.md.
good first issue— approachable entry pointshelp wanted— scoped but unassigned- For larger changes, open an issue first to align on direction
Bun monorepo. All commands through Bun.
Local dev runs in three explicit steps:
bun install
cp .env.example .env
bun dev:up # starts postgres, maxio, maildev (compose.dev.yaml)
bun prisma-migrate
bun dev # web :3000, api :3001Service state lives under storage/ at the repository root. Stop local
service containers with bun dev:down when you are done; remove storage/
for a clean reset.
Other useful commands:
bun run check # Oxfmt, Oxlint, and TypeScript
bun run format:affected # Format only affected Turbo tasks
bun run lint:fix # Apply Oxlint's behavior-preserving fixes
bun run test # Vitest unit tests
bun test:integration # Real-DB integration testsWeb integration tests expect an API using the integration profile. Start it in another terminal before running the suite:
bun --filter @spliit/api start:integration # API on :3101
bun test:integration- Branch off
main(fix/...,feat/...,docs/...) - One logical change per PR. Add or update tests.
- Run
bun run checkandbun run testbefore pushing. - Schema changes: commit schema, migration, and generated client together.
- Reference the issue with
Closes #123.
AI agent contributions are welcome, but the PR must make the agent's context and reasoning reviewable. If AI was used, include either:
- the initial prompt and every follow-up prompt that materially shaped the implementation, along with any relevant notes about what was accepted or changed; or
- for a new feature or a larger chunk of work, a well-defined and up-to-date OpenSpec describing the proposal, design, and implementation tasks. Keep the OpenSpec in sync with the code in the PR.
The PR author remains responsible for the implementation, tests, security, and review of all generated code. Do not include secrets, private data, or unredacted third-party content in prompt transcripts.
Commit messages: short imperative subject, optional body for the why.
See AGENTS.md for agent and contributor invariants (Bun, money units, translations, integration-test server rules).
apps/web/src/messages/en-US.json is the source of truth. Use bun i18n for all changes to non-English locales. Weblate is not set up yet.
Maintained in spare time. Reviews are best-effort. A ping on stalled PRs is welcome.