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.
Summary
Sidewinder is an open-source Django starter kit that aims to streamline the development process and deployment of Django projects. It offers various features, including modern dependency management, environment variable configuration, integration with modern front-end libraries, user authentication options, Django REST Framework integration, task queue support, state-of-the-art development tools, logging capabilities, automated testing, and convenient deployment to a VPS using Ansible. With Sidewinder, developers can leverage these features and customize the application to suit their specific needs.