Just soft launched my company's first client into production yesterday, and they made the announcement today, so I'm in the clear to talk about it.
which includes the following features:
If anyone is interested in starting a project, I'm all ears.
Media Foundry - Features
Authentication & Session Management
Login / Logout — Username + password with JWT cookie sessions
Multi-Factor Authentication (MFA) — Secondary verification step on login
Email Verification — Token-based account activation link sent on signup
Forgot Username — Recovery email with username reminder
Forgot Password / Reset Password — Time-limited reset token via email
Account Masquerade — Admins can impersonate any user for support/debugging
Account Lockout — Automatic lock after repeated failed login attempts
Session Invalidation — Force-expire all active sessions for a user
User Management
Signup (Public) — Self-service registration with email required, username availability check, and email verification
Admin User Create — Admin-only creation flow bypassing verification
Bulk CSV Import — Upload a CSV to create or update multiple users at once
User Export — Download user records with filtering
Profile View & Edit — Users manage their own name, email, address, phone, DOB, occupation, political party, avatar
Admin Profile Edit — Admins edit any user's profile, roles, entitlements, and dashboard path
Role Assignment — Assign one or more roles to a user, driving all access control
Entitlement Assignment — Grant direct content access entitlements independent of roles
Username Availability Check — Real-time availability check on the signup form
Password Change — Change password from profile edit page with strength indicator
Data Erasure Requests (GDPR) — Users request deletion; admins process and confirm
Email Unsubscribe (RFC 8058) — One-click unsubscribe via List-Unsubscribe header
Notification Preferences — Per-user toggles for email notifications, system alerts, milestone alerts, etc.
Profile Visibility Controls — Toggle public profile, online status display, tagging permission
Roles, Permissions & Access Control
Role CRUD — Create, read, update, delete named roles with display names
Permission CRUD — Create, read, update, delete granular permissions
Route Permissions — Map specific HTTP method + path pairs to required roles/permissions
RBAC Middleware — Every API route and frontend page enforces role-based access
Entitlements — Fine-grained content access grants (separate from roles)
Role/Permission/Route-Permission Export & Import — Snapshot and restore via JSON
Membership & Billing
Membership Packages — Define tiers (name, price, duration, feature list, badge)
Membership Enrollment — Track which users are enrolled in which package
Stripe Payment Processing — Accept credit/debit card payments
Payment Intents — Create Stripe PaymentIntents for one-time charges
Setup Intents — Save card on file for future billing
Webhook Processing — Handle Stripe events (charge succeeded, disputes, etc.)
Donation Processing — Accept one-time donations via the signup/donate form
Transaction Ledger — Append-only record of every payment and donation
Invoice/Receipt Email — Send donation receipts to donors via SES
Manual Billing Trigger — Admin can manually initiate a billing cycle for a user
Billing History View — Per-user billing and donation history
Video
Video Upload — Upload MP4 files directly or via pre-signed S3 URL
HLS Conversion — Convert uploaded video to adaptive-bitrate HLS for streaming
Cloudflare Stream Integration — Offload conversion to Cloudflare Stream
Bulk HLS Conversion — Batch-convert multiple videos in one operation
Video Watch Page — Authenticated video playback with HLS.js
Video Download — Permissioned download link generation
Video Clips — Extract and publish short clips from full-length videos
Video Entitlements — Restrict playback by role or entitlement
Video Watch Progress Tracking — Track per-user watch progress
Comment Gating — Only verified users can comment; unverified users see a prompt
Video Metadata CRUD — Title, description, tags, thumbnail, series, status
Video Status Workflow — Draft → Published → Unpublished
Server-Side video insertion — Automatically insert curated advertisements in live video
Automated video publishing to major video platforms (Youtube, Patreon, Rumble)
Images
Image Upload — Upload images with progress tracking
Interactive Crop Tool — Browser-based crop before saving
Auto Renditions — Generate thumbnails and variant sizes on upload
Image Metadata CRUD — Title, alt text, tags, status
Manifest Import/Export — Bulk import/export image records
Playlists
Playlist CRUD — Create, order, and delete playlists
Playlist Streaming — Stream playlist content in sequence
Video Ordering — Reorder videos within a playlist
Shows & Series
Series CRUD — Create and manage TV-style series
Series Scheduling — Set airing schedule and time slots
Series Tags — Tag series for discovery and filtering
Series Entitlements — Restrict access by role
Show Admin Panel — Admin dashboard for all shows management
Blog
Blog Post CRUD — Create, edit, publish, unpublish posts
Blog Versioning — Save draft versions before publishing
Blog Sections — Group posts into sections/categories
Public Blog Index & Post View — Reader-facing browsing and reading UI
Page Builder & Custom Pages
Drag-and-Drop Page Builder — Compose pages from reusable components
Dynamic Page Routing — Wildcard routing so any slug can serve a custom page
ETag Page Caching — HTTP-level caching for built pages
Component CRUD — Create, edit, preview, clone, delete reusable components
Component Catalog — Browse all available component types and templates
Component Export/Import — Move component definitions between environments
Campaigns
Campaign CRUD — Create and manage marketing campaigns
Campaign Analytics — Performance metrics per campaign
Donor Campaign Tracking — Associate donations with specific campaigns
Automated publishing to Social Media — Publish blog/vlog content to social media platforms automatically.
Projects
Project CRUD — Create project showcases with grid or list layout
Project Detail Pages — Public-facing project pages
Project Comments — Users comment on projects; admins moderate
Email System
Email Template CRUD — Create and manage rich HTML email templates
Template Cloning — Duplicate templates as a starting point
Immediate Send — Trigger a bulk email send immediately
Scheduled Send — Schedule bulk email for a future datetime; background poller delivers it
Recipient Roles — Target All / Free / Paid / Donors or any role combination
Send History — Audit trail of every bulk email job and its status
AWS SES Delivery — All transactional and bulk email delivered via Amazon SES
Dev/Test Mode — Test email rendering in non-production environments
Notifications
Notification Feed — Real-time per-user notification stream
Notification Templates — Define reusable notification content
Notification Dispatch — Send notifications to individual users or groups
Read/Unread Status — Mark notifications read; display unread badge count
System Events & Automation
System Event CRUD — Define named events that fire on route calls
Route-Event Mapping — Map any API route to one or more system events
Event Actions — When an event fires, automatically send emails or notifications
Export/Import — Snapshot and restore event configurations
Discord Integration
Bot Authorization (OAuth) — Authorize the Discord bot for a guild
Message Syncing — Background poller pulls Discord messages into the DB
Message Display — Show synced Discord messages on the site
User Account Linking — Link site users to their Discord identities
Calendar
Calendar CRUD — Create and manage events
Public Calendar Page — Browse upcoming events
Admin Calendar Management — Full admin control of calendar entries
Careers / Jobs
Career Listing CRUD — Post and manage job openings
Public Job Board — Visitors browse open positions
Career Embed Widget — Embed the job board on external pages
Analytics & Reporting
Event Tracking — Capture user interaction events (clicks, watches, signups)
Background Analytics Processor — 30-second polling loop that aggregates raw events into metrics
Engagement Metrics — Derived metrics from raw event data
Reports CRUD — Build custom bar and stacked-bar chart reports
Statistics — Define and display key statistics publicly or internally
Marketing Overview — Dashboard with membership, donation, and email metrics
Audit Log — Immutable record of all administrative actions
Media Library
Unified Media Dashboard — Browse and manage all videos and images in one place
Upload Interface — Single upload UI for both video and images
Conversion Monitoring — Track status of HLS conversion jobs
S3 Asset Proxy — Serve S3-hosted media with proper cache headers
Tags
Tag CRUD — Create and manage content tags
Tag Assignment — Apply tags to videos, images, series, etc.
Tag Filtering — Filter content by one or more tags
Site Configuration
Global Site Settings — Store site-wide configuration values
Secrets Management — Store and rotate API keys and secrets via admin UI
Multi-Environment Support — dev, test, softlaunch, uat, production modes
Version Endpoint — /api/version returns current build info
Health Check — /api/health for uptime monitoring
Infrastructure & Security
PostgreSQL JSONB Storage — Flexible document store with relational querying
AWS S3 — Media file storage
AWS CloudFront CDN — Edge caching for media assets
AWS SES — Transactional and bulk email
Cloudflare R2 — Alternative object storage
JWT Cookies — HTTP-only, SameSite secure session tokens
bcrypt Password Hashing — Industry-standard password storage
CORS Handling — Configurable cross-origin policy
GZIP Compression — HTTP response compression
Rate Limiting — Per-IP request throttling
Background Services — Email scheduler (60s), analytics processor (30s), Discord poller, billing poller
~100+ API endpoints · 20+ admin panels · 50+ content types · 4 background services