Serotine is a hyper-minimalist, high-privacy social protocol built on the principle of Zero-Trust Identity. It rejects centralized authentication, platform-controlled state, and metadata harvesting.
- Identity is a Key Pair: There is no "registration". Your account is an Ed25519 signing key and an ECDH encryption key generated locally in your browser sandbox.
- D1 as a Signal Neutral Relay: Cloudflare D1 is utilized solely as a message relay and WebRTC signaling buffer. It never sees your private keys or unencrypted message content.
- Ephemeral & Peer-to-Peer: We prioritize WebRTC DataChannels for direct, low-latency device-to-device communication. D1 acts only as a fallback for offline message delivery.
- Self-Destructing State: Messages are retrieved and immediately purged from the server, living only in your local browser storage (IndexedDB).
- Framework: Next.js 15+ (Forced Edge Runtime)
- Infrastructure: Cloudflare Pages + Cloudflare D1 (SQLite)
- Database: Prisma with D1 Driver Adapter
- Cryptography: Web Crypto API (AES-GCM, ECDH, Ed25519)
- Styling: Zinc-950 / Vercel Aesthetic (Tailwind CSS)
Ensure you have the Cloudflare Wrangler CLI installed.
# Push schema to local D1 (dev)
npx wrangler d1 migrations apply serotine-db --local
# Push schema to production D1
npx wrangler d1 migrations apply serotine-db --remoteThis project must be compiled for the Cloudflare Pages environment using next-on-pages.
# Compile for Edge
npx @cloudflare/next-on-pages
# Deploy to Cloudflare
npx wrangler pages deploy .vercel/output/static --project-name v0-serotineThe codebase is designed to be "Secure by Absence".
- No Cookies: We don't use sessions. Every request is signed.
- No Passwords: We use cryptographic challenges.
- Local Secret Storage: Your private keys remain in
localStorage/IndexedDBand never touch a network socket.
Built with precision. Zero Trust. Pure Privacy.