Framefox
๐ฆ Python web framework that makes development enjoyable - FastAPI + MVC + SQLModel + Interactive CLI. Ship fast without sacrificing quality.
Install / Use
/learn @soma-smart/FramefoxREADME

๐ฆ Framefox
Swift, smart, and a bit foxy!
The Python web framework that makes development enjoyable and productive
๐ Quick Start โข ๐ Documentation โข ๐ฏ Examples โข ๐ฌ Contact โข ๐ค Contributing
</div>๐ Why Framefox?
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.
โจ What makes it special?
๐ฏ 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
Un petit mot en franรงais
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 !

๐ Quick Start
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
๐ฏ Examples
๐จ Controllers with Routes
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})
๐จ Jinja2 Templates with Built-in Functions
<!-- 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>
๐๏ธ Architecture That Scales
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.
๐ฅ Core Features
<table> <tr> <td width="50%">๐ Performance
- FastAPI foundation
- Async/await support
- Built-in template caching
- Dependency injection container
- Repository pattern for data access
๐ก๏ธ Security
- CSRF token generation
- XSS prevention in templates
- Secure session management
- User authentication system
- Role-based access control
๐งฐ Developer Experience
- Interactive CLI commands
- Component generators
- Hot reload development server
- Comprehensive error pages
- Built-in profiler and debugger
๐๏ธ Database & ORM
- SQLModel integration for type safety
- Pydantic validation everywhere
- Entity-Repository pattern
- Database migrations with Alembic
- Relationship mapping
- Query builder integration
- Multi-database support
๐ ๏ธ Interactive CLI
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
๐จ Template System
Framefox uses Jinja2 with powerful built-in functions:
๐ง Built-in Template 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
๐๏ธ Template Inheritance
<!-- 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>
๐ Learn More
| ๐ 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 |
๐ฌ Contact
<div align="center">Need help or have questions? Contact us directly!
</div>- ๐ผ Company LinkedIn: SOMA Smart
- ๐ค Rayen BOUMAZA: LinkedIn
- ๐ค Raphaรซl LEUROND: LinkedIn
- ๐ Documentation: soma-smart.github.io
๐ค Contributing
We โค๏ธ contributors! Here's how you can help:
๐ For New Contributors
- ๐ด 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
๐ฏ Good First Issues
- ๐ Improve documentation
- ๐ Fix small bugs
- โจ Add examples
- ๐งช Write tests
For any questions about contributing, feel free to contact us directly on LinkedIn!
๐ Support the Project
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! ๐
๐ Star History
<div align="center">Follow our journey and see how Framefox is growing with the community
<a href="https://www.star-history.com/#soma-smart/framefox&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=soma-smart/framefox&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=soma-smart/framefox&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=soma-smart/framefox&type=Date" /> </picture> </a>Each star motivates us to improve Framefox further! โญ
</div>๐ฃ๏ธ Roadmap
<div align="center">๐ง What's Coming Next
Framefox is actively developed with exciting features on the horizon!
</div>In Progress
- 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 wit
Related Skills
node-connect
334.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
82.3kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
82.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
334.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.

