Turn it up
All projects

Project detail · technical deep-dive

Next.jsNestJSTypeScriptPostgreSQLSupabaseDrizzle ORMVercelWhatsApp Business APIGoogle Business ProfileDeepSeek

Fama Local

Reputation management platform with Google Business Profile, WhatsApp Business API, DeepSeek-powered reply suggestions, and automations orchestrated on Vercel with Postgres on Supabase.

Role

Product & full-stack engineering

Timeline

Sep 2025 - Mar 2026

Tech

Next.js, NestJS, Drizzle, Supabase, Vercel Cron, WABA, Google OAuth, DeepSeek

9 page views

Product showcase

Flows & screens

Dashboard to track ratings, KPIs, and the reply pipeline aligned with Google Business Profile.

Sep 2025 - Mar 2026

Period

Monorepo (app + API)

Architecture

Vercel + Supabase

Infra

Technical implementation

  • Google Business Profile

    OAuth 2.0, location and review sync, webhooks and cron to drain event queues and keep local state aligned with Google's fragmented Business APIs.

  • DeepSeek in the reply flow

    Suggested replies from review text and star rating with persisted AI preferences; wiring into auto-reply and Google publication paths.

  • WhatsApp Business API (WABA)

    Webhooks with HMAC validation, outbound messages and templates, and notifications when new reviews arrive.

  • Automation on Vercel

    Scheduled cron jobs for Google Business backlogs and periodic review sync, reducing manual polling.

  • Data on Supabase (Postgres)

    Versioned schema with Drizzle, migrations, and connection pooling; SSL and documented conventions for serverless environments.

Experience the result

Live product, repository, or both—pick what matters for this case.

Description

Fama Local is a reputation and local presence product for businesses that depend on Google Business Profile reviews. It brings together onboarding, AI preferences, suggested or automated replies, and alert channels—including WhatsApp Business API (WABA)—so owners can respond quickly without losing context.

On the backend, NestJS exposes modules for auth (Google + JWT), reviews, GBP integrations, WhatsApp, and DeepSeek. On the frontend, Next.js with Tailwind delivers account flows, dashboards, and AI / auto-reply settings. PostgreSQL runs on Supabase with Drizzle ORM for migrations and database-first typing.

AI, documentation, and a RAG-like product pattern

The design keeps operational knowledge in the database: auto-reply copy per star band, tone preferences, templates, and business/location metadata feed what the system proposes or sends—close to “living documentation” in the datastore to automate replies and steer publication to Google, together with DeepSeek calls. That behaves like policy-grounded augmentation: the model does not operate in a vacuum; it combines rating + preferences + stored messages for on-brand consistency.

In development, the repo holds dozens of guides (docs/ in API and app: OAuth, fragmented Google APIs, WABA, Vercel, Supabase, SSL, Pub/Sub, etc.). Treating that documentation as retrievable truth—including via MCP to official docs and the repo itself—mirrors RAG for engineering: less trial and error, faster integration with APIs that are unstable or thinly documented on the surface.

Cursor, Claude, and delivery leverage

Much of the work used Cursor and models such as Claude for pair programming with the code and project documentation artifacts. The tangible benefit is speed with guardrails: Nest/Next boilerplate, safer refactors, monorepo conventions, and turning long guides (fragmented Google Business, consent screens, Meta tokens) into executable steps—without replacing human review, but shortening integration and debug cycles.

Features

  • Google Business Profile: account and location linking, review sync, and reply flows aligned with current Business Profile APIs.
  • DeepSeek: suggested replies from rating, body text, and persisted AI preferences.
  • Auto-reply: per-star settings and stored messages, with tokens (e.g. customer name) and API-triggered runs.
  • WABA: webhooks, outbound text/templates, and operational notifications.
  • Vercel cron: scheduled jobs for Google Business backlogs and periodic review sync.
  • Supabase + Drizzle: managed Postgres, migrations, and production-oriented scripts.
  • Monorepo: clear split between famalocalapp (Next.js) and famalocalapi (NestJS in serverless mode on Vercel).
  • Auth: Google OAuth 2.0 in the product, with JWT for API consumption.

Stack (quick reference)

LayerTechnologies
FrontendNext.js, React, TypeScript, Tailwind CSS, Zod
BackendNestJS, TypeScript, Passport/JWT
DataPostgreSQL (Supabase), Drizzle ORM
IntegrationsGoogle Business Profile / OAuth, Meta WABA, DeepSeek API
InfraVercel (API routes + Cron), documented env and build setup
Workflow qualityExtensive in-repo docs; MCP/LLM use during development