The Flask Vibe
Manifesto

Our principles for building software in the age of AI-assisted development

We believe in simplicity, transparency, and performance.

The web development world has become addicted to complexity. Frameworks promise productivity but deliver dependency hell. ORMs promise abstraction but hide what's actually happening. Build tools promise optimization but take 10 minutes to compile.

This ends now.

With AI assistants like Claude, ChatGPT, and Copilot, the game has changed. In 2026, AI writes half your code. And AI writes better code when the stack is simple, direct, and transparent.

Flask Vibe is our answer. Here are our principles.

1. Simplicity Over Complexity

Principle: Choose the simplest solution that solves the problem. Add complexity only when absolutely necessary.

This means:

  • Flask over Django (with AI, custom admin panels take hours not days)
  • Raw SQL over ORM (transparency beats magic)
  • Vanilla JS over React (no build step, no hydration)
  • PostgreSQL over MongoDB (structured beats schemaless for 80% of apps)
  • Compiled Tailwind CSS (no CDN script, no PostCSS build step)

When you open a Flask Vibe project, you can understand the entire architecture in 5 minutes. No webpack config. No babel plugins. No mysterious hooks. Just routes, templates, and queries.

Want the full code comparison between Flask and Next.js? See Flask vs Next.js side by side →

2. Performance Over Convenience

Principle: Real users experience performance, not developer convenience. Optimize for user experience first.

The Cost of Convenience:

  • React: 2MB JavaScript bundle. 1-3s time-to-interactive on 3G.
  • Next.js: Server rendering + client hydration = double the work.
  • ORMs: Hidden N+1 queries that destroy database performance.
  • Build tools: 10-minute CI/CD pipelines for a 5-line change.

Flask serves HTML in milliseconds. No JavaScript required means instant page loads. Raw SQL means you write the exact query you need—no hidden joins, no lazy loading gotchas.

Verified Benchmark Results (Lighthouse 12, same SaaS dashboard app)

Next.js 14:

  • • 95 KB JS bundle (split)
  • • LCP: 1.66s (hydration cost)
  • • TTI: 1.66s
  • • Lighthouse: 100

Flask:

  • • 0 KB JS bundle
  • • LCP: 905ms (no hydration)
  • • TTI: 905ms
  • • Lighthouse: 100

Both hit 100/100. Flask's LCP is 1.8× faster — a structural gap that can't be tuned away. Full methodology →

3. Transparency Over Magic

Principle: You should always know what's happening under the hood. Magic is debugging hell.

Magic vs Transparency:

ORM Magic (SQLAlchemy)

user = User.query.filter_by(email=email).first()
# What query is this? How many JOINs?
# Are indexes used? Who knows!

Transparent SQL (psycopg2)

cur.execute("""
    SELECT * FROM users
    WHERE email = %s
    LIMIT 1
""", (email,))
user = cur.fetchone()
# Crystal clear. Uses email index. One query.

When something breaks, you can find it in 30 seconds. No source maps. No transpiled code. No framework internals to understand. Just your code, doing exactly what you told it to do.

4. AI-Friendly Over Developer-Friendly

Principle: In 2026, AI writes half your code. Optimize for what AI does well.

AI Coding Reality:

  • ✅ AI is excellent at: Writing SQL, generating HTML, creating vanilla JS, structuring Flask routes
  • ❌ AI struggles with: React hooks, ORM query builders, TypeScript generics, webpack configs

Simple, explicit code is easier to generate and easier to verify. When Claude writes a psycopg2 query, you can read it and know it's correct. When Claude writes SQLAlchemy, you need to test it to see what SQL was generated.

The AI Prompt Test

Compare these prompts:

❌ Complex Stack (30% first-try rate for this prompt)

"Create a Next.js API route that fetches users from Prisma ORM with their posts, using React Query on the frontend with optimistic updates."

For standard Next.js CRUD without React Query, first-try rate is ~45%. Complexity compounds quickly.

✅ Simple Stack (95% first-try rate)

"Create a Flask route that selects users and their posts from PostgreSQL using psycopg2. Return JSON."

With Flask Vibe, AI generates working code on the first try.

Join the Movement

We're developers who choose simplicity, transparency, and performance. We're not bashing Next.js—we're defending a different path.

10×

Faster Dev Loop*

95%

AI Success Rate*

5min

Time to Understand*

* Based on my own experience across personal projects — not a controlled study.