unfcked

Your vibe-coded app has 47 problems.
Let's find all of them.

Actually useful. Accidentally hilarious.

proudly vibe-coded
terminal
$ npx unfcked
Project: my-app (Next.js)
Files scanned: 47
CRITICAL · Hardcoded API key in src/config.ts:12
CRITICAL · .env not in .gitignore
HIGH · Missing meta description
HIGH · No error boundary
HIGH · No loading states
MEDIUM · 3 unused dependencies
MEDIUM · Dev dependency in wrong section
LOW · 12 console.log statements
LOW · 3 TODO comments
SCORE: 34/100 NEEDS WORK
View on GitHub

Star on GitHub · Free & open source · No API keys needed · MIT License

The vibe coding wall

You prompted an AI. It built your app in 20 minutes. It looks amazing.

You show your friends. They're impressed. You feel like a 10x engineer.

Then you deploy.

And everything breaks.

Hardcoded API keys pushed to GitHub. Missing error handling that crashes on first real user. No meta tags so Google can't find you. Dependencies you never asked for inflating your bundle. The AI got you 80% there — but the last 20% is where apps go to die.

"Frustrated, currently vibe coding my friend's project since 2-3 hrs and AI not able to add single feature. Tired of giving prompts!!!!!"
— @danisshhh_h on X, March 2026

We can't fix vibe coding. But we can tell you exactly how unfcked your project is. Or isn't.

That wall is real. unfcked tells you exactly what's wrong — and fixes what it can.

What it catches

Every dumb mistake your AI pair programmer glossed over.

Critical

  • Hardcoded secrets
  • .env exposure
  • eval() usage
  • innerHTML injection
  • SQL injection

High

  • Missing meta tags
  • No error boundary
  • No loading states
  • No 404 page
  • Missing favicon

Medium

  • Unused dependencies
  • Misplaced dev deps
  • Stale lockfile

Low

  • console.log statements
  • TODO comments
  • Long files
  • Silent catches
  • any types

Hall of shame

Fictional scores. Real energy. Your project is probably somewhere in here.

23
Generic SaaS Starter
"my-saas-starter"
4
7
3
5
41
AI Chat Template
"ai-chat-template"
2
5
4
8
58
Vibe-Coded Todo
"vibe-coded-todo"
1
3
2
6
94
Hand-Crafted With Love
"hand-crafted-with-love"
0
0
1
2

Power features

Not just a linter. A fixer.

--fix

Auto-fix mode

Fixes safe issues automatically. Removes console.logs, adds .gitignore entries, cleans up deps. Shows before/after score.

34/100 → 72/100
--badge

README badge

Generate a shields.io badge for your README. Show the world your project isn't a dumpster fire.

unfcked score 92/100
--json

Machine output

Pipe it to other tools. CI/CD integration. Build dashboards. Feed it to another AI, we won't judge.

{"score": 34, "issues": 12}

The math

Start at 100. Every issue costs you.

-20
Critical
-10
High
-5
Medium
-2
Low
90-100
CERTIFIED CLEAN
70-89
LOOKING GOOD
50-69
NEEDS WORK
25-49
YIKES
0-24
DUMPSTER FIRE

Try it in your browser

Scan any public GitHub repo — or paste your package.json. No install needed.

Works with any public repo. Checks package.json, tsconfig, .gitignore, CI, and more.

Try it now

One command. Zero config. No API keys.

# scan your project
npx unfcked
# with auto-fix
npx unfcked --fix
# or clone for development
git clone https://github.com/peaktwilight/unfcked && cd unfcked && npm i && npm run build

Requires Node.js 18+ · No AI, no API keys, runs 100% locally

Dare your coworker

Think their vibe-coded project is production-ready? Let unfcked be the judge.

Dare on X

FAQ

Questions you were about to ask.

Is this free?
Yes. Open source, MIT licensed, no API keys, no accounts, free forever.
Does it send data anywhere?
No. Everything runs locally. Zero network calls. Your code never leaves your machine.
Is it just another linter?
It's a linter specifically designed for vibe-coded projects. It checks the things ESLint doesn't: missing meta tags, no error boundaries, hardcoded secrets, unused dependencies, no tests, no CI. The stuff AI forgets.
Will --fix break my code?
It only fixes safe things: .gitignore entries, moving devDeps to the right section. It won't touch your actual code. You can review changes with git diff after.
How is the score calculated?
Start at 100. Each critical issue costs 20 points, high costs 10, medium costs 5, low costs 2. Minimum is 0.
What frameworks does it support?
Auto-detects Next.js, React, Vue, Svelte, Nuxt, Node.js, and plain HTML. The checks are framework-aware.
Can I add custom checks?
Not yet, but it's on the roadmap. For now, use --json and pipe to your own scripts.
Was this tool vibe-coded?
Every single line. An AI wrote it, we shipped it, and now it judges other AI-written code. The circle of vibe is complete.