Getting started¶
Welcome! TransitMatters Labs is run entirely by volunteers. Here's how to go from zero to your first merged PR.
1. Get connected¶
- Fill out the volunteer form if you haven't already.
- Join the Labs Slack channel. It's the place to ask questions, find a project and get AWS access if you need it.
2. Learn the shape of things¶
Read the architecture overview. It takes five minutes. The key idea: most projects read from one shared data pipeline that ends in the Data Dashboard API.
3. Pick a project¶
| If you like… | Try |
|---|---|
| Frontend, charts, React | Data Dashboard |
| Something small to learn the ropes | Pride Bus or Shutdown Tracker |
| Maps and live data | New Train Tracker |
| Python and data wrangling | data-ingestion or mbta-performance |
Browse each repo's Issues for something to pick up, or ask in Slack.
4. Set up your machine¶
You'll need:
- Git and a GitHub account
- Node: use the version in the repo's
.nvmrc(nvm install && nvm use) - Python + uv. A few older repos use Poetry; the README will say.
- A free MBTA V3 API key for apps that call the MBTA directly
You don't need AWS access to start
Most apps run locally against public data. For the Data Dashboard, export TM_BACKEND_SOURCE=prod points your local copy at the production API.
Most full-stack repos start with:
5. Make a change¶
- Create a branch and open a pull request.
- CI runs lint and tests. Run
npm run lint(oruv run ruff check .) locally first. - A maintainer reviews it.
- Merging to
maindeploys to production. That's why reviews matter.
Help¶
Stuck? Ask in Slack. Every repo also has a CODEOWNERS file listing who maintains it.