Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 5 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
# Vortex Experimental Mockups
# Vortex Simulator — Web

This repo ships:
This repo contains the **frontend UI only** for the Vortex Simulator.

1. A React UI mockup of Vortex (Humanode governance hub)
2. An off-chain “simulation backend” served from `/api/*` (API handlers)
Backend API lives separately in `humanode-network/vortex-simulator-server`.

Humanode mainnet is used only as a read-only eligibility gate; all simulated governance state lives off-chain.
Docs live separately in `humanode-network/vortex-simulator-docs`.

## Stack

- React with React Router
- Rsbuild
- Tailwind v4 (via PostCSS) + token-driven CSS (`src/styles/base.css`)
- Yarn (Node version: `.node-version`)
- API handlers in `api/` + Postgres via Drizzle
- `db/` – Drizzle schema + migrations + seed builders
- `scripts/` – DB seed/clear + local API runner
- `prolog/vortexopedia.pl` – Prolog glossary mirror
- `public/landing/` – landing page assets (see `public/landing/README.md`)

## Shared Patterns
Expand All @@ -28,5 +23,4 @@ Humanode mainnet is used only as a read-only eligibility gate; all simulated gov
## Notes

- `dist/` is generated build output.
- Keep glossary entries in sync between `src/data/vortexopedia.ts` and `prolog/vortexopedia.pl` if you edit definitions.
- DB-backed dev requires `DATABASE_URL` + `yarn db:migrate && yarn db:seed` (see `docs/simulation/vortex-simulation-local-dev.md`).
- UI expects the API at `/api/*`. During local dev, Rsbuild proxies `/api/*` to `http://127.0.0.1:8788` by default (override with `API_PROXY_TARGET`).
9 changes: 0 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,20 @@
"packageManager": "yarn@4.11.0",
"scripts": {
"dev": "rsbuild dev --open",
"dev:api": "node --experimental-transform-types scripts/dev-api-node.mjs",
"dev:full": "node scripts/dev-full.mjs",
"build": "rsbuild build",
"preview": "rsbuild preview",
"typecheck": "tsc -p tsconfig.json --noEmit",
"test": "yarn typecheck && yarn build",
"db:generate": "drizzle-kit generate",
"db:migrate": "drizzle-kit migrate",
"db:clear": "node --experimental-transform-types scripts/db-clear.ts",
"db:seed": "node --experimental-transform-types scripts/db-seed.ts",
"prettier:check": "prettier --list-different .",
"prettier:fix": "prettier --write ."
},
"dependencies": {
"@neondatabase/serverless": "^1.0.2",
"@polkadot/keyring": "^14.0.1",
"@polkadot/util": "^14.0.1",
"@polkadot/util-crypto": "^14.0.1",
"@radix-ui/react-slot": "^1.2.4",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"drizzle-orm": "^0.45.1",
"lucide-react": "^0.554.0",
"react": "^19.2.0",
"react-dom": "^19.2.0",
Expand All @@ -41,7 +33,6 @@
"@tailwindcss/postcss": "^4.1.17",
"@types/react": "^19.2.5",
"@types/react-dom": "^19.2.3",
"drizzle-kit": "^0.31.8",
"prettier": "^3.6.2",
"prettier-plugin-tailwindcss": "^0.7.1",
"tailwindcss": "^4.1.17",
Expand Down
4 changes: 2 additions & 2 deletions src/app/auth/connectErrors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ export function formatAuthConnectError(input: { message: string }): string {
const message = input.message;

if (message.includes("HTTP 404")) {
return "API is not available at `/api/*`. Start the backend with `yarn dev:api` (after `yarn build`) or run `yarn dev:full`. If you only run `yarn dev`, there is no API.";
return "API is not available at `/api/*`. Start `vortex-simulator-server` (default `http://127.0.0.1:8788`) and ensure the web dev proxy targets it (override with `API_PROXY_TARGET`).";
}

if (
Expand All @@ -12,7 +12,7 @@ export function formatAuthConnectError(input: { message: string }): string {
message.includes("ECONNREFUSED") ||
message.includes("ECONNRESET")
) {
return "API is not reachable at `/api/*`. If you are running locally, start the backend with `yarn dev:api` (after `yarn build`) or run `yarn dev:full`. If you are on a deployed site, check that the backend is deployed and `/api/health` responds.";
return "API is not reachable at `/api/*`. If you are running locally, start `vortex-simulator-server` and verify `/api/health` responds. If deployed, check the API service and reverse proxy.";
}

return message;
Expand Down
Loading