Contributing Overview
Thanks for your interest in contributing to Marketlum. This guide is for people working on the framework — cloning the monorepo and editing @marketlum/core, @marketlum/ui, @marketlum/shared, or the scaffolded apps.
If you're building a market with Marketlum, you probably want the Customization Guide instead.
Who this is for
You're in the right place if you want to:
- Fix a bug in the API, web UI, or shared schemas
- Add a new feature to the framework that benefits all users
- Improve documentation
- Extend the admin UI with new shared components
- Add a step definition for a new BDD scenario
How contributions are reviewed
Marketlum follows a strict Behavior-Driven Development workflow. Every endpoint and UI behavior has a .feature file in packages/bdd/features/ and corresponding step definitions in apps/api/test/. Pull requests that add or change behavior without updating the BDD specs will be asked to add them before review.
The framework also maintains a hard separation between user-owned code (apps/api, apps/web — the scaffolded shells) and framework-owned code (packages/core, packages/ui, packages/shared). Changes to the framework must be mirrored in the scaffolding template under packages/create-marketlum-app/template/. See Coding Conventions for the template-sync rule.
What's in this guide
| Page | When to read |
|---|---|
| Dev Setup | First time setting up the repo |
| Repository Layout | Finding where to make a change |
| BDD Workflow | Adding or modifying a feature |
| Testing | Running the suite, debugging failures |
| Coding Conventions | Before opening your first PR |
| Database Migrations | Changing the database schema |
| Submitting a Pull Request | Ready to send your work |
Getting help
- Bug or feature request: open an issue
- Questions about how something works: start with the Concepts section, then ask in an issue
- Security report: please disclose privately, not in a public issue