Quick Start Guide
A step-by-step guide to get your Django boilerplate configured and running in under 10 minutes. This guide assumes basic familiarity with command line tools and Python development.
1. Prerequisites
After completing your purchase, check your email for an invitation to the private GitHub repository. This email will be sent to the address you used during the signup to this site (not the one you used on checkout). Click the invitation link to gain access to the boilerplate code.
Before proceeding, ensure you have the following tools installed on your development machine:
-
Docker - Provides containerized development environments ensuring consistency across different machines. This eliminates "works on my machine" issues.
• macOS/Windows: Docker Desktop →• Linux: Docker Engine →
- uv - Modern python package manager that replaces pip, pip-tools, pipx, poetry, pyenv, and virtualenv. It's 10-100x faster than pip. Installation guide →
- just - A simple command runner that saves you from remembering complex commands. Skip this if you plan to use Dev Containers (recommended). Install instructions →
Next, install Cookiecutter, which will help you generate a customized project from the boilerplate template:
uv tool install cookiecutter
This command uses uv to install cookiecutter globally as a tool, making it available from any directory.
2. Installation
Now let's create your project from the boilerplate template. Navigate to where you want to create your project directory and run:
uvx cookiecutter git+ssh://[email protected]/Quarkkit/quarkkit-django.git
Replace <repository_name> with the actual repository name from your invitation email.
Cookiecutter will now ask you a series of questions to customize your project. Here's what each option means and how to choose:
-
project_name
- The human-readable name of your project (e.g., "My Awesome SaaS"). This appears in the browser title and throughout your application.
-
project_slug
- A URL-safe version of your project name (e.g., "my_awesome_saas"). This becomes your main Django app name. Usually, just press Enter to accept the auto-generated default.
-
project_description
- A brief description (under 160 characters) that appears in search engine results. Make it compelling and keyword-rich for better SEO.
-
author_name
- Your name or company name. This appears in copyright notices and package metadata.
-
domain_name
- Your production domain (e.g., "myapp.com"). If you don't have one yet, use "example.com" and later search-replace it in your codebase when ready.
-
email
- The email address that will send system emails (password resets, welcome emails, etc.). Use something like "[email protected]" or "[email protected]".
-
timezone
- Your server's timezone (e.g., "UTC", "America/New_York"). This affects how dates and times are stored and displayed. UTC is recommended for global applications.
-
auth_type
- Choose how users log in: with email address (modern, recommended) or username (traditional). Email is easier for users to remember and reduces duplicate accounts.
-
static_files_storage
- Where to store CSS, JavaScript, and images. Choose "Django" for simplicity, or select a cloud provider (AWS S3, Google Cloud Storage) for production scalability and CDN benefits.
-
use_background_tasks
- Enable this if your app needs to handle time-consuming operations (sending bulk emails, processing files, API calls) without blocking the user interface. Adds Celery for task queuing.
-
mail_service
- Select your email service provider (Postmark, Mailgun, Amazon SES, etc.) for sending transactional emails. Each has different pricing and features. I recommend Postmark (not affiliated with them, but they are great).
-
ai_integration
- Choose an AI provider (OpenAI, Anthropic, Google AI) to get a pre-configured integration with example code for adding AI features to your application.
3. Configuration
After cookiecutter finishes, you'll have a fully configured Django project. Open the newly created project folder in VSCode or Cursor. The Dev Containers extension provides a consistent, pre-configured development environment with all dependencies installed.
Option A: Using Dev Container (Recommended)
1. Open project folder in VSCode/Cursor
2. Click "Reopen in Container" when prompted
3. Wait for container to build (first time only, ~2-3 minutes)
The container includes Python, PostgreSQL, Redis, and all dependencies pre-configured.
Note: Make sure ports 8000, 8025, 5432, and 6379 are free. Stop any running Docker containers or local services using these ports before starting.
Option B: Using just commands
just up # Starts all services in Docker
Not recommended since you loose the benefit of having a containerized environment and the great dev experience, like formatting, linting, etc.
Once the containers are running, your application will be available at http://localhost:8000.
Create Admin User
Create your admin account to access the Django admin panel:
Dev Container:
python manage.py createsuperuser
Just Commands:
just manage createsuperuser
Email Testing
All emails sent by your application are captured locally by Mailpit. You can view them at http://localhost:8025. This is perfect for testing registration emails, password resets, and other notifications without actually sending emails.
4. Next Steps
Configure Environment Variables
The boilerplate includes fake API keys to prevent crashes. Replace them with real ones in .envs/local/django.env
:
- • Stripe API Keys - For payment processing. Get your test keys from the Stripe dashboard.
- • PostHog Project API Key - For product analytics and user tracking. Free tier available.
- • Your chosen AI service API key (OpenAI, Anthropic, etc.) - Powers any AI features in your app.
Set Up Tailwind CSS
Tailwind CSS needs to watch your templates for style changes. In a new terminal, run:
cd static/jsutils
npm install
npm run tailwind:watch
Keep this terminal running while developing. It automatically rebuilds CSS when you change Tailwind classes.
Troubleshooting: If styles aren't updating, try: 1) Hard refresh (Ctrl+Shift+R), 2) Clear browser cache, or 3) Restart the Tailwind watcher.
Now it's your time to ship!
Your Django application is fully configured and ready for development. You now have a production-ready foundation with authentication, payments, styling, and all the essential services.
If something is not clear to you or you don't understand something related to this boilerplate, refer to the Creating Your SaaS guide for further information, or reach out for support.
Good luck! 🎉
Need Help?
If you encounter any issues during setup or have questions about the quick start process, I'm here to help!
I typically respond within 24 hours. Include details about your environment and any error messages for faster troubleshooting.