Me almost ready. Reviews open soon. Sign in and we’ll email you once when they do.

The second opinion for people building apps with AI

Me make app. App work. Me code good?

You don't need to understand every line. But a working app deserves a second look.

MeCodeGood is an automated code review. It reads your app's code, flags potential problems, and explains what to fix first, with clear instructions to take back to your AI coding tool.

Reviews open soon. First code review free for small apps. See pricing · Built with Lovable, Replit or Bolt?

Reviews code only, not the running app. A clean report isn't a guarantee of security.

Code PERFECT!Ship now!!Me code good?

Thunk, and his good friend Flint.

What you get

A problem, why it matters, and the fix to paste.

One finding from a sample report on a made-up app. Every finding comes with instructions written for your AI coding tool.

See the whole sample report
Fix firstA secret database key is in code that runs in the browserlib/supabase.ts, line 4

Secret key not supposed to be public. Me know now.

What we saw
Your Supabase service-role key is imported in lib/supabase.ts, which is bundled into pages people load in their browser.
Why it matters
Anyone who opens your site can copy it and read or change every row in your database, skipping all your access rules.

Take this back to your AI tool

Move the Supabase service-role key out of lib/supabase.ts into a server-only environment variable. Use the public anon key in browser code. Then make a new service-role key in the Supabase dashboard and delete the old one.

  1. ?
    Meet Thunk. He make app.
  2. </>{ };
    Meet Flint. He make code.
  3. Me code good?
    Thunk ask Flint if code good.
  4. YES!!Code PERFECT!
    Flint say yes.
  5. Thunk suspicious.

You now software engineer? …Maybe not yet.

AI writes code. You push buttons. Things happen. Sometimes the right things.

An app that works isn't the same as knowing what's in the code. Is a secret key sitting in the browser? Can one user read another user's data? Your AI says it's fine. It always says it's fine.

How it works

AI wrote code. Me check code.

Three steps, a few minutes, no computer science degree required.

  1. 1

    Connect GitHub

    Me pick repo.

    Give read-only access to the one repository you want checked. You can remove it from GitHub any time.

  2. 2

    We read the code

    Me wait. Me little nervous.

    An automated review looks at security, reliability, architecture and maintainability. It reads your code; it never runs it.

  3. 3

    Get your fix list

    Me know what fix first.

    Plain-English findings, sorted by what to fix first, each with instructions to paste into your AI coding tool.

Built with Lovable, Replit, Bolt or v0? Your code needs to be on GitHub first. It takes a few minutes. Where me code?

Sample report

Playful voice. Serious review.

Each finding gets one line from Thunk, reacting like any of us would. Everything you need to act on is written plainly.

Me code need help.

Serious issues found. Review these before launching.

Sample · made-up app
2 fix first1 fix soon1 can wait14 checks clean

notes-app · main branchabout 18,000 lines readreview took 9 minutes

Fix firstA secret database key is in code that runs in the browserlib/supabase.ts, line 4

Secret key not supposed to be public. Me know now.

What we saw
Your Supabase service-role key is imported in lib/supabase.ts, which is bundled into pages people load in their browser.
Why it matters
Anyone who opens your site can copy it and read or change every row in your database, skipping all your access rules.

Take this back to your AI tool

Move the Supabase service-role key out of lib/supabase.ts into a server-only environment variable. Use the public anon key in browser code. Then make a new service-role key in the Supabase dashboard and delete the old one.

Fix firstAny signed-in user can read everyone's notessupabase/migrations/0002_notes.sql, line 12

AI say rule fine. Rule say yes to everybody.

What we saw
The access rule on the notes table is using (true), which lets every signed-in account read every row.
Why it matters
One user could see another user's private notes just by asking the database directly.

Take this back to your AI tool

Change the select policy on the notes table so a user can only read rows where user_id equals auth.uid(). Add the same check to the update and delete policies.

Fix soonCheckout trusts the price the browser sendsapp/api/checkout/route.ts, line 18

Customer pick own price. Generous app.

What we saw
The checkout route reads amount from the request body and passes it straight to Stripe.
Why it matters
Someone could edit the request and pay one cent for anything.

Take this back to your AI tool

In app/api/checkout/route.ts, look up the price on the server from the product ID instead of reading amount from the request body.

Can waitError pages show raw database messages to visitorsapp/notes/[id]/page.tsx, line 31

Error message talk too much.

What we saw
When a note fails to load, the page prints the database error, including table and column names.
Why it matters
It's not dangerous on its own, but it gives anyone poking around a map of your database.

Take this back to your AI tool

In app/notes/[id]/page.tsx, show a friendly "This note couldn't load" message and log the real error on the server instead.

Every report lists what was checked and what wasn't, so a clean result never claims more than it should.

Why not just ask your AI?

Flint checking Flint isn’t enough.

You can ask the AI that built your app to review it, and it's worth doing. But a separate reviewer, built only to scrutinize code, is a better second look. Here's why.

Code reviews aren't new. Companies pay security firms thousands of dollars to have outside experts check their code before it goes live. Most people building with AI never get one. MeCodeGood gives you an automated version of that first look, for a tiny fraction of the cost.

  • It checks what you didn’t know to ask

    Me not know what me not know.

    You can’t ask your AI about a problem you’ve never heard of. Every review runs the same checklist: who can read whose data, keys left in your git history, payment webhooks, sign-in gaps, and more.

  • It doesn’t grade its own homework

    Flint check Flint. Flint say Flint perfect.

    The AI that wrote your code shares its own blind spots, and it remembers why it did things. Our reviewer starts fresh, with no code of its own to defend.

  • It looks at the whole app, not just today’s task

    Me check whole cave.

    A coding session sees the files around what you asked for. A review looks across the whole repository, history included, at how the pieces fit: does every route check who’s signed in, does every table have its rules?

  • It’s honest about its limits

    Me like honest.

    Ask your AI and it will often say everything looks great. No review catches everything, ours included, so every report says which areas were fully reviewed, partly reviewed or not checked.

  • It hands the fixes back to your AI

    Me paste. Flint fix.

    We’re the second opinion, not a replacement. Your report ends with one block of instructions to paste into the tool you already use.

What we check

The stuff AI forgets to mention.

We look for

  • Secret keys in the openAPI keys and passwords in your code, its history, or files that reach the browser.
  • Who can see whose dataDatabase rules that let one user read or change another user's data.
  • Sign-in and accountsPages and routes that should need a signed-in user but don't.
  • PaymentsPrices and amounts decided in the browser instead of on your server.
  • How the code holds togetherThe same logic copied into several places, tangled files, and code nothing uses anymore.
  • Things that break quietlyMissing error handling, unchecked input, and risky or outdated packages.

We don't

  • Run your appWe read code only. We don't click through or test the live site.
  • Promise you're secureA clean report means our checks found nothing, not that nothing is there.
  • Change your codeWe never write to your repository. You decide what to fix.
  • Keep your codeYour code is read in a temporary workspace that’s deleted when the review ends. We keep only your report.

More from Flint

Flint very helpful. Flint very sure.

Thunk discover Flint. Flint make fire. Fire make everything possible. Flint is the AI that built your app, and Flint is wonderful. Flint also needs someone to check his work.

All tests pass! Me deleted the tests!

Me check.

100% secure! Me checked! (Me not checked.)

Me check anyway.

Great idea! Me put password in code so you not forget!

Awk.

What happens next

Thunk learn. Thunk code better.

Each fix teaches you a little more about what's in your app.

  1. Before

    AI say code fine. Me suspicious.

  2. Discovery

    Secret key not supposed to be public. Me know now.

  3. Action

    Me take fix instructions back to AI.

  4. Progress

    Me understand more. Me check again.

Our story

Fire isn't the problem. Not knowing how to handle fire is the problem.

Early humans discovered fire and it changed everything. They also burned their food, their shelters and sometimes themselves. Building with AI is like that right now.

Read our story

Questions

Good questions.

Do I need to know how to code?

No. Every finding explains the problem in plain English and gives you instructions to paste into the AI tool you built the app with. You'll learn as you go.

Does anyone read my code?

No person reads it. The review is fully automated, run by Anthropic's Claude in a temporary workspace that's deleted when the review ends. Anthropic deletes its records within 30 days and doesn't train its models on your code. We keep only your report, never your code. The details.

Does a clean report mean my app is secure?

No, and we'll never say it does. A clean report means the checks we ran didn't find problems. We review code only, not the running app, and every report lists what wasn't checked.

Does this replace a security expert?

No. A professional code audit usually costs thousands of dollars and takes an expert several days, often with testing of the running app too. MeCodeGood is an automated second look at code your AI wrote, built for apps that aren't ready for that yet. If you have business customers or handle sensitive data, a human review is still worth paying for.

Will the fixes work automatically?

Not always. The instructions are clear starting points for your AI tool, but check the result and run another review to see what got fixed.

Can’t I just ask my AI to review it?

You can, and it’s worth doing. But it’s the same AI that wrote the code, checking its own work, and it only looks where you point it. MeCodeGood is a separate reviewer that runs the same checklist on every app and tells you what it didn’t check.

What does it cost?

Your first review is free for small apps, up to 15,000 lines: the full review and the full report, nothing held back. Free reviews are limited every month, so grab yours while they last. A bigger app's first review, or a first review after this month's free ones are gone, is $5. After that, a review is $9 for a small app or $19 for one up to 30,000 lines, shown before anything runs. See pricing.

Me make app. App work. Me code good?

No computer science degree required. No judgment. Just you, your AI, and slightly fewer reasons for your app to explode.

Check me code

Reviews open soon, with your first code review free for small apps. Sign in now and we’ll email you when it’s ready. See pricing