Divine Space is a MySpace-inspired video social network built on Nostr. It pairs short-form video with fully customizable profiles — bento-grid layouts, themes, profile music, a Top 8, and moods — so your page actually feels like yours. You own your identity and content; no central platform sits between you and your audience.
- Short-form video feed — browse, watch, and embed videos, with a trending leaderboard. Video and social data come from both Nostr relays and the
relay.divine.videoREST API. - MySpace-style profiles — a Top 8, profile music, mood and status, selectable themes (Scene, Y2K, Gothic, Kawaii, Neon, Retro, Space, and more), and custom CSS.
- Page Studio — a drag-and-drop bento-grid page builder (
/studio/page) plus an AI-assisted builder (/studio/ai) that helps compose and edit your page. - Direct messages — encrypted DMs over NIP-04 and NIP-17.
- Lightning zaps — send and receive zaps, with wallet support via WebLN and Nostr Wallet Connect (NWC).
- Divine Space names — claim a name/subdomain for your profile.
- Multiple accounts — sign in with multiple Nostr identities and switch between them.
Divine Space is a client-side single-page app. It has no backend of its own — state lives on Nostr relays, so profiles, videos, and social graph are portable across the wider Nostr ecosystem.
- Nostr integration uses Nostrify (
@nostrify/nostrify,@nostrify/react) andnostr-tools. By default the app connects towss://relay.divine.video,wss://relay.primal.net, andwss://relay.damus.io. - Profile customization is stored in a custom replaceable event, kind
16793, which carries the Top 8, profile music, theme, mood, status, pinned video, and other MySpace-style settings. SeeNIP.mdfor the full specification. - Media uploads go through Blossom servers.
- Data fetching and caching use TanStack Query; routing uses React Router.
The app is part of the broader Divine platform: it reads video and engagement data from the Divine video API at relay.divine.video and shares the divine.video media and relay infrastructure.
React 18, TypeScript, and Vite, with TailwindCSS and shadcn/ui (Radix UI) for the interface, react-grid-layout for bento layouts, and Zod for schema validation.
npm install
npm run devThis starts the Vite dev server. To build for production:
npm run buildTo run the full check suite — type-check, lint, unit tests (Vitest), and a production build:
npm testProduction runs on Fastly Compute. The build in compute-js/ serves the static bundle at the edge. Deploys are automated by the GitHub Actions workflow in .github/workflows/deploy.yml, which runs after the Test workflow succeeds on main (or via manual dispatch) and requires a FASTLY_API_TOKEN secret. A GitLab CI pipeline (.gitlab-ci.yml) provides an alternative Pages deployment.
AGENTS.md— project overview, architecture, and conventionsNIP.md— the custom Nostr event kind and tags this app usesdocs/— architecture notes, data model, roadmap, and implementation details
Part of Divine — your playground for human creativity · Brand guidelines