This catalog lists well-scoped issues contributors can pick up across:
frontend/(Next.js)backend/(Express API)contracts/(Soroban)
Each issue includes the goal, suggested labels, and what success looks like.
- Pick an issue that matches your skill level.
- Create a GitHub issue using the templates in
.github/ISSUE_TEMPLATE/. - Copy the relevant section from this catalog into the issue description.
- Add the recommended labels.
- Type: Feature
- Labels:
area:frontendtype:featuregood first issue
- Goal: Introduce a reusable empty-state component for pages with no data.
- Scope:
- Add
components/empty-state.tsx(or appropriate location) - Use it in at least 2 pages that currently show placeholder content
- Add
- Definition of Done:
- Component supports title, description, optional action button, optional icon
- Used in at least 2 routes
- No visual regressions
- Type: Feature
- Labels:
area:frontendtype:featuregood first issue
- Goal: Improve perceived performance by adding skeleton components.
- Scope:
- Identify one dashboard route and create a skeleton variant
- Definition of Done:
- Skeleton matches layout spacing of the real UI
- Toggleable via a local
loadingstate
- Type: Chore
- Labels:
area:frontendtype:choregood first issue
- Goal: Ensure consistent product naming across the UI.
- Definition of Done:
- All user-facing strings use the agreed spelling
- No broken links/routes introduced
- Type: Feature
- Labels:
area:frontendtype:feature
- Goal: Centralize backend calls (starting with
/healthand/soroban/config). - Scope:
- Add
lib/api/client.tswithfetchJsonwrapper - Add
lib/api/backend.tswith typed functions - Add a small UI panel/page to display backend + soroban config
- Add
- Definition of Done:
- Errors handled with user-friendly messages
- Functions are typed
- No direct
fetch("http://...")scattered in components
- Type: Chore/Feature
- Labels:
area:frontendtype:feature
- Goal: Add
NEXT_PUBLIC_BACKEND_URLand document it. - Definition of Done:
- FE reads backend base URL from env
.env.exampleadded tofrontend/- README updated
- Type: Feature
- Labels:
area:frontendtype:feature
- Goal: Implement a wallet connect UX for Stellar/Soroban.
- Notes: Final choice of wallet provider (e.g., Freighter) should be agreed in the issue.
- Definition of Done:
- Connect/disconnect supported
- Connected address displayed in UI
- State persists on refresh (if appropriate)
- Clear error handling (wallet not installed, user rejected, wrong network)
- Type: Feature
- Labels:
area:backendtype:featuregood first issue
- Goal: Add a helper for consistent API errors.
- Scope:
- Create a
src/http/errors.ts - Ensure routes return a consistent JSON shape
- Create a
- Definition of Done:
- Errors include
code,message, and optionaldetails - Example used by at least one endpoint
- Errors include
- Type: Feature
- Labels:
area:backendtype:featuregood first issue
- Goal: Expose service metadata.
- Definition of Done:
- Returns service name, version, git sha (if available), environment
- Type: Feature
- Labels:
area:backendtype:feature
- Goal: Add an endpoint that verifies Soroban RPC reachability.
- Definition of Done:
GET /soroban/pingchecks RPC URL and returns latency and network passphrase- Timeouts handled gracefully
- Type: Chore
- Labels:
area:backendtype:chore
- Goal: Fail fast on misconfigured env.
- Definition of Done:
- Config module returns a typed config object
- Server fails to start if required variables are missing
- Type: Feature
- Labels:
area:backendtype:feature
- Goal: Provide a backend endpoint that builds/submits transactions.
- Definition of Done:
- Clear separation between HTTP route and tx builder
- Logs include tx hash and failure reasons
- Includes test strategy (unit tests or reproducible manual test plan)
- Type: Feature
- Labels:
area:contractstype:featuregood first issue
- Goal: Add Soroban unit tests.
- Definition of Done:
- Tests cover:
- init once
- credit increases balance
- debit decreases balance
- debit fails if insufficient
- admin auth required
- Tests cover:
- Type: Chore/Feature
- Labels:
area:contractstype:choregood first issue
- Goal: Standardize event topics and payloads.
- Definition of Done:
- Event topics documented in
contracts/README.md - All methods that mutate state emit an event
- Event topics documented in
- Type: Feature
- Labels:
area:contractstype:feature
- Goal: Add a pausability control for emergency stops.
- Definition of Done:
pause()andunpause()admin-authcreditanddebitfail when paused- Tests cover pause/unpause
- Type: Feature
- Labels:
area:contractstype:feature
- Goal: Restrict debit amount per user per period.
- Definition of Done:
- New storage key(s) for caps and accounting
- Clear behavior when cap exceeded
- Tests included
- Type: Feature
- Labels:
area:contractstype:feature
- Goal: Model rent schedules, due dates, and payment status on-chain.
- Definition of Done:
- Contract methods documented
- Access control defined
- Events for schedule creation and payment updates
- Tests cover core flows
- Type: Chore
- Labels:
type:chore
- Goal: Provide a script that checks Node/Rust/Soroban CLI versions and prints next steps.
- Definition of Done:
- Script runs on macOS
- Clear output for missing prerequisites