"Wide horizontal abstract logo for a modern SaaS brand called Krowdly, a flock of stylized origami birds in flight, collectively forming the shape of the letter 'K', dynamic motion, vibrant gradient colors, minimalist vector style, flat design, clean white background, high resolution, short height, long aspect ratio" Abstract logo for Krowdly: A flock of stylized origami birds taking flight, off the top right tip of the 'K', dynamic movement, vibrant gradient, minimalist vector style 🧠 Platform Overview Your platform allows creators to: Build and manage communities. Set membership prices (free/paid). Create courses (free/paid). Upload and serve media via Backblaze B2. Create custom pages linked to navigation. Accept payments for memberships and courses through Stripe. 💸 Pricing Plans for Creators Pricing Table Feature Starter Growth Pro Price/mo $19 $49 $99 Communities 1 3 Unlimited Courses 3 10 Unlimited Members 100 1,000 Unlimited Pages 5 15 Unlimited File Storage 2 GB 10 GB 50 GB Branding Platform branding Partial white-label Full white-label Support Email only Priority Priority + Chat Analytics Basic Advanced Advanced + Funnels Stripe Fees 7% 5% 3% API Access ❌ ✅ ✅ Custom Domain ❌ ✅ ✅ 🧱 Database Schema Tables users table (for both creators and members) sql Copy Edit users ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(255) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, role ENUM('creator', 'member') NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); creator_plans table sql Copy Edit creator_plans ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, price DECIMAL(10, 2) NOT NULL, max_communities INT NOT NULL, max_courses INT NOT NULL, max_members INT NOT NULL, max_pages INT NOT NULL, max_storage_gb DECIMAL(5, 2) NOT NULL, stripe_product_id VARCHAR(255) NOT NULL, stripe_price_id VARCHAR(255) NOT NULL, stripe_fee DECIMAL(5, 2) NOT NULL ); creators table sql Copy Edit creators ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT FOREIGN KEY REFERENCES users(id), creator_plan_id INT FOREIGN KEY REFERENCES creator_plans(id), stripe_account_id VARCHAR(255), stripe_subscription_id VARCHAR(255), current_storage_used_gb DECIMAL(5, 2) DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); communities table sql Copy Edit communities ( id INT PRIMARY KEY AUTO_INCREMENT, creator_id INT FOREIGN KEY REFERENCES creators(id), title VARCHAR(255) NOT NULL, description TEXT, price DECIMAL(10, 2), is_free BOOLEAN DEFAULT FALSE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); memberships table (joins users with communities) sql Copy Edit memberships ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT FOREIGN KEY REFERENCES users(id), community_id INT FOREIGN KEY REFERENCES communities(id), stripe_subscription_id VARCHAR(255), status ENUM('active', 'canceled') DEFAULT 'active', created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); courses table sql Copy Edit courses ( id INT PRIMARY KEY AUTO_INCREMENT, creator_id INT FOREIGN KEY REFERENCES creators(id), title VARCHAR(255) NOT NULL, description TEXT, is_free BOOLEAN DEFAULT FALSE, price DECIMAL(10, 2), created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); course_lessons table sql Copy Edit course_lessons ( id INT PRIMARY KEY AUTO_INCREMENT, course_id INT FOREIGN KEY REFERENCES courses(id), title VARCHAR(255), content_url TEXT, -- URL to the media stored on Backblaze order_index INT, -- Sorting order of lessons created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); creator_pages table (custom pages creators can add) sql Copy Edit creator_pages ( id INT PRIMARY KEY AUTO_INCREMENT, creator_id INT FOREIGN KEY REFERENCES creators(id), slug VARCHAR(255) NOT NULL, title VARCHAR(255) NOT NULL, html_content TEXT, show_in_nav BOOLEAN DEFAULT FALSE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); 💳 Stripe Integration Plan Stripe Product & Plan Setup: Create 3 products in Stripe for the plans: Starter, Growth, Pro. Each plan has a unique stripe_price_id, linked to the corresponding plan’s features. Stripe Connect (Express): Onboard creators as Stripe accounts. Use Stripe Connect to manage payouts to creators (minus your platform fee). Use webhooks to detect when a subscription payment is successful, and then update creator_plan_id in your database. Handling Stripe Fees: Implement the Stripe fee logic in your backend. For each transaction: For Starter: 7% platform fee. For Growth: 5% platform fee. For Pro: 3% platform fee. Deduct the platform fee and send the remaining balance to the creator via Stripe. 💾 Backblaze B2 Integration File Storage: Store media files (e.g., videos, images) for courses and communities in Backblaze B2. Use signed URLs for secure media access, ensuring only authorized users can download/view content. Storage Limitations: Track file usage (e.g., GBs used) for each creator and enforce limits per plan (e.g., Starter gets 2GB, Growth gets 10GB). When a creator uploads a file, check if they’ve exceeded their storage limit. If so, prompt them to upgrade. 🖥️ Backend Routes User Authentication & Management POST /register – Register a new user. POST /login – Login and authenticate user. Creator Dashboard GET /creator/dashboard – Fetch creator’s communities, courses, and pages. POST /creator/community – Create a new community. POST /creator/course – Create a new course. POST /creator/page – Create a custom page. POST /creator/lesson – Add a lesson to a course. GET /creator/community/:id – View a community’s details. Community Management POST /subscribe – User subscribes to a community via Stripe checkout. GET /community/:id – View a public community’s details. GET /course/:id – View course details for authenticated members. GET /lesson/:id – Access a lesson (media stored on Backblaze). Stripe Billing & Subscription POST /checkout/session – Create Stripe Checkout session for new creator plans. POST /webhook/stripe – Handle Stripe webhooks (e.g., payment success, subscription renewal). 🎯 MVP Features Creator sign-up & login (basic email/password auth for now). Dashboard: Creators can manage their communities, courses, and pages. Subscription Management: Users can subscribe to communities via Stripe Checkout. Media Upload: Creators can upload course files, media hosted on Backblaze. Plan & Feature Restrictions: Different features based on the creator’s plan. Stripe Integration: Creators get paid, platform takes a cut based on their plan. 🚀 Deployment Plan Set up database: Implement the schema and SQL migrations. Stripe Setup: Create products, set up the API for Checkout and Connect. Backblaze Integration: Set up file storage and secure URLs for media. Backend: Develop core API routes for community creation, subscription, and Stripe webhooks. Frontend: Basic UI (e.g., login, creator dashboard, community subscription). Test: End-to-end tests (user registration, community creation, Stripe subscription). Launch: Start with a small batch of creators for beta testing.