
FlexaFlow is a modern, enterprise-grade Content Management System built with Python Flask, designed for performance, security, and extensibility.
- ⚡️ Lightning Fast: Built for performance with optimized database queries
- 🔒 Enterprise Security: Two-factor authentication, CSRF protection, and more
- 📱 Mobile-First: Responsive design that works on all devices
- 🎨 Theme System: Easy-to-customize theming with Jinja2 templates
- 🔌 Custom Architecture: Extensible system for custom functionality
- 📊 Analytics: Built-in support for Google Analytics and custom tracking
-
Pages & Posts
- Create and manage static pages and dynamic blog posts
- Draft system with preview functionality
-
Rich Content Editor
- TinyMCE integration with custom plugins
- Easy image uploads
- Table management
- Embedded media support
- Advanced Media Library
- Image optimization
- Automatic thumbnail generation
- Two-Factor Authentication (2FA) ..Google Authenticator supports
- Multiple authenticator app support
- QR code / manual key entry
- Time based authentication
- Python 3.7 or higher
- pip package manager
- Virtual environment (recommended)
- SQLite, MySQL, or PostgreSQL
-
Clone the Repository
git clone https://github.com/flexaflow/flexaflow-flask.git cd flexaflow-flask
-
Set Up Virtual Environment
python -m venv venv source venv/bin/activate # On Windows: venv\\Scripts\\activate
-
Install Dependencies
pip install -r requirements.txt
-
Environment Configuration Create a .env file:
FLASK_ENV=development SECRET_KEY=your_secure_secret_key DATABASE_URL=sqlite:///cms.db UPLOAD_FOLDER=uploads MAX_CONTENT_LENGTH=16777216
-
Initialize and Run
python app.py
Visit http://localhost:5000/setup to complete installation.
├── app.py
├── data_store.py
├── requirements.txt
├── static
│ ├── flexaflow.ico
│ └── flexaflow.png
├── templates
│ ├── add_page.html
│ ├── add_post.html
│ ├── admin.html
│ ├── edit_page.html
│ ├── edit_post.html
│ ├── login.html
│ ├── media-library.html
│ ├── menu-editor.html
│ ├── page.html
│ ├── post.html
│ ├── preview.html
│ ├── settings.html
│ ├── setup_2fa.html
│ ├── setup.html
│ └── tags_and_catagories.html
├── themes
│ └── default
│ ├── functions
│ │ └── custom-function.py
│ └── templates
│ ├── 404.html
│ ├── category.html
│ ├── main
│ │ ├── contact-form.html
│ │ ├── footer.html
│ │ ├── header.html
│ │ └── master.html
│ ├── post.html
│ ├── search.html
│ ├── single-page.html
│ └── tag.html
├── uploads
│ └── thumbnails
└── utils
└── theme_loader.py
Support for multiple databases:
# SQLite (Default)
DATABASE_URL=sqlite:///cms.db
# MySQL
DATABASE_URL=mysql://user:password@localhost/dbname
# PostgreSQL
DATABASE_URL=postgresql://user:password@localhost/dbname
FlexaFlow uses a powerful theming system:
├── functions
│ └── custom-function.py
└── templates
├── 404.html
├── category.html
├── main
│ ├── contact-form.html
│ ├── footer.html
│ ├── header.html
│ └── master.html
├── post.html
├── search.html
├── single-page.html
└── tag.html
Distributed under the MIT License. See LICENSE
for more information.
FlexaFlow CMS can be deployed on various hosting platforms. Here are our recommended options:
PythonAnywhere ⭐ Best Overall
- Perfect for beginners and professionals
- Offers MySQL database included in plans
- Easy Flask deployment with web-based console
- Free tier available for testing
- Automatic SSL certificates
- Setup: Upload your code via web interface, configure WSGI file
- Great for modern deployments
- Free tier with automatic SSL
- Git-based deployments
- Built-in PostgreSQL database options
- Easy environment variable management
- Setup: Connect your GitHub repo and deploy automatically
- Enterprise-grade platform
- Extensive add-on marketplace
- Git-based deployment workflow
- PostgreSQL support via Heroku Postgres
- Setup: Use Procfile and requirements.txt for deployment
- Mashiur Rahman - Creator and lead developer of FlexaFlow CMS
- Flask - The lightweight WSGI web application framework
- SQLAlchemy - The Python SQL toolkit and ORM
- TinyMCE - The powerful rich text editor
- Bootstrap - The responsive front-end framework