noor abid

About

Building Ember. Mostly arguing with an AI about whether it's allowed to accuse users of things they haven't done yet.

Badges

Gemologist
Gemologist
Tastemaker
Tastemaker
Gone streaking 10
Gone streaking 10
Gone streaking
Gone streaking
View all badges

Maker History

  • Emberai
    EmberaiAI roasts your bad habits and rates your life. No mercy.
    Jul 2026
  • 🎉
    Joined Product HuntJuly 14th, 2026

Forums

•

12h ago

Safety classifier in the same LLM call as the reply, or a separate call?

I m designing a content-safety check for an app that generates personal feedback text, and I m stuck on one tradeoff.

Option A: one call. The model returns JSON with the label as the first key, then the generated text. This saves a round trip and one failure point. The cost is that the classification and the generation share one prompt, so a long or adversarial user message could hurt both at once.

Option B: a separate call. It s cleaner, and you can run it on a smaller, stricter prompt. The cost is added latency and a second thing that can time out.

Whichever I pick, these rules seem right to me:

•

1d ago

3 silent failures in an AI app that threw no errors (and how I found them)

Three bugs from a solo-built AI app (Next.js, Supabase, Groq). None threw an error, and all of them looked fine in the logs.

  1. Row-level security hid failed writes. Missing policies meant some writes quietly did nothing, and my code never checked. (With RLS on, an UPDATE that no policy allows touches zero rows and returns no error.) Fix: add the missing policies, and read important rows back to confirm the write happened.

  2. A payment webhook returned 200 and upgraded nobody. The webhook arrives with no login cookie, so under RLS the update matched zero rows. Fix: use a server-side service client for that one route, verify a secret token first, and treat 0 rows updated as a failure, not a success.

  3. Two code paths overwrote each other. Achievements were unlocked from three places with no coordination, so one request could undo another s write. Fix: a compare-and-swap write, which only updates the row if it still holds the value I read.

The common thread: a response with no error doesn t prove anything happened. Now I verify the write itself.

What s your go-to way to catch silent database failures?

•

5d ago

How do you stop your live database and your code from drifting apart?

I m a solo founder building with AI tools. This week I found out the emoji reactions in my app had never been saved for anyone.

The cause was simple. The code wrote to a column called reaction, but the live database column had a different name. The app still showed the emoji as highlighted, and nothing was stored. The count of saved reactions was zero, and no error showed up anywhere.

The fix was small: a migration that renames the column only if the old name exists, and a check so the app now says not saved when no row actually updates.

What I still don t have is a habit that stops this from happening again. If you build on Supabase or any hosted database, how do you keep what s live and what s in your code in sync? Do you check it before every release, or just wait for a bug?

View more