Thanks for your interest in contributing! This is the frontend dashboard for the PayStream protocol on Stellar — a real-time payment streaming dApp built on Soroban.
Whether you're fixing a bug, polishing the UI, or adding a feature, this guide walks you through the workflow.
- Browse the open Issues.
- Comment on the issue you'd like to take — wait for a maintainer to assign it to you before starting, so two people don't duplicate work.
- Fork the repo and create a branch:
git checkout -b feat/your-issue-name. - Make your changes.
- Run
pnpm buildand confirm it compiles with no TypeScript errors. - Open a Pull Request with a clear description of what you changed and why, and link the issue it closes (e.g. "Closes #12").
| Prefix | Use for |
|---|---|
feat/ |
New features |
fix/ |
Bug fixes |
style/ |
UI and styling changes |
docs/ |
Documentation |
chore/ |
Config and tooling |
- ✅ The build must pass with no TypeScript errors (
pnpm build). - ✅ Follow the existing architecture:
- Presentational components live in
src/components/. - Data fetching and stateful logic live in
src/hooks/orDashboard.tsx. - Pure, framework-free logic (contract calls, formatting, error mapping) lives in
src/lib/.
- Presentational components live in
- ✅ UI changes should work across both desktop and mobile widths.
- ✅ Keep PRs focused — one logical change per PR is easier to review and merge.
git clone https://github.com/OpenStreamFi/paystream-app.git
cd paystream-app
pnpm install
pnpm devThen:
- Install the Freighter wallet browser extension.
- Switch Freighter to Testnet (Settings → Network → Testnet).
- Fund your account with free testnet XLM via Friendbot.
You'll need a funded testnet account to test any wallet interaction (creating streams, withdrawing, etc.).
- This project uses TypeScript, React 19, and Tailwind CSS v4.
- Match the conventions of the surrounding code — naming, structure, and comment density.
- Comments should explain non-obvious decisions, not restate what the code already says.
Open a GitHub Discussion or reach out through the OpenStreamFi community channels. We're happy to help you get started.