Tuyen Pham

Checked-It — AI Compliance Platform

Tuyen PhamTuyen Pham
July 29, 2026 - 4 min read

Tech Stack:

Next.jsTypeScriptFastAPIPythonFirebaseGeminiStripeGoogle CloudQdrantTerraform

Overview

Checked-It is an AI-powered compliance platform for regulated industries, including supplements, gambling, and alcohol. It helps authorized business users review marketing materials against regulatory requirements, internal policies, and industry-specific guidance.

Users can upload images, PDFs, and other marketing assets. The platform extracts claims, matches them against relevant policies, and produces structured compliance reports with evidence and actionable guidance.

My role

  • Role: Software Engineer
  • Duration: 6 months
  • Scope: Full-stack product development across frontend, backend, authentication, billing, reporting, and production reliability

I contributed to customer-facing workflows and the supporting APIs required to operate them reliably. My work crossed the Next.js frontend and FastAPI backend, with a focus on connecting complex product states into a consistent user experience.

The problem

Compliance teams need to review large amounts of marketing content while maintaining consistent decisions and clear audit trails. Manual review can be slow, repetitive, and difficult to scale across different industries and policy sets.

Checked-It brings content extraction, policy matching, report generation, and team collaboration into one workflow. The product must also handle authentication, subscriptions, permissions, uploaded media, and long-running AI tasks without exposing sensitive customer data.

What I worked on

Authentication and onboarding

  • Improved Firebase authentication state and redirect handling across sign-in, sign-up, email verification, and password recovery flows.
  • Built onboarding paths for team creation, invitations, trial access, and plan selection.
  • Added validation and error handling for authentication and invitation forms.

Teams, permissions, and subscriptions

  • Developed team invitation, activation, and membership workflows.
  • Implemented subscription and trial flows integrated with Stripe.
  • Worked on pricing calculations, coupon handling, upgrade and downgrade behavior, and access changes for team members.
  • Added tests around membership, invitation, subscription, and webhook behavior.

Compliance reports and AI-assisted workflows

  • Improved report upload and report-detail experiences for image, PDF, and video content.
  • Contributed to AI-assisted report discussions and solution guidance.
  • Added PDF export flows and richer evidence viewing with image lightboxes and video support.
  • Improved loading, fallback, and error states for externally stored report assets.

Reliability and platform integration

  • Integrated Firebase Storage asset retrieval and improved cleanup behavior.
  • Strengthened Content Security Policy rules and production asset handling.
  • Added and refined logging, OpenTelemetry instrumentation, and error reporting.
  • Worked across local emulators, Docker environments, Cloud Run deployments, and environment-specific configuration.

Technical architecture

The frontend is built with Next.js, React, and TypeScript. Jotai manages shared client state, while TanStack Query coordinates server state and caching. Forms use React Hook Form and Zod for validation.

The FastAPI backend handles authenticated APIs, report orchestration, team management, subscriptions, and integrations. Firebase provides authentication, Firestore persistence, file storage, and asynchronous Pub/Sub workflows. Gemini performs content extraction and AI-assisted analysis, while vector-based matching connects extracted claims with relevant policy information.

Stripe supports subscription billing, and the application is deployed on Google Cloud using containerized services and Terraform-managed infrastructure.

Key challenges

Coordinating authentication and subscription state

Authentication, onboarding, team membership, invitations, and subscriptions affect one another. I worked on keeping these transitions predictable by refreshing authoritative profile data after mutations, validating redirects, and handling incomplete or expired flows explicitly.

Handling asynchronous report assets

Compliance reports can include large images, PDFs, generated thumbnails, and video content stored outside the frontend. I improved asset URL resolution, loading feedback, fallback behavior, and export handling so reports remained usable while background processing completed.

Maintaining access during billing changes

Subscription changes can affect multiple team members at once. I contributed to downgrade behavior that updates access consistently and verifies expected outcomes through backend tests.

Outcome

My contributions helped connect core product areas—authentication, onboarding, subscriptions, teams, AI reports, and media handling—into a more reliable full-stack experience. The project strengthened my ability to work across a production SaaS architecture where frontend behavior, backend rules, third-party billing, cloud services, and security controls must remain synchronized.

What I learned

Checked-It deepened my experience building production software around AI-assisted workflows. It also reinforced the importance of explicit state transitions, defensive error handling, integration tests, and observability when a product depends on multiple external services and asynchronous processes.

Checked-It is a commercial project. Source code, internal prompts, customer data, and confidential implementation details are not publicly available.