Skip to content

Dragverse/miss-understood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

755 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎭 Dragverse

Where Drag Comes to Play - A decentralized video streaming platform built for drag artists and their communities.

✨ Features

πŸŽ₯ Video Streaming

  • Snapshots (Dragverse TV): Auto-playing broadcast of vertical (9:16) and 4:5 short-form content
  • Long-form content: Horizontal videos from 1 to 60 minutes
  • Livepeer-powered: High-quality video transcoding and HLS streaming
  • Audio uploads: Podcasts and music via Supabase Storage
  • Multi-bitrate support: Adaptive streaming for all devices (720p, 480p, 360p)

πŸ“‘ Livestreaming

  • Creator livestreams: Any creator can start their own stream with OBS/Streamyard
  • Official Dragverse stream: Featured on homepage with real-time status detection
  • RTMP ingest: Professional streaming setup with stream keys
  • Live status detection: Backend API checks stream status every 30 seconds

πŸ’° Monetization

  • Crypto tipping: ETH and USDC tips on Base Network
  • Fiat payments: Stripe integration (coming soon)
  • Creator dashboard: Track earnings, views, likes, and engagement
  • Direct transfers: No middleman - tips go directly to creators

πŸ” Authentication

  • Privy Auth: Email, Google, and Farcaster login
  • Web3 wallets: MetaMask, WalletConnect, Coinbase Wallet
  • Decentralized identity: DID-based user profiles

πŸ“Š Creator Tools

  • Dashboard: Analytics, earnings, and content management
  • Upload validation: Automatic duration and file size checks
  • Video management: Edit metadata, view stats, delete content
  • Earnings tracking: Combined crypto + fiat revenue display

🌐 Social Features

  • Hall of Fame: Top creators leaderboard
  • Notifications: Real-time alerts for tips, likes, comments, follows
  • Follow system: Build your audience
  • Comments & likes: Engage with content
  • Profile sharing: Share profiles to Threads, Bluesky, Farcaster, Lens, Twitter/X, WhatsApp
  • Feed: Aggregated content from Dragverse creators, YouTube, and Bluesky

🎨 UI/UX

  • Dark theme: Purple gradient brand colors (#EB83EA, #7c3aed)
  • Responsive design: Mobile-first, works on all devices
  • Smooth animations: Polished transitions and interactions
  • Hero slider: Featured content carousel on homepage

πŸ—οΈ Tech Stack

Frontend

  • Next.js 16.1.2: App Router, React Server Components, Turbopack
  • React 19: Latest features and performance improvements
  • TypeScript: Full type safety
  • Tailwind CSS: Utility-first styling
  • React Hot Toast: Beautiful notifications

Video & Media Infrastructure

  • Livepeer Studio: Video transcoding, streaming, and livestream management
  • Supabase Storage: Audio file hosting (podcasts, music)
  • HLS streaming: HTTP Live Streaming protocol
  • TUS protocol: Resumable video uploads

Authentication & Identity

  • Privy: Authentication provider (email, social, wallet)
  • Ceramic Network: Decentralized data storage (configured but not yet deployed)
  • ComposeDB: GraphQL schemas for user data

Blockchain

  • Base Network: Layer 2 Ethereum (low fees, fast transactions)
  • Wagmi: React hooks for Ethereum (integration ready)
  • Viem: TypeScript Ethereum library

Database & Backend

  • Supabase: PostgreSQL database with Row Level Security
  • YouTube RSS: Curated drag content aggregation (music playlists)

Future Integrations

  • Stripe: Fiat payment processing
  • Lens Protocol: Social media cross-posting
  • Ghost/Substack: Creator blogging

πŸš€ Getting Started

Prerequisites

Installation

  1. Clone the repository
git clone https://github.com/yourusername/dragverse-salti.git
cd dragverse-salti
  1. Install dependencies
npm install
  1. Set up environment variables
cp .env.example .env.local

Edit .env.local and add your API keys:

# Authentication (PUBLIC)
NEXT_PUBLIC_PRIVY_APP_ID=your_privy_app_id

# Livepeer (PRIVATE - server-only)
LIVEPEER_API_KEY=your_livepeer_api_key

# Ceramic (PRIVATE - optional for now)
CERAMIC_URL=https://ceramic-clay.3boxlabs.com
CERAMIC_ADMIN_SEED=your_ceramic_seed
  1. Run the development server
npm run dev
  1. Open your browser Navigate to http://localhost:3000

πŸ“ Project Structure

dragverse-salti/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ (platform)/          # Authenticated routes
β”‚   β”‚   β”‚   β”œβ”€β”€ dashboard/       # Creator dashboard
β”‚   β”‚   β”‚   β”œβ”€β”€ live/            # Livestream creation
β”‚   β”‚   β”‚   β”œβ”€β”€ notifications/   # Notification center
β”‚   β”‚   β”‚   β”œβ”€β”€ upload/          # Video upload
β”‚   β”‚   β”‚   β”œβ”€β”€ watch/[id]/      # Video player
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   └── api/                 # Backend API routes
β”‚   β”‚       β”œβ”€β”€ stream/          # Livestream APIs
β”‚   β”‚       β”œβ”€β”€ tips/            # Tipping APIs
β”‚   β”‚       β”œβ”€β”€ upload/          # Upload APIs
β”‚   β”‚       └── video/           # Video metadata APIs
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ home/                # Homepage components
β”‚   β”‚   β”œβ”€β”€ layout/              # Navigation, sidebar
β”‚   β”‚   β”œβ”€β”€ video/               # Video player, tip modal
β”‚   β”‚   └── dashboard/           # Dashboard components
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ ceramic/             # Ceramic/ComposeDB schemas
β”‚   β”‚   β”œβ”€β”€ livepeer/            # Livepeer utilities
β”‚   β”‚   β”œβ”€β”€ privy/               # Auth hooks
β”‚   β”‚   └── store/               # State management
β”‚   └── styles/
β”‚       └── globals.css          # Global styles
β”œβ”€β”€ composites/                  # Ceramic GraphQL schemas
β”œβ”€β”€ public/                      # Static assets
└── scripts/
    └── setup-ceramic.sh         # Ceramic deployment script

πŸ”‘ Environment Variables

Public Variables (Client-side)

These are prefixed with NEXT_PUBLIC_ and are visible to the browser:

  • NEXT_PUBLIC_PRIVY_APP_ID: Your Privy application ID

Private Variables (Server-only)

These are NOT prefixed and only available server-side:

  • LIVEPEER_API_KEY: Livepeer Studio API key
  • CERAMIC_URL: Ceramic network endpoint (optional)
  • CERAMIC_ADMIN_SEED: Ceramic admin seed (optional)

⚠️ Security Note: Never add NEXT_PUBLIC_ prefix to sensitive API keys!

πŸ“ Development Commands

# Development
npm run dev              # Start dev server with Turbopack
npm run build            # Build for production
npm run start            # Start production server
npm run lint             # Run ESLint

# Ceramic (when ready)
npm run ceramic:setup    # Deploy Ceramic schemas

🀝 Contributing

We welcome contributions! Please follow these guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

MIT License

πŸ™ Acknowledgments

  • Livepeer: Video infrastructure and livestreaming
  • Privy: Authentication and wallet management
  • Ceramic Network: Decentralized data storage
  • Next.js: Framework and tooling

Built with ❀️ by the Dragverse team

Where Drag Comes to Play 🎭✨

About

A new version of the Dragverse named after Miss Understood - A New York City-based queen who frequently performed at the Pyramid Club and Wigstock, and appeared in films including "To Wong Foo" and "Sex and the City" 2.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors