Overview
Sidewinder is an open-source Django starter kit designed to provide a smooth experience for developers from starting a new project to deploying it on a single Virtual Private Server (VPS). It focuses on good defaults, developer experience, and deployment. Sidewinder utilizes modern tools and libraries to enhance the development process.
Features
- Modern Python dependency manager: Sidewinder uses Poetry to manage the application's virtual environment, simplifying the dependency management process.
- Environment variable configuration: Instead of managing multiple configuration files, Sidewinder uses environment variables, making it easier to manage application configurations.
- HTMX for modern frontends: Sidewinder utilizes HTMX, a library that enables seamless front-end interactions with the back-end, enhancing the user experience.
- Email-based and 3rd party authentication: Sidewinder uses django-allauth to provide email-based and third-party authentication options.
- Customizable User model: Sidewinder allows for ultimate flexibility by providing a custom User model.
- Django REST Framework integration: Sidewinder includes Django REST Framework, offering modern API documentation, standardized error responses, and CORS configuration out of the box.
- Huey task queue: Sidewinder includes the Huey task queue, allowing developers to handle background and periodic tasks efficiently.
- State-of-the-art development tools: Sidewinder provides various development tools, including auto reloading, debugging and profiling tools, linters, and formatters, to enhance the development experience.
- Structured logging: Sidewinder enables developers to log anything they want with structured logging, helping with debugging and monitoring.
- Automated testing: With Sidewinder, developers can easily execute automated tests using the popular testing library pytest.
- Efficient test fixtures: Sidewinder provides efficient ways to write test fixtures using factoryboy and Faker, speeding up the testing process.
- Frontend end-to-end testing: Sidewinder allows developers to perform end-to-end testing of the frontend using Playwright, ensuring robustness and functionality.
- Simple VPS deployment with Ansible: Sidewinder offers a "It just works" style deployment to a VPS using Ansible, simplifying the deployment process.
- Customizable files: Sidewinder exposes all important files, allowing developers to customize and tailor the application to their needs.