Consumer Internet / Online Reputation & OSINT AI-Powered SaaS (Lovable + Supabase)

On-Demand Digital Reputation Reports with AI-Rewritten PDFs and Secure Checkout

Built a consumer web app that searches public individuals via Whitebridge’s API, sells one-off reports via Stripe, and delivers a unique AI-rewritten interactive report + downloadable PDF with 30‑day retention.

"Turned a third-party OSINT API into a fundraise-ready product with unique AI-rewritten reports, caching, and secure payments"
LovableSupabaseStripeEdgeFunctionsGenAIGeminiPDFKitRLSCachingNetlifyDNSResendOSINT
Frontend
Lovable.devReactTailwind CSS
Backend
Supabase (Postgres + Auth)Supabase Edge Functions (Deno)
AI Models
Google Gemini (via AI Studio API key)
Infrastructure
Stripe Checkout + WebhooksSupabase StorageNetlify (custom domain + DNS)GoDaddy (domain + Microsoft 365 email)
30 days
Report retention window
Stored final JSON + PDFs in Supabase Storage with expiry/retention policy and user history views
3–5 minutes
Asynchronous report generation handled end-to-end
Edge Functions orchestration with polling and progress states to bridge long-running Whitebridge lookups
1+ repeat purchases avoided per cached report
Partner API credit savings via caching
Cached reports in Supabase so repurchases within a defined window can reuse stored results instead of burning new Whitebridge credits
2 PDFs per purchase
Dual-delivery format
Delivered both the original partner PDF and a regenerated branded PDF using AI-edited wording

Problem Statement

The client needed a launchable, investor-ready reputation-reporting product fast—without exposing the partner API key, while handling long-running report generation (3–5 minutes), credit-based costs, inconsistent third‑party data behavior, and a requirement to generate a non-identical (reworded) PDF report for differentiation during fundraising.

Our Approach

Architected a Lovable front end backed by Supabase Auth + RLS and a set of Supabase Edge Functions that securely proxy Whitebridge API calls (search, preview, create lookup, polling). Added report caching to avoid repeat partner charges, stored final JSON/PDF in Supabase Storage with retention rules, integrated Stripe Checkout to gate access, and implemented an AI rewrite pipeline (Gemini) that paraphrases the full report content before generating a branded PDF via server-side rendering.

Full-Report AI Paraphrasing + De-duplication for Unique PDFs

Technical Details
Implemented a server-side rewrite step inside the Edge Function pipeline: after Whitebridge returns the full JSON, the system sends the report’s textual fields to Gemini with guardrails to preserve meaning while changing phrasing and removing redundancy. The rewritten output is then used to render a regenerated PDF (via a controlled template) and to power the interactive report UI. Prompting was iterated to keep “do/don’t” advice semantically aligned with the original report while still producing unique wording.
Business Value
Made each delivered report meaning-preserving but non-identical to Whitebridge’s PDF—reducing competitive exposure during fundraising, improving perceived product differentiation, and enabling a consistent branded delivery experience.

Challenges We Solved

Secure API Proxying + RLS-Protected Data Access

Directly calling Whitebridge from the browser would expose the partner API key and allow uncontrolled usage, risking cost blowups and account bans.

Routed all partner API traffic through Supabase Edge Functions with secrets stored server-side. Implemented Supabase Auth + Row Level Security so each user can only access their own generated reports/history and cached artifacts.

Supabase Edge Functions (Deno)Supabase AuthPostgres + RLSEnvironment Secrets

Report Caching to Prevent Double-Charging Credits

Client requested that if a report is purchased again within a window (e.g., 3 months), it should be served without repaying the partner API.

Added caching keyed by candidate identity + lookup parameters. When a match exists within the configured TTL/window, the app serves the stored JSON/PDF from Supabase instead of triggering a new Whitebridge lookup.

Supabase PostgresSupabase StorageEdge Functions

Cross-Domain Image Blocking in Third-Party Report Assets

Images referenced in Whitebridge data failed to load on the new domain because the upstream image host restricted hotlinking / domain access, causing missing media in web and PDF outputs.

Implemented graceful fallbacks (brand logo placeholders) and added source links for credibility. Documented the upstream limitation; where possible, adjusted rendering to avoid layout breakage and added “broken image” alerts.

Lovable UIPDF template renderingSource-link rendering

Stripe Checkout Gating + UX Iterations

Payment flow needed to unlock report generation/credits and match a familiar competitor UX, while avoiding confusing multi-step top-ups and new-tab redirects.

Integrated Stripe Checkout in the same tab, added post-purchase routing fixes (returning users to search instead of landing), auto-refresh credit state, and iterated on pricing presentation to align with competitor patterns.

Stripe CheckoutStripe WebhooksLovableSupabase

Custom Domain Launch + DNS/MX Recovery Under Deadline

Switching DNS to Netlify for the product launch unintentionally disrupted Microsoft 365 email delivery (MX records overwritten), risking missed investor emails.

Restored mail deliverability by reapplying the correct Microsoft 365 DNS records and validating end-to-end delivery. Coordinated fixes across Netlify DNS and GoDaddy controls until inbound/outbound email stabilized.

Netlify DNSGoDaddyMicrosoft 365 / OutlookDNS (MX/SPF)

Project Timeline

1

Discovery

Reviewed Whitebridge flows and API docs; clarified that AI must rewrite the full report text (not just sections) and that caching is required to avoid repeat partner credit charges. Confirmed stack: Lovable + Supabase + Stripe, plus domain/branding constraints (\"hide Lovable/Supabase\").

2

Build

Delivered a functional beta: candidate search + match selection, preview/loading states, create-lookup + polling, authenticated user history, and secure Edge Function proxying. Added caching, fixed missing sections by coordinating with Whitebridge support, introduced competitor-style preview improvements, implemented Gemini-based rewrite, and generated branded PDFs from templates. Integrated Stripe (test mode) and iterated pricing UX and checkout routing.

3

Launch

Connected custom domain (getholmz.com) via Netlify, addressed SSL propagation, removed platform artifacts (favicon), and stabilized DNS/email configuration after MX disruptions. Released landing page v2 with iterative above-the-fold improvements and enabled anonymous search before forcing signup at checkout.

Ready to Build Something Similar?

Let's discuss how we can help transform your business with AI.

Start Your Project