Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol. wisp.place
1# Wisp.place 2 3Decentralized static site hosting on the AT Protocol. [https://wisp.place](https://wisp.place) 4 5## What is this? 6 7Host static sites in your AT Protocol repo, served with CDN distribution. Your PDS holds the cryptographically signed manifest and files - the source of truth. Hosting services index and serve them fast. 8 9## Quick Start 10 11```bash 12# Using the web interface 13Visit https://wisp.place and sign in 14 15# Or use the CLI 16cd cli 17cargo build --release 18./target/release/wisp-cli your-handle.bsky.social --path ./my-site --site my-site 19``` 20 21Your site appears at `https://sites.wisp.place/{your-did}/{site-name}` or your custom domain. 22 23## Architecture 24 25- **`/src`** - Main backend (OAuth, site management, custom domains) 26- **`/hosting-service`** - Microservice that serves cached sites from disk 27- **`/cli`** - Rust CLI for direct PDS uploads 28- **`/public`** - React frontend 29 30### How it works 31 321. Sites stored as `place.wisp.fs` records in your AT Protocol repo 332. Files compressed (gzip) and base64-encoded as blobs 343. Hosting service watches firehose, caches sites locally 354. Sites served via custom domains or `*.wisp.place` subdomains 36 37## Development 38 39```bash 40# Backend 41bun install 42bun run src/index.ts 43 44# Hosting service 45cd hosting-service 46cargo run 47 48# CLI 49cd cli 50cargo build 51``` 52 53## Limits 54 55- Max file size: 100MB (PDS limit) 56- Max site size: 300MB 57- Max files: 2000 58 59## Tech Stack 60 61- Backend: Bun + Elysia + PostgreSQL 62- Frontend: React 19 + Tailwind 4 + Radix UI 63- Hosting: Rust microservice 64- CLI: Rust + Jacquard (AT Protocol library) 65- Protocol: AT Protocol OAuth + custom lexicons 66 67## License 68 69MIT 70 71## Links 72 73- [AT Protocol](https://atproto.com) 74- [Jacquard Library](https://tangled.org/@nonbinary.computer/jacquard)