Thanks for your interest in contributing! This is a quick entry point — the
full contribution and Git workflow guides live in docs/ and are
linked below.
This is a monorepo. Figure out which workspace your change belongs in before you start:
| Workspace | What it is | Status |
|---|---|---|
apps/frontend |
The Next.js app — everything most contributions will touch | Active, fully implemented |
apps/backend |
A minimal Express+TS scaffold | Scaffold — see its README's roadmap |
contracts/ |
A placeholder Soroban/Rust Cargo workspace | Placeholder — see its README |
See the root README for the full pitch and architecture, and
docs/PIVOT_NOTES.md for the history behind this structure.
git clone https://github.com/<your_user>/stellar-TrueStub
cd stellar-TrueStub
yarn install
yarn dev # runs apps/frontend on http://localhost:3000For frontend-specific environment variables (Firebase, Hasura, Trustless
Work), follow apps/frontend/README.md.
Check the open issues —
issues labeled good first issue
are a good place to start.
-
Fork and branch — see
docs/GIT_GUIDELINE.mdfor branch naming (feat/...,fix/...) and commit message format (type(scope): description). -
Make atomic commits — one logical change per commit.
-
Run the relevant workspace's checks before pushing:
yarn workspace @truestub/frontend lint yarn workspace @truestub/frontend typecheck yarn workspace @truestub/frontend test(or the
@truestub/backend/cargo testequivalents if that's what you touched). -
Open a pull request against
mainusing the PR template — fill it out completely; incomplete PRs may be asked to redo it.
The full walkthrough (forking, branch naming, PR expectations) is in
docs/CONTRIBUTORS_GUIDELINE.md.
Open an issue using the bug report template. Include reproduction steps, expected vs. actual behavior, and your environment (Node version, browser, etc.).
Do not open a public issue for security vulnerabilities. See
SECURITY.md for how to report them privately.
Be respectful and constructive in issues, PRs, and reviews. Disagreements about code are fine; personal attacks aren't.
Thank you for contributing! 🚀