This directory contains the two repositories that make up the open-source Gravity Bridge UI stack:
gravity-bridge-frontend: Flutter web clientgravity-bridge-backend: TypeScript / Express API
The frontend is the browser application. It handles:
- wallet connections
- bridge UI flows
- fee and route presentation
- transaction progress and history display
Main docs:
gravity-bridge-frontend/README.mdgravity-bridge-frontend/TESTING.mdgravity-bridge-frontend/CONTRIBUTING.md
The backend provides the API consumed by the frontend. It handles:
- bridge and chain metadata
- cached data and transaction-related endpoints
- database-backed query logic
- optional scheduled import jobs
Main docs:
gravity-bridge-backend/README.mdgravity-bridge-backend/TESTING.mdgravity-bridge-backend/CONTRIBUTING.md
- Node.js
20 - Yarn
1.x - Docker with Compose support
- Flutter
3.22.0 - Chrome
Start the backend first:
cd gravity-bridge-backend
cp .env.example .env
yarn install
yarn dev:up
yarn start:devThen start the frontend:
cd ../gravity-bridge-frontend
flutter pub get
./scripts/run-local.shDefault local URLs:
- frontend:
http://localhost:8080 - backend:
http://localhost:6060
Frontend:
cd gravity-bridge-frontend
./scripts/verify.shBackend:
cd gravity-bridge-backend
yarn verifyThe current publication setup assumes:
- no runtime secrets are committed
- local development works with public or locally configured endpoints
- frontend analytics is disabled by default
- backend scheduled jobs are disabled by default in local runs
- both repos have contributor-facing setup, testing, and contribution docs
- The frontend verify path includes
flutter analyzeand the full Chrome test suite. - The backend verify path runs lint, tests, and a production build.
- Browser-wallet flows still need manual validation before release, even when the automated suite is green.
- To serve built files that are generated by running run-production.sh you could for example use python: cd build/web && python3 -m http.server 8080