Project detail · technical deep-dive
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

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
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.
Live product, repository, or both—pick what matters for this case.
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.
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.
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.
famalocalapp (Next.js) and famalocalapi (NestJS in serverless mode on Vercel).| Layer | Technologies |
|---|---|
| Frontend | Next.js, React, TypeScript, Tailwind CSS, Zod |
| Backend | NestJS, TypeScript, Passport/JWT |
| Data | PostgreSQL (Supabase), Drizzle ORM |
| Integrations | Google Business Profile / OAuth, Meta WABA, DeepSeek API |
| Infra | Vercel (API routes + Cron), documented env and build setup |
| Workflow quality | Extensive in-repo docs; MCP/LLM use during development |