OpenForum Documentation
Welcome to OpenForum - a modern, full-featured forum application built with Next.js 15, featuring real-time discussions, comprehensive admin management, and a beautiful, responsive UI.

🌟 What is OpenForum?
OpenForum is a powerful, open-source forum solution designed for modern communities. Whether you're building a developer community, customer support forum, or educational platform, OpenForum provides all the tools you need to create engaging discussions.
✨ Key Features
🏠 Core Forum Features
- Thread Management: Create, edit, pin, lock, and organize discussion threads
- Categories: Organize discussions with customizable categories (colors & icons)
- Rich Posting: Rich text posting with editing capabilities and formatting
- Advanced Search: Search with category, author, and content filtering
- Voting System: Upvote/downvote posts similar to Reddit
- Bookmarks: Save threads and posts for later reading
- Pagination: Efficient browsing of large discussions
👥 User Management
- Multiple Authentication: Email/password, Google OAuth, GitHub OAuth
- Rich Profiles: Bio, signature, website, location, reputation system
- Role System: Admin, Moderator, User roles with granular permissions
- Two-Factor Authentication: Enhanced security with 2FA support
- Email Verification: Secure account verification with OTP
🛡️ Admin Features
- Admin Dashboard: Comprehensive overview of forum statistics and activity
- User Management: Ban users, change roles, view detailed user profiles
- Category Management: Create, edit, delete, and organize discussion categories
- Thread Moderation: Pin, lock, hide, or delete threads with moderation tools
- Reports System: Handle user reports and manage community moderation
- Analytics: Track forum growth, engagement, and user activity
🎨 Modern UI/UX
- Fully Responsive: Perfect experience on desktop, tablet, and mobile devices
- Dark/Light Mode: Theme switching with system preference detection
- Modern Components: Built with Radix UI and Tailwind CSS
- Smooth Animations: Polished interactions and transitions
- Accessibility: WCAG compliant with full keyboard navigation
⚡ Performance & Technology
- Server-Side Rendering: Fast initial page loads with Next.js 15
- Edge Caching: Optimized for global CDN delivery
- Database Optimization: Efficient queries with Drizzle ORM
- Progressive Enhancement: Works without JavaScript
- TypeScript: Full type safety and excellent developer experience
🛠️ Technology Stack
Frontend
- Next.js 15 - React framework with App Router
- TypeScript - Type safety and enhanced developer experience
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible, unstyled component primitives
- Lucide Icons - Beautiful, customizable icon library
Backend
- Next.js API Routes - Server-side logic and API endpoints
- Better Auth - Modern authentication library with multiple providers
- Drizzle ORM - Type-safe database queries and schema management
- PostgreSQL - Reliable, feature-rich database
Services
- Resend - Email delivery service for notifications
- Vercel - Deployment and hosting platform (recommended)
🚀 Quick Start
Ready to get started? Choose your path:
📖 Documentation Sections
For New Users
- Getting Started - Installation and basic setup
- Configuration - Environment and service configuration
- User Guide - How to use the forum as an end user
For Administrators
- Administration - Managing your forum
- Deployment - Hosting and production setup
- Customization - Branding and theming
For Developers
- Development - Technical architecture and contributing
- API Reference - Complete API documentation
- Database Schema - Database structure and relationships
🤝 Community & Support
- GitHub Repository - Source code and issue tracking
- Discussions - Community discussions and Q&A
- Issues - Bug reports and feature requests
- Contributing Guide - How to contribute to OpenForum
📄 License
OpenForum is released under the MIT License. You're free to use it for personal and commercial projects.
Ready to build your community? 🌟 Get started now and have your forum running in minutes!