Thanks for your interest in contributing! Setlyst is an open-source platform for setlist management, and any help is genuinely appreciated — whether that's adding new frontend features, improving the UI/UX, testing the "Live Mode" on different mobile devices, or fixing bugs.
- 🎨 UI/UX & Design — Improving responsiveness, accessibility, and the overall look and feel of the dashboard and live viewer.
- 📱 Testing — Running the application on different browsers and devices (especially mobile phones and tablets for stage use) and reporting issues.
- 💻 Code — Next.js React components, API integrations, state management, and bug fixes.
- 🌍 Localization (i18n) — Helping translate the application or improving existing English and Portuguese text.
For anything beyond a small fix, open an issue first. This avoids duplicate work and allows for alignment on the approach before time is invested in a PR.
If you are planning to add a new major feature or alter the layout significantly, it is always a good idea to discuss the UX flow in the issue beforehand.
git clone [https://github.com/allansomensi/setlyst-web](https://github.com/allansomensi/setlyst-web)
cd setlyst-web
npm installPrerequisites: Node.js (latest LTS recommended). You will also need the backend API running or a mock environment set up. 📦
Run the development server:
npm run devRun linting and formatting:
npm run lint:fixSetlyst uses the Next.js App Router. When working on the frontend:
-
🧩 Components: We reuse UI components extensively (check components/ui/). If you are building a new feature, try to compose it using existing layout primitives before adding new custom CSS.
-
🎤 Live Mode: The Live Mode is a critical part of the application used by musicians on stage. Any changes here must strictly avoid layout shifts, ensure high contrast, and prevent accidental screen locks or navigation.
-
⚡ Client vs Server: Keep server components as the default. Only use "use client" directives when interactivity (hooks, event listeners) is strictly necessary.
-
🎯 Keep PRs focused — one feature or fix per PR.
-
🔗 Reference the related issue in the PR description (e.g.,
closes #10orfixes #12). -
✅ Make sure local builds and linting pass.
-
📚 Update or add documentation/comments if your change affects complex logic or introduces new dependencies.
We strictly follow the Conventional Commits standard. The repository is configured with commitlint and husky to enforce this.
Commit messages must be in English and should be brief and descriptive.
By contributing, you agree that your contributions will be licensed under the MIT License. 📜