The Python web framework that makes development enjoyable and productive
๐ Quick Start โข ๐ Documentation โข ๐ฏ Examples โข ๐ฌ Contact โข ๐ค Contributing
Framefox combines the speed of FastAPI with clean MVC architecture, type-safe SQLModel, robust Pydantic validation, and developer-friendly tooling. Built for developers who want to ship fast without sacrificing code quality.
๐ฏ MVC Architecture - Clean separation with Controllers, Templates, and Repositories
๐๏ธ Interactive CLI - Generate components instantly with framefox create
โก FastAPI Foundation - Built on FastAPI with async support out of the box
๐๏ธ SQLModel Integration - Type-safe database models with automatic validation
๐ Pydantic Validation - Robust data validation and serialization everywhere
๐ Security First - CSRF protection, XSS prevention, and secure authentication
๐ง Developer Friendly - Jinja2 templates, hot reload, and comprehensive debugging
๐ฑ Modern Stack - Python 3.12+, async/await, dependency injection everywhere
Framefox est bien un outils de l'hexagone ๐ซ๐ท N'hesitez pas ร communiquer avec nous directement en franรงais pour toute questions (de prรฉfรฉrence sur linkedin). Une version de la documentation en franรงais est รฉgalement prรฉvu !
Get a full web application running in 30 seconds:
# Install Framefox
pip install framefox
# Init your project
framefox init
# Start developing
framefox run
That's it! ๐ Your app is running on http://localhost:8000
from framefox.core.routing.decorator.route import Route
from framefox.core.controller.abstract_controller import AbstractController
class UserController(AbstractController):
@Route("/users", "user.index", methods=["GET"])
async def index(self):
users = await self.user_repository.find_all()
return self.render("user/index.html", {"users": users})
@Route("/users/{id}", "user.show", methods=["GET"])
async def show(self, id: int):
user = await self.user_repository.find(id)
return self.render("user/show.html", {"user": user})
<!-- templates/user/index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Users</title>
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<h1>Users</h1>
{% for user in users %}
<div class="user-card">
<h3>{{ user.name }}</h3>
<a href="{{ url_for('user.show', id=user.id) }}">View Profile</a>
</div>
{% endfor %}
</body>
</html>
my-project/
โโโ src/
โ โโโ ๐ฎ controllers/ # Handle HTTP requests and business logic
โ โโโ ๐๏ธ entity/ # Database models and entities
โ โโโ ๐ form/ # Form types and validation
โ โโโ ๐๏ธ repository/ # Data access layer
โโโ ๐จ templates/ # Jinja2 templates with template inheritance
โโโ โ๏ธ config/ # YAML configuration files
โโโ ๐ public/ # Static assets (CSS, JS, images)
โโโ ๐ main.py # Application entry point
Clean MVC separation means your code stays maintainable as your team and project grow.
|
|
Framefox includes a powerful CLI for rapid development:
# Generate components instantly
framefox create controller
framefox create entity
framefox create crud # Full CRUD with templates
# Database management
framefox database create-migration
framefox database upgrade
# Development tools
framefox run # Start development server
framefox debug router # List all routes
framefox cache clear # Clear application cache
Framefox uses Jinja2 with powerful built-in functions:
{{ url_for('route.name', param=value) }}
- Generate URLs from route names{{ asset('path/file.css') }}
- Asset management with versioning{{ csrf_token() }}
- CSRF protection{{ current_user }}
- Access authenticated user{{ get_flash_messages() }}
- Session-based notifications
<!-- base.html -->
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}My App{% endblock %}</title>
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<nav>
<!-- Navigation with authentication -->
{% if current_user %}
<span>Welcome, {{ current_user.name }}!</span>
{% endif %}
</nav>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>
๐ Resource | ๐ฏ Perfect For |
---|---|
๐ Installation Guide | Getting up and running |
๐ฎ Controllers Guide | Building your application logic |
๐จ Templates Guide | Creating beautiful views |
๐ Security Guide | Securing your application |
๐ Deployment Guide | Going to production |
- ๐ผ Company LinkedIn: SOMA Smart
- ๐ค Rayen BOUMAZA: LinkedIn
- ๐ค Raphaรซl LEUROND: LinkedIn
- ๐ Documentation: soma-smart.github.io
We โค๏ธ contributors! Here's how you can help:
- ๐ด Fork the repository
- ๐ฟ Create a feature branch:
git checkout -b feature/amazing-feature
- ๐พ Commit your changes:
git commit -m 'Add amazing feature'
- ๐ค Push to the branch:
git push origin feature/amazing-feature
- ๐ Open a Pull Request
- ๐ Improve documentation
- ๐ Fix small bugs
- โจ Add examples
- ๐งช Write tests
For any questions about contributing, feel free to contact us directly on LinkedIn!
If Framefox helps you build amazing things:
โญ Star this repository
๐ฆ Share on social media
๐ Write a blog post
๐ Share with friends
Your support means the world to us! ๐
Follow our journey and see how Framefox is growing with the community
Each star motivates us to improve Framefox further! โญ
- Advanced Testing Suite - Built-in testing utilities and fixtures (we know Framefox lack of more tests)
- Internationalization (i18n) - Multi-language support with automatic translation management
- WebSocket Support - Real-time features with integrated WebSocket handling
- Enhanced Profiler - Advanced performance monitoring and optimization tools
- Better Security control - Role Hierachy, rate limiting, Security Header configuration
- Functional Worker - Background task with a command to generation task
- โ๏ธ Cloud Deploy Tools - Built-in deployment to AWS, GCP, and Azure
- ๐จ Visual Admin Panel - Auto-generated admin interface for your models
- ๐ฑ Mobile API Generator - Automatic REST API generation for mobile apps
- ๐ Documentation complรจte en franรงais - Guide complet et tutoriels
- ๐ฅ Tutoriels vidรฉo - Sรฉrie de vidรฉos explicatives
Your feedback shapes Framefox's future! Contact us on LinkedIn to:
- ๐ก Suggest new ideas
- ๐ค Collaborate on development
- ๐งช Beta test upcoming features
- ๐ณ๏ธ Vote on priority features (maybe!)
Framefox is proudly backed by SOMA Smart, a technology company focused on data transformation and building innovative development tools.
![]() |
![]() |
---|---|
Rayen BOUMAZA | Raphaรซl LEUROND |
Framework Architect | Core Developer |
๐๏ธ Architecture & Performance | ๐ง Features & DevX |
SOMA Smart is committed to empowering developers with cutting-edge tools and frameworks. Framefox represents our vision of making Python web development more productive, secure, and enjoyable.
- ๐ Innovation-driven development approach
- ๐ง Open-source commitment and community focus
- ๐ Global team of passionate developers
- ๐ Long-term support and continuous improvement
Framefox makes Python web development enjoyable and productive.
โญ Star us on GitHub โญ
This project is licensed under the MIT License - see the LICENSE file for details.