Stellar-Promiscope / promiscope-frontend
git clone https://github.com/Stellar-Promiscope/promiscope-frontend.git
Community project accountability on Stellar: commitments, milestones, progress updates, evidence links, and community responses.
+0
stars, 24h · #39,909
+~0
stars, 7 days · #44,927
+129
stars, 30 days · #5,787
129
★ total
128
forks · 4 open issues
Star history (as recorded here)
LanguageTypeScript
License—
Created2026-10-07 (16d ago)
Last push15d ago
Watchers0
OwnerOrganization
GitHub topics
Links
README excerpt
# Promiscope Frontend — Community Project Accountability on Stellar Promiscope helps communities follow project commitments, milestones, progress updates, supporting evidence, and responses. The frontend uses Stellar SEP-10 wallet authentication to attribute publishing activity to a wallet address; project records are stored off-chain. A wallet address does not prove an organization's identity or that its claims are true. ## Architecture and tree The app is a localized Next.js application. Server and client pages live under `app/[locale]/`; same-origin API handlers live under `app/api/`. Shared interface components are in `components/`, cross-page state in `context/`, hooks in `hooks/`, and Stellar/API helpers in `lib/`. Translations are in `messages/` (`en`, `fr`, `sw`), static assets in `public/`, unit tests in `__tests__/`, and browser flows in `e2e/`. The project accountability flow uses same-origin route handlers in `app/api/community/projects/` and a SQLite record store in `lib/projectRecordStore.ts`. Authenticated writes use the app's SEP-10 wallet session. Records are off-chain; no Soroban attestations are written. The Next.js app calls the Express service in `server/` for legacy API workflows. The standalone event indexer is in `packages/indexer/`. ## How the project uses Stellar Stellar SEP-10 authenticates a connected wallet for project publishing and updates. The wallet address attributes activity to a pseudonymous account; it does not verify a person's identity or the accuracy of their claims. Project records and evidence links are stored off-chain in SQLite, and the current accountability flow does not transfer XLM or write to Soroban. A future Soroban integration could timestamp a hash of a published revision while keeping project details and evidence off-chain; that design is tracked in the contracts issue tracker and is not implemented yet. ## Configuration Copy `.env.example` to `.env.local`. Treat that file as the full environment-variable reference; values are grouped by service: | Group | Main variables | Purpose | | ---------------------- | ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- | | Stellar | `NEXT_PUBLIC_NETWORK`, `NEXT_PUBLIC_HORIZON_URL`, `NEXT_PUBLIC_SOROBAN_RPC`, `NEXT_PUBLIC_CONTRACT_ID` | Network and contract access | | API | `NEXT_PUBLIC_API_URL`, `API_URL_INTERNAL`, `BACKEND_SERVICE_TOKEN` | Browser and server-side backend connections | | Media and storage | `PINATA_API_KEY`, `PINATA_SECRET`, `UPSTASH_REDIS_REST_URL`, `UPSTASH_REDIS_REST_TOKEN` | Uploads, rate limits, and resumable uploads | | Records and operations | `PROJECT_RECORDS_DB_PATH`, `SENTRY_DSN`, `CRON_SECRET`, `SESSION_SECRET` | Durable project data, monitoring, and protected server functions | Keep secrets server-side: never expose them through `NEXT_PUBLIC_` variables. Local development can leave optional integrations bla