Application layer on top of qqo-opp's decentralized communication platform.
- JavaScript 77.6%
- Shell 9.2%
- HTML 8.5%
- CSS 2.5%
- Svelte 2.2%
| app | ||
| cln | ||
| docs | ||
| profiles_files | ||
| qop | ||
| references | ||
| scripts | ||
| srv | ||
| static | ||
| www | ||
| .gitignore | ||
| .gitmodules | ||
| dev-server.js | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| profiles.htm | ||
| README.md | ||
| README.pdf | ||
| svelte.config.js | ||
| tailwind.config.js | ||
| vite.config.js | ||
hippo-alpha
Application layer on top of qqo-opp's decentralized communication platform.
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | SvelteKit 2 + Svelte 5 |
| Styling | Tailwind CSS 3 |
| i18n | Custom store-based (FR + EN), auto-detected via Accept-Language |
| Backend | qqo-opp srv (Node.js/Express, KV store, IPFS proxy) |
| Storage | IPFS/Kubo 0.36 (content-addressed blob storage) |
| Dev server | Vite with HMR |
Quick Start (WSL2)
git clone https://git.b0t.pm/sid/hippo-alpha
cd hippo-alpha
npm install # SvelteKit + Tailwind
npm run setup # srv deps + seed + IPFS/Kubo (auto-installs to bin/)
Run the app
npm run dev # SvelteKit at http://localhost:5173
In another terminal, start the full qqo-opp backend (IPFS + srv + www + cln):
npm run dev:qqo
| Service | URL |
|---|---|
| hippo-alpha app | http://localhost:5173 |
| IPFS/Kubo API | http://127.0.0.1:5001 |
| qqo-opp srv | http://localhost:13116 |
| qqo-opp cln | http://localhost:8081 |
Language
The UI auto-detects from Accept-Language header (defaults to en). Switch via the dropdown in the header — preference is stored in a cookie.
Add new strings in app/lib/i18n/en.js and app/lib/i18n/fr.js.
Project Structure
hippo-alpha/
├── app/ # SvelteKit source
│ ├── app.html # HTML shell
│ ├── app.css # Tailwind directives
│ ├── hooks.server.js # Language detection
│ ├── routes/
│ │ ├── +layout.svelte # Root layout (nav, i18n switch)
│ │ ├── +layout.server.js
│ │ ├── +page.svelte # Home page
│ │ └── profiles/ # Profile manager
│ └── lib/i18n/ # Translation files (en.js, fr.js)
├── srv/ # qqo-opp server (vendored)
├── cln/ # qqo-opp client (vendored)
├── www/ # qqo-opp website (vendored)
├── qop/ # qqo-opp sysops (vendored)
├── scripts/ # Dev tooling
├── docs/ # Architecture & analysis
├── static/ # Static assets (favicon)
├── svelte.config.js
├── tailwind.config.js
├── postcss.config.js
└── vite.config.js
qqo-opp Repositories
The qqo-opp source is vendored in-tree (unmodified from upstream). .gitmodules is prepared — run scripts/convert-submodules.sh when ready to switch to git submodules.
| Dir | Source | Purpose |
|---|---|---|
srv/ |
qqo-opp/srv | Backend server |
cln/ |
qqo-opp/cln | Reference SPA client |
www/ |
qqo-opp/www | Landing page |
qop/ |
qqo-opp/qop | Deployment scripts |