Misago
A modern, feature-rich open-source forum system built with Python and Django. Supports OAuth, permissions, private threads, polls, and more.
Smart Download
Visit Project Homepage
No installer available yet — head to the source repository
A modern forum that says 'NO' to outdated conventions, packed with features and extensibility.
Core Features
- 50+ OAuth providers (Facebook, Google, GitHub, etc.)
- Unlimited category depth with permission system
- Private threads, polls, attachments, edit logs
- Moderation queue, ban system, GDPR compliance
- Custom themes and upcoming plugin system
What It Can't Do
- •Permanent beta – some features may be unstable. Windows users might encounter Docker build errors (see README). Frontend lacks test suite; modify JS at your own risk.
Use Cases
- Community forums
- Internal corporate discussion boards
- Q&A platforms
Detailed Introduction
Misago aims to be a complete and modern forum solution that challenges outdated conventions. It includes user management, OAuth login with 50+ providers, category hierarchies, markdown/BBcode editing, presence tracking, moderation tools, ban system, permission control, read tracking, private threads, polls, attachments, edit logs, moderation queue, custom themes, and GDPR compliance. Future plans include GraphQL API, plugin system, and WYSIWYM editor. Developed with Docker for easy setup, frontend uses React.
Troubleshooting & FAQ (2)
TroubleshootingHow to fix Misago leaving Django FieldFile pointers open and causing file access errors on Windows?
Upgrade Misago to a release containing PR #2224, which adds context managers so FieldFile instances are closed after reading. The fixed pattern is:
with model.file_field.open():
file_content = model.file_field.read()
Do not call model.file_field.read() without the context manager, as that can leave the file pointer open and cause file-locking errors on Windows and unnecessary resource noise on Linux.
how_toHow do I extend a Misago view from a plugin using a mixin?
Use Misago's class-extension API. Decorate a plugin mixin with @extend(TargetViewClass), then override the view method and call super() to retain the original behavior:
@extend(CategoryThreadListView)
class PluginCategoryThreadListViewMixin:
def get_context_data(self, **kwargs):
context_data = super().get_context_data(**kwargs)
context_data["top_components"].append(
{"template_name": "plugin/component.html"}
)
return context_data
This lets a plugin modify an entire extensible view instead of implementing many separate filter hooks. Ensure the overridden method accepts the same arguments as the original view method.
Tags
Getting Started
Download installer
Click the button above to download the installer for your system
Install the software
Double-click the downloaded installer and follow the prompts
Step 1: Clone repo and run ./dev init (requires Docker)
Step 2: Execute docker compose up to start dev server
Step 3: Visit http://127.0.0.1:8000/, admin at /admincp/, default credentials Admin/password
- Step 1: Clone repo and run ./dev init (requires Docker)
- Step 2: Execute docker compose up to start dev server
- Step 3: Visit http://127.0.0.1:8000/, admin at /admincp/, default credentials Admin/password
Checksum not available
This project has not published a SHA-256 checksum on its GitHub Release page
SHA256 Checksum
No checksum available
Download directly from GitHub Releases and verify file integrity yourself
All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.
Open Source Transparency
View GitHub SourceUninstall Info
Remove project directory and Docker containers. Manual cleanup needed for databases.
No Extra Dependencies
Ready to use after download. No additional runtime required.
Having issues? Check the FAQ below
2 FAQs
Similar Projects
godot
Godot Engine is a free, open-source, cross-platform 2D and 3D game engine with a unified editor. Unlike Unity or Unreal, it's entirely MIT-licensed and community-driven, offering a lightweight yet powerful node-based workflow that runs on a single executable.
Hoppscotch
Open source API development ecosystem with a lightweight, fast, and feature-rich interface for testing HTTP, WebSocket, GraphQL, and more.
lazygit
A simple terminal UI for git commands