Flask Vibe Tutorials
Learn Flask + PostgreSQL + Vanilla JS through practical examples
Filters
Testing Flask Routes with pytest
Write reliable tests for your Flask routes using pytest and Flask's built-in test client. Covers fixtures, test databases, JSON assertions, and mocking external APIs.
Password Reset Flow
Build a complete forgot-password flow: generate a secure time-limited token, email a reset link, validate it, and update the password safely.
Transactional Email with Resend
Send welcome emails, password resets, and notifications from Flask using the Resend API. Keep your routes thin with a reusable utils/email.py helper.
Full-Text Search with PostgreSQL
Add powerful search to your Flask app using PostgreSQL's built-in tsvector and tsquery — no Elasticsearch, no extra service, no extra cost.
Building a JSON REST API
Build a clean JSON API in Flask with consistent response envelopes, API key authentication via database lookup, and proper HTTP status codes.
Deploying Flask to Railway
Take your Flask + PostgreSQL app from localhost to a live Railway deployment. Covers Procfile, gunicorn, managed database setup, and environment variables.
Pagination: OFFSET and Cursor-Based
Add page-by-page navigation to any Flask listing with LIMIT/OFFSET, then level up to cursor-based pagination for high-performance lists that never slow down.
Localization with Flask-Babel
Translate your Flask app into multiple languages using Flask-Babel. Covers string extraction, .po files, locale detection, and a language switcher.
PostgreSQL Connection Pooling with psycopg2
Stop opening a new database connection on every request. Learn how to use psycopg2's ThreadedConnectionPool to reuse connections efficiently.
Helper Modules: Clean Routes with the OpenAI API
Keep Flask routes thin by moving business logic into utils/ helper files. Build a text summarization helper using the OpenAI API as a real example.
Background Tasks with Celery and Redis
Run slow operations (emails, AI calls, report generation) in the background without blocking your Flask responses. A complete Celery + Redis setup.
Webhook Handling: Stripe and GitHub
Receive and verify webhooks from Stripe and GitHub. Covers signature verification, idempotency, and fast response with background processing.