forked from
nekomimi.pet/wisp.place-monorepo
Monorepo for Wisp.place. A static site hosting service built on top of the AT Protocol.
1 Wisp.place - Decentralized Static Site Hosting
2
3 Architecture Overview
4
5 Wisp.Place a two-service application that provides static site hosting on the AT
6 Protocol. Wisp aims to be a CDN for static sites where the content is ultimately owned by the user at their repo. The microservice is responsbile for injesting firehose events and serving a on-disk cache of the latest site files.
7
8 Service 1: Main App (Port 8000, Bun runtime, elysia.js)
9 - User-facing editor and API
10 - OAuth authentication (AT Protocol)
11 - File upload processing (gzip + base64 encoding)
12 - Domain management (subdomains + custom domains)
13 - DNS verification worker
14 - React frontend
15
16 Service 2: Hosting Service (Port 3001, Node.js runtime, hono.js)
17 - AT Protocol Firehose listener for real-time updates
18 - Serves hosted websites from local cache
19 - Multi-domain routing (custom domains, wisp.place subdomains, sites subdomain)
20 - Distributed locking for multi-instance coordination
21
22 Tech Stack
23
24 - Backend: Bun/Node.js, Elysia.js, PostgreSQL, AT Protocol SDK
25 - Frontend: React 19, Tailwind CSS v4, Shadcn UI
26
27 Key Features
28
29 - AT Protocol Integration: Sites stored as place.wisp.fs records in user repos
30 - File Processing: Validates, compresses (gzip), encodes (base64), uploads to user's PDS
31 - Domain Management: wisp.place subdomains + custom BYOD domains with DNS verification
32 - Real-time Sync: Firehose worker listens for site updates and caches files locally
33 - Atomic Updates: Safe cache swapping without downtime