Skip to main content

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

PageWhen to read
Dev SetupFirst time setting up the repo
Repository LayoutFinding where to make a change
BDD WorkflowAdding or modifying a feature
TestingRunning the suite, debugging failures
Coding ConventionsBefore opening your first PR
Database MigrationsChanging the database schema
Submitting a Pull RequestReady 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