Skip to main content
Loading
Trijazel

Follow Us

What an AI App Review Looks Like

We just launched Trijazel's AI-app review service in May 2026. Published case studies will land here as completed engagements wrap. Until then — here's what our methodology covers and the kinds of issues we surface.

Book a discovery call

The Five Areas We Audit

Every review touches all five. The report ranks the top 10 risks across them.

Security

Auth, secrets, RLS, XSS, SQL injection, CORS, mass assignment, rate limiting, exposed endpoints, dependency vulns.

Payments & Money Flows

Stripe webhook signature verification, idempotency, refund/chargeback handling, race conditions on counters, currency precision.

Data & Persistence

Schema design, indexes, N+1 queries, missing foreign keys, data integrity, backup readiness, migration sanity.

Scalability

Cost-explosion risks, unbounded loops, missing pagination, image/asset weight, cold-start traps, queue/job handling.

Maintainability

Dead code, hallucinated packages, type safety, error handling completeness, logging, environment hygiene.

Production Readiness

Observability, alerting, deploy pipeline, secrets management, environment parity, recovery playbook.

Sample Findings (Illustrative)

These are anonymized patterns Stephen has surfaced across his career building production systems. They're not real published case studies — they're representative of what a Trijazel review report contains.

CRITICAL PAYMENTS

Stripe webhook signature not verified

The endpoint at /api/webhooks/stripe accepts the JSON body without calling stripe.webhooks.constructEvent() against stripe-signature. Anyone with the URL can POST a fake payment_intent.succeeded payload and unlock paid features.

Fix: Verify signature with STRIPE_WEBHOOK_SECRET before parsing the event. Reject any request that fails verification.

CRITICAL SECURITY

Supabase Row Level Security disabled on user-data tables

Tables projects, documents, and conversations have RLS off. Any logged-in user can SELECT * FROM these tables and read every other user's data via the public anon key.

Fix: Enable RLS on every tenant-scoped table. Add policies restricting SELECT/INSERT/UPDATE/DELETE to auth.uid() = user_id.

HIGH SCALABILITY

No rate limiting on signup endpoint

The /api/auth/signup endpoint has no rate limiter. Each signup triggers an OpenAI API call and a SendGrid email. A botnet can hit this 1,000 times in 60 seconds, generating ~$40 in OpenAI cost and burning your daily SendGrid quota — denying real signups.

Fix: Add IP-based rate limiting (e.g., Upstash Redis 10 req/min). Reject the OpenAI/SendGrid calls until email is verified.

HIGH MAINTAINABILITY

Hallucinated npm package in package.json

The project depends on react-form-validator-pro — which doesn't exist on npm. The build is currently working only because of a typosquat package with a similar name. This is one of the most common AI-generation patterns and a real supply-chain attack vector.

Fix: Replace with a verified package (react-hook-form + zod). Audit full dependency tree for similar issues.

A typical review report contains 10 findings ranked by severity, with file-level code references and specific recommendations for each.

SO

Stephen O'Leary

Founder, Trijazel

Who's Reviewing

13+ years building production systems across consumer-scale (Bloomin' Brands family — Outback, Carrabba's, Bonefish Grill) and automotive retail (AutoLoop). The kinds of bugs that ship customer-facing software at companies with millions of users are exactly the kinds of bugs we catch in AI-built MVPs before they hit production.

I personally do every review. No offshore juniors. No "associate" handoffs. You're getting a senior dev with a track record at companies your customers have heard of.

Ready to See What Your App's Hiding?

3-5 day turnaround. Top 10 production risks ranked. Written report + 30-min walkthrough call. $499 one-shot.

See full service details on /review →