Skip to content
@divinevideo

Divine

Your playground for human creativity. Six-second looping videos, built on Nostr — no AI slop.

Divine

Welcome Home.

Divine is bringing back the six-second videos that shaped internet culture — on a new protocol where creators own what they make and everyone has more say over their feeds. It's your playground for human creativity and connection, in all its weird, wonderful, technicolor glory.

We've brought 2.1 million Vines back to life from the original archives, and we're building the place where the next ones get made. No algorithms deciding what you see. No AI slop. Just quick bursts of real human creativity.

What We Stand For

  • No slop. All human. Our systems are designed to catch and remove machine-generated content, and our community flags what slips through. We might not catch it all, but we're committed to keeping Divine as human-only as possible.
  • Own what you make. Choose what you see. Divine is built on Nostr, a decentralized social protocol. Your identity, your content, and your followers are yours — they work across the whole Nostr ecosystem, not just our apps.
  • Joy scrolling > doom scrolling. Feeds shaped by your curiosity, not an ad-driven black box. We're building "choose your experience" algorithms so your feed works for you.
  • Community-built. Everything here is open source. We're a band of thoughtful rascals building this with and for the community — and we'd love your help.

The Code

Everything below is open source and open to contributions.

Apps

RepositoryStackDescription
divine-webReact + TypeScript + ViteThe Divine web app at divine.video
divine-mobileFlutterNative iOS and Android apps
divine-spaceReact + TypeScript + ViteMySpace-inspired video social network on Nostr
divine-relay-managerReact + TypeScript + ViteNostr relay management dashboard

Core Services

RepositoryStackDescription
keycastRust / AxumOAuth 2.0 + NIP-46 remote signing + UCAN tokens (login.divine.video)
divine-loginTypeScriptOAuth client for Keycast authentication and Nostr signing
divine-signerNostr event signing service
divine-blossomRust / Fastly ComputeContent-addressed media storage via the Blossom protocol (media.divine.video)
divine-upload-serverResumable upload data plane for Divine's Blossom storage
divine-relay-syncRustSync Nostr events between relays using NIP-77 negentropy
divine-push-servicePush notifications for the mobile app
divine-badgesCloudflare Worker + D1Diviner of the Day/Week/Month — automated NIP-58 creator badges
divine-crosposterCloudflare WorkerOpt-in crossposting of Divine videos to other platforms
divine-clipsClipping marketplace for distributing Divine videos across social platforms

Keeping It Human (Trust & Safety)

RepositoryStackDescription
divine-moderation-serviceCloudflare WorkerHuman-in-the-loop content moderation — NSFW, violence, AI-generated, and deepfake detection
divine-moderation-apiCloudflare WorkerPublic API for content moderation — queue producer + status checker
divine-realnessMulti-provider deepfake detection for Nostr video events
ospreyRustHigh-performance safety rules engine for real-time event processing
coopOnline safety dashboard — queues, routing, and enforcement rules
social-media-age-rules-dbGlobal social media age regulations database

Edge & Infrastructure

RepositoryStackDescription
divine-routerRust / Fastly ComputeEdge router for divine.video subdomains
divine-name-serverCloudflare WorkerNIP-05 name server
divine-name-syncNIP-05 name synchronization
divine-rest-gatewayCloudflare WorkerREST API caching proxy for Nostr
divine-identify-verification-serviceCloudflare WorkerIdentity and verification service
divine-skyDivine sky services
divine-github-actionsGitHub ActionsReusable CI/CD workflows for Divine repositories

Libraries & SDKs

RepositoryStackDescription
keycast_flutter_demoFlutter / DartKeycast Flutter library and demo app for OAuth + PKCE + BYOK Nostr signing
c2pa-flutterFlutter / DartFlutter wrapper for the official C2PA mobile SDKs
c2pa-rsRustFork of the C2PA Rust SDK for content provenance and authenticity
media-kitFlutter / DartFork of the cross-platform video & audio player for Flutter

Brand

RepositoryDescription
brand-guidelinesDivine brand DNA, tone of voice, and visual identity

How It Works

Nostr Protocol

Nostr (Notes and Other Stuff Transmitted by Relays) is a simple, open protocol for decentralized social networking. Here's how Divine uses it:

  • Identity: You have a cryptographic keypair. Your public key is your identity, and you sign all your content with your private key. No email, no phone number, no company owns your account.

  • Content: Videos are published as Nostr events (kind 34236) containing metadata and links to the actual video files. These events are signed and can be verified by anyone.

  • Social Graph: Follows, likes, reposts, and comments are all Nostr events. Your social connections aren't locked into Divine — they work across the entire Nostr ecosystem.

  • Relays: Content is stored on relays — servers that accept and serve Nostr events. You can use any relay, run your own, or use multiple for redundancy.

Blossom (Media Storage)

Blossom is a protocol for decentralized media storage that complements Nostr. Since Nostr events are lightweight (just JSON), large files like videos are stored separately:

  • Videos are uploaded to Blossom servers and addressed by their SHA-256 hash
  • The hash is included in the Nostr event, linking the metadata to the media
  • Multiple Blossom servers can host the same file, providing redundancy
  • Anyone can verify file integrity by checking the hash

This separation keeps Nostr relays fast while enabling rich media content.

C2PA Content Credentials

Divine integrates C2PA (Coalition for Content Provenance and Authenticity) to verify where media comes from — one of the tools we use to detect AI-generated and manipulated content and keep the playground human.

Keycast (Authentication & Signing)

Keycast provides OAuth 2.0 authentication with NIP-46 remote signing, so you can log in and sign Nostr events without ever exposing your private keys. It issues UCAN tokens for cross-service authorization.

Contributing

We're building this together, and we'd love your help — bug fixes, features, docs, or just telling us what's broken.

  1. Find an issue — Check the issues tab in any repository, or open a new one
  2. Fork & clone — Fork the repo and clone it locally
  3. Create a branch — Make your changes in a feature branch
  4. Submit a PR — Open a pull request with a clear description

Development Setup

divine-web:

git clone https://github.com/divinevideo/divine-web
cd divine-web
npm install
npm run dev

divine-mobile:

git clone https://github.com/divinevideo/divine-mobile
cd divine-mobile
flutter pub get
flutter run

Rust services (keycast, divine-blossom, etc.):

git clone https://github.com/divinevideo/<repo-name>cd<repo-name>
cargo build

Community

License

All Divine repositories are open source. Check individual repositories for specific license information.


Creative power belongs in human hands. Divine is part of the broader movement to build a more open, decentralized internet — we believe social media should be a protocol, not a platform.

Popular repositories Loading

  1. divine-mobile divine-mobilePublic

    Dart 262 52

  2. divine-web divine-webPublic

    TypeScript 46 28

  3. divine-moderation-service divine-moderation-servicePublic

    Human in the loop content moderation service for diVine video platform - detects NSFW, violence, AI-generated content, and deepfakes

    JavaScript 6 4

  4. keycast keycastPublic

    Rust 5 4

  5. divine-blossom divine-blossomPublic

    Divine Blossom - Video hosting service

    Rust 5 4

  6. divine-name-server divine-name-serverPublic

    TypeScript 4 5

Repositories

Showing 10 of 39 repositories

Top languages

Loading…

Most used topics

Loading…