I Stopped Writing Code. Here's What I Do Instead (Vibe Coding in 2025)

Published: (December 18, 2025 at 04:37 PM EST)
4 min read
Source: Dev.to

Source: Dev.to

What is Vibe Coding?

The term was coined by Andrej Karpathy (yes, the Tesla AI guy) in early 2025:

“It’s not really coding — I just see stuff, say stuff, run stuff, and copy‑paste stuff, and it mostly works.”

Instead of writing code line‑by‑line, you:

  1. Describe what you want in plain English
  2. Let AI generate the code
  3. Run it and see what happens
  4. Paste errors back to the AI to fix

That’s the whole workflow.

Why Should You Care?

According to JetBrains’ 2025 developer survey:

  • 85 % of developers now use AI tools regularly
  • 62 % rely on at least one AI coding assistant
  • Developers save 1–8+ hours per week

This isn’t a fad. It’s the new normal.

Free Tools to Start Vibe Coding Today (No Credit Card Needed)

You don’t need to spend a dime to get started. Here are completely free options:

ToolWhat It DoesWhy It’s Great
CursorAI‑powered IDEFree tier with 2 000 completions/month
CodeiumCode autocomplete100 % free, unlimited, no catch
Continue.devOpen‑source AI assistantFree forever, works with VS Code
AiderTerminal AI pair programmerFree & open source
Claude.aiChat‑based coding helpFree tier available
ChatGPTGeneral AI codingFree tier available
GitHub CopilotInline suggestionsFree for students & open‑source maintainers

My recommendation for beginners: start with Codeium (unlimited free) + Claude.ai (for complex questions). Zero cost, full power.

Once you’re comfortable, these tools are worth the investment:

ToolCostBest For
[Insert paid tool name]$X/monthSpecific use‑case

But seriously, the free tools are incredibly capable. I used only free tools for my first 6 months of vibe coding.

Real Example: Building a URL Shortener in 10 Minutes

Prompt I gave Claude (free tier):

Create a FastAPI URL shortener with:

  • POST /shorten – accepts a URL, returns a short code
  • GET /{code} – redirects to the original URL
  • SQLite storage
  • Rate limiting (10 req/min per IP)

AI‑generated (working) code:

from fastapi import FastAPI, HTTPException, Request
from fastapi.responses import RedirectResponse
from slowapi import Limiter
from slowapi.util import get_remote_address
import sqlite3
import string
import random

app = FastAPI()
limiter = Limiter(key_func=get_remote_address)

def init_db():
    conn = sqlite3.connect("urls.db")
    conn.execute("""
        CREATE TABLE IF NOT EXISTS urls (
            code TEXT PRIMARY KEY,
            url TEXT NOT NULL
        )
    """)
    return conn

@app.post("/shorten")
@limiter.limit("10/minute")
async def shorten(request: Request, url: str):
    conn = init_db()
    code = ''.join(random.choices(string.ascii_letters, k=6))
    conn.execute("INSERT INTO urls VALUES (?, ?)", (code, url))
    conn.commit()
    return {"short_url": f"http://localhost:8000/{code}"}

@app.get("/{code}")
async def redirect(code: str):
    conn = init_db()
    result = conn.execute(
        "SELECT url FROM urls WHERE code = ?", (code,)
    ).fetchone()
    if not result:
        raise HTTPException(404, "Not found")
    return RedirectResponse(result[0])

Ran it. Worked on the first try. 10 minutes including testing. Cost: $0.

The Prompting Secret Nobody Talks About

  • Bad prompt: vague, missing constraints
  • Good prompt: specific, includes exact requirements (e.g., “Add/delete/toggle todos, LocalStorage persistence, filter: all/active/completed, Tailwind CSS styling, responsive design”)

The difference? Specificity. The more constraints you give, the better the output—think of it like giving directions: “go somewhere nice” vs. “go to the Italian restaurant on 5th Street.”

When Vibe Coding Fails

It’s not magic. It struggles with:

  • Complex algorithms – AI may produce O(n²) when O(n) exists
  • Security‑critical code – always review auth/crypto manually
  • Large codebase refactors – context‑window limits hurt
  • Highly custom business logic – AI doesn’t know your domain

I still write code manually for ~30 % of my work. The 70 % automation? A game changer.

How to Start Today (5‑Minute Setup)

Option A: Browser Only (Easiest)

  1. Go to or
  2. Describe what you want to build
  3. Copy the code, run locally

Option B: IDE Integration (Better)

  1. Install VS Code
  2. Add the free Codeium extension ()
  3. Start typing — AI suggests completions

Option C: Full Vibe Coding Setup (Best)

  1. Install Cursor (free tier)
  2. Open any project
  3. Press Cmd+K / Ctrl+K
  4. Type what you want in English, hit Enter, and watch

Start with small tasks:

  • “Add a loading spinner to this button”
  • “Convert this function to async/await”
  • “Write tests for this module”

Build confidence, then go bigger.

The Future Is Conversational

In five years I believe:

  • Junior dev interviews will test prompting skills
  • “Vibe coder” will be a real job title
  • Writing code manually will feel like writing assembly

Developers who adapt now will have a massive advantage.


Want more developer tutorials?
I write in‑depth guides on AI, Python, and modern development at — practical tutorials from engineers who actually ship products.

What’s your experience with AI coding tools? Drop a comment — I reply to everyone.

Back to Blog

Related posts

Read more »