🏗️ Epic: Build the real-time off-chain backend
This is the tracking issue for building the real-time off-chain backend for Stellar Tipz: the REST API, on-chain indexer (mirrors Soroban events into PostgreSQL), credit scoring, X (Twitter) integration, IPFS media, notifications, background jobs, webhooks, analytics and a WebSocket realtime layer.
All work happens on the test-implement-drips branch.
📌 Read first: backend/README.md and backend/docs/BACKEND_CONTRIBUTING.md
How to contribute
- Pick an open issue labelled
backend (filter by an area:* label, or by good first issue).
- Comment to claim it so two people don't grab the same task.
- Branch off
test-implement-drips and open your PR against test-implement-drips (not main).
- Run
npm run typecheck && npm run lint && npm run test in backend/ before opening the PR.
⚠️ No GitHub Actions / CI on this branch yet — run the checks locally. This means contribution checks won't block your PR; reviewers verify manually.
Tech stack
Node.js (TS, ESM) · Express · Prisma + PostgreSQL · Redis + BullMQ · Socket.IO · @stellar/stellar-sdk · Zod · Pino · Vitest.
Scope — 260 atomic issues across these areas
| Area |
Label |
What it covers |
| Setup & tooling |
area:setup |
Lint/format, Docker, config, Redis client, versioning |
| Database |
area:db |
Prisma models, migrations, seed, indexes |
| Auth |
area:auth |
Stellar wallet challenge/verify, JWT, middleware |
| Profiles |
area:profiles |
Creator profiles, usernames, images |
| Tips |
area:tips |
Tip feed, prepare/submit tx, aggregation |
| Indexer |
area:indexer |
Soroban event decoding & projection |
| Credit score |
area:credit |
Scoring formula, recompute, history |
| Leaderboard |
area:leaderboard |
Rankings, snapshots, caching |
| Withdrawals |
area:withdrawals |
Balances, withdraw tx, fees |
| Realtime |
area:realtime |
Socket.IO gateway, rooms, events |
| Notifications |
area:notifications |
In-app notifications + prefs |
| X integration |
area:x-integration |
Twitter metrics for credit score |
| IPFS |
area:ipfs |
Image upload + pinning |
| Jobs |
area:jobs |
BullMQ queues + scheduled jobs |
| Webhooks |
area:webhooks |
Outbound webhooks + signing |
| Analytics |
area:analytics |
Platform & creator stats |
| Search |
area:search |
Creator search & discovery |
| Goals |
area:goals |
Funding goals/campaigns |
| Subscriptions |
area:subscriptions |
Recurring tips |
| Streaks |
area:streaks |
Tipping streaks |
| Refunds |
area:refunds |
Refund requests |
| Admin |
area:admin |
Admin tooling + audit log |
| Security / Observability |
area:security, area:observability |
Rate limiting, metrics, Sentry |
Suggested order
Start with area:setup and area:db (foundations), then area:auth and area:indexer, then the feature modules in parallel.
All issues: open backend issues »
🏗️ Epic: Build the real-time off-chain backend
This is the tracking issue for building the real-time off-chain backend for Stellar Tipz: the REST API, on-chain indexer (mirrors Soroban events into PostgreSQL), credit scoring, X (Twitter) integration, IPFS media, notifications, background jobs, webhooks, analytics and a WebSocket realtime layer.
All work happens on the
test-implement-dripsbranch.How to contribute
backend(filter by anarea:*label, or bygood first issue).test-implement-dripsand open your PR againsttest-implement-drips(notmain).npm run typecheck && npm run lint && npm run testinbackend/before opening the PR.Tech stack
Node.js (TS, ESM) · Express · Prisma + PostgreSQL · Redis + BullMQ · Socket.IO ·
@stellar/stellar-sdk· Zod · Pino · Vitest.Scope — 260 atomic issues across these areas
area:setuparea:dbarea:autharea:profilesarea:tipsarea:indexerarea:creditarea:leaderboardarea:withdrawalsarea:realtimearea:notificationsarea:x-integrationarea:ipfsarea:jobsarea:webhooksarea:analyticsarea:searcharea:goalsarea:subscriptionsarea:streaksarea:refundsarea:adminarea:security,area:observabilitySuggested order
Start with
area:setupandarea:db(foundations), thenarea:authandarea:indexer, then the feature modules in parallel.All issues: open
backendissues »