White Paper

Building The Pulse in 40 Days

A Case Study in AI-Augmented Full-Stack Development

Joe Sauvé February 2026 20 min read
40
Days to Ship
350+
Automated Tests
170+
Feature Branches
$13
Monthly Infra Cost

The Pulse is a full-stack event discovery platform — a mobile app, REST API, admin panel, and marketing website — built from zero to production-ready in approximately 40 days. This white paper documents how a solo developer, working in partnership with advanced AI coding agents (Claude Opus 4.5 and 4.6, via the Antigravity IDE and Google AI Ultra plan), designed and implemented a system comprising thousands of lines of production code, 350+ automated integration tests, hardware-backed security, AI-powered content moderation pipelines, and a cloud-native deployment infrastructure.

1. Introduction

The Problem

Discovering local live music, nightlife, and community events remains a fragmented experience. Event information is scattered across venue websites, social media posts, printed flyers, and PDF event guides. No single platform aggregates this information in a way that is comprehensive, timely, and community-scoped.

The Vision

The Pulse aims to be the definitive local event discovery platform — a curated, AI-enhanced experience that surfaces live music and events through a polished mobile app, powered by automated content acquisition and human-in-the-loop moderation.

The Challenge

Building such a platform traditionally requires a team of engineers working across mobile, backend, web, and infrastructure disciplines over many months. The question this project set out to answer was:

Can a single developer, augmented by frontier AI coding agents, ship a production-grade full-stack platform in 40 days?

The answer, documented in this paper, is yes.

2. The AI-Augmented Development Model

The Tools

The project was built using Claude Opus 4.5 and later Opus 4.6, accessed through two primary interfaces:

  • Antigravity IDE — A dedicated agentic coding environment that provides the AI agent with direct access to the file system, terminal, browser, and code analysis tools. Unlike traditional chat-based AI assistants, Antigravity enables the agent to autonomously explore, edit, build, test, and debug code without requiring the developer to manually copy-paste context.
  • Google AI Ultra Plan — Providing access to Claude's most capable models with extended context windows, enabling the agent to hold entire subsystems in working memory simultaneously.

The Developer-Agent Partnership

The development workflow was not one of "AI writes everything." Rather, it was a structured partnership with clearly defined roles:

Responsibility Developer AI Agent
Product vision & requirements✅ PrimaryAdvisory
Architecture decisionsCollaborativeProposes, implements
ImplementationReviews, directs✅ Primary
TestingReviews results✅ Primary (TDD-first)
DebuggingIdentifies symptoms✅ Primary
Code review✅ PrimarySelf-checks
Security postureDefines requirementsImplements, audits
DeploymentApproves, triggersConfigures, scripts

The Knowledge System

A critical enabler of sustained velocity was the persistent knowledge system built into the Antigravity IDE. Over the course of 40 days:

  • 16+ Knowledge Items (KIs) were automatically distilled from conversation history, covering architecture patterns, security strategies, deployment procedures, and troubleshooting guides.
  • Agent rules codified critical policies — protected branch workflows, TDD mandates, version synchronization, and coding standards — ensuring consistent enforcement across conversation boundaries.
  • Workflows automated repetitive multi-step procedures — deploying to Azure, publishing to beta channels, committing and merging — reducing ceremony to a single slash command.

This knowledge architecture meant that on Day 40, the agent had the same (or better) contextual understanding than on Day 1 — a stark contrast to human developers who experience context decay between sessions.

Velocity Metrics

🏗️
Full-stack platform Mobile, API, admin, website in ~40 days
🧪
350+ automated tests Backend integration suite with real SQL
🌿
170+ feature branches Merged across the development period
🔒
Complete security audit All findings remediated

3. Platform Overview

Technology Stack

📱

Mobile

Flutter 3.x, Dart 3.10+, Riverpod, GoRouter

⚙️

Backend

.NET 9, EF Core, SQL Server, Hangfire

🖥️

Admin Panel

Next.js 16, React 19, TailwindCSS 4

🌐

Website

Astro (static, zero-JS by default)

🔐

Auth

Firebase Auth with App Check attestation

☁️

Infrastructure

Azure Container Apps, SQL Serverless, BunnyCDN

Data Flow

Sources
Venue Websites PDF Guides Social Media User Submissions
Acquisition
HTML Scraper PDF Extractor Vision OCR Gemini 1.5 Flash
Moderation
AI Safety (OpenAI) Curator Review Trust System
Distribution
.NET 9 REST API Flutter Mobile App Push Notifications

4. Mobile Application Architecture

State Management: Riverpod

The mobile app uses Riverpod for type-safe, testable state management. Providers expose data to the widget tree without tight coupling, AsyncNotifiers handle paginated data loading with built-in loading/error/data states, and provider overrides enable complete dependency substitution during testing.

Design Philosophy

Entertainment First

Dark, charcoal-based themes emphasize high-quality photography and create an atmosphere consistent with nightlife discovery.

Optional Authentication

A frictionless "Browsing First" model allows anonymous discovery; auth is only required for personalization features.

Natural Verticality

Content-driven sizing maximizes information density in scrollable lists.

Deterministic Interaction

Predictable control placement builds muscle memory across sessions.

Networking Layer

A Dio-based networking layer with a layered interceptor chain provides resilient, secure API communication:

  1. API Key Interceptor — Traffic gating via X-Api-Key header
  2. App Check Interceptor — Hardware-backed attestation token with exponential backoff retry
  3. Auth Token Interceptor — Firebase JWT via just-in-time getIdToken()
  4. Auth Retry Interceptor — Transparent 401 recovery with token refresh
  5. Version Interceptor — Force-update detection via response headers

5. Backend API Architecture

Clean Architecture

ProjectResponsibility
Pulse.ApiControllers, middleware, configuration, DI
Pulse.CoreDomain entities, DTOs, service interfaces, business rules
Pulse.InfrastructureEF Core DbContext, repositories, external integrations
Pulse.SharedCross-cutting utilities, constants, extensions

Key Patterns

  • Global Query Filters enforce soft-delete and publication state at the query level, preventing accidental data exposure.
  • Field Override Pattern — Venue metadata from Google Places can be overridden by curators via a strict resolution chain: Override → Edit → Original.
  • URL-Segment API Versioning (/api/v1/...) with header-based force-update signaling and a formal deprecation lifecycle.
  • Hangfire for persistent, reliable background job processing with configurable schedules and retry logic.

6. Content Acquisition Pipeline

The content pipeline is the platform's most technically ambitious component — an AI-powered system that transforms unstructured content from diverse sources into normalized, curated event data.

Gemini 1.5 Flash: The Extraction Engine

Source TypeMethodExample
HTMLDOM parsing → GeminiVenue event calendars
Digital PDFPdfPig → GeminiMonthly event guides
Scanned PDFGemini VisionDigitized print magazines
ImagesGemini Vision OCRSocial media flyers

Gemini 1.5 Flash was selected for its 17x cost advantage over Pro, 1M token context window, native multimodal support, and structured JSON output with token-level confidence scoring.

Confidence Scoring

A hybrid model combines three signals for moderation prioritization:

Logprobs 40%
Self-Assessment 30%
Completeness 30%

Moderation Workflow

Every event passes through a multi-stage pipeline: AI safety check (OpenAI), duplicate detection, curator review with side-by-side source comparison, and trust-based auto-approval for high-reputation users. The system follows a fail-open philosophy — infrastructure failures route to human review rather than blocking users.

7. Security Architecture

Authentication

Firebase Authentication provides multi-provider social login (Google, Apple, Facebook, Email). Token lifecycle is fully managed by the SDK — the application never manually handles or persists JWTs. A self-healing pattern detects expired tokens and forces local sign-out to clear stale state.

Device Attestation: Firebase App Check

PlatformProviderSecurity
iOSApp Attest (Secure Enclave)Hardware-backed
AndroidPlay Integrity (TEE)Hardware-backed
DevelopmentDebug ProviderRegistered tokens

No embedded secrets — attestation is generated at runtime by device secure hardware with 1-hour TTL tokens and automatic background refresh.

Authorization (RBAC)

A capability-based model governs access: Anonymous (read-only discovery), User (save/submit), Curator (moderate content), Venue Manager (manage claimed venues), and Admin (full access). All 12 admin controllers verified via comprehensive security audit.

Security Audit (February 2026)

Authentication
Device Attestation
Authorization (RBAC)
Secrets Management
Transport Security
CORS Hardening

8. Infrastructure & Deployment

Cloud Architecture

ServicePurposeBilling
Azure Container Apps.NET 9 API hostingScale-to-zero
Azure SQL ServerlessRelational dataAuto-pause, auto-scale
Azure Static Web AppsLanding pageFree tier
BunnyCDNImages & resizing$1/mo + usage

CI/CD

  • Xcode Cloud — iOS builds with managed signing → TestFlight
  • GitHub Actions — Android builds → Firebase App Distribution
  • Agent Workflows — Multi-step deployments via single slash commands

9. Testing & Quality Assurance

TDD-First Mandate

All code changes follow a strict Red-Green-Refactor cycle. This mandate applies to both Flutter and .NET with no exceptions.

Backend Testing Infrastructure

The backend uses Testcontainers with Azure SQL Edge to provide real SQL Server behavior in integration tests. A shared container fixture creates isolated databases per test class, and a custom PulseApiFactory provides configured HTTP clients with authentication. This catches visibility bugs that in-memory stores miss — particularly around EF Core Global Query Filters.

Cross-Platform Coverage

LayerToolsCoverage
Backend IntegrationxUnit, Testcontainers350+ tests
Admin Panel E2EPlaywrightModeration workflows
Mobile UIFlutter PatrolRole-based access, submissions

10. Performance Optimizations

  • Google Places 30-day cache — SQL cache for Place IDs minimizes repeat API calls
  • Session token rotation — Consolidates per-request charges into per-session billing
  • Scale-to-zero — Dev/staging environments pause compute when idle
  • CDN image resizing — BunnyCDN serves device-appropriate image sizes
  • Virtualized lists — All scrollable lists use ListView.builder
  • Aggressive const — Minimizes unnecessary widget rebuilds
  • Gemini Flash over Pro — 17x cost reduction with comparable extraction quality
  • GPT-4o-mini for moderation — Orders of magnitude cheaper for safety classification

11. Cost Analysis

By leveraging serverless infrastructure and free tiers aggressively, the monthly operating cost is remarkably low:

StageMAU*Monthly Cost
Seed (Beta)< 1,000~$13
Growth~10,000$84 – $158
Scale~100,000$630+

*MAU = Monthly Active Users

The architecture ensures cost scales proportionally with usage, with no large fixed-cost commitments until the scale stage.

12. Lessons Learned

What Worked

01

Agent rules are force multipliers

Codifying conventions into agent-readable rules eliminated entire categories of mistakes. The agent never forgot to create a feature branch, never skipped a test, and never committed API key mismatches.

02

Persistent knowledge compounds

Automatically distilled knowledge items meant the agent's understanding deepened over time. By Day 40, it could reason about cross-cutting concerns with more precision than on Day 1.

03

TDD with an AI agent is transformative

With an AI agent, tests are written as naturally as implementation code — there's no psychological resistance. The 350+ test suite was built incrementally and caught genuine bugs.

04

The monorepo paid dividends

A single repository allowed cross-cutting changes atomically. A schema change could include the DTO, migration, test, and mobile model update in one interaction.

What Was Challenging

  • Context window management — Complex debugging sessions occasionally exceeded working memory. The solution was breaking problems into smaller investigations.
  • Platform-specific gotchas — iOS simulator state, Android signing keys, and Xcode Cloud entitlements required manual intervention the agent could document but not resolve.
  • Visual design iteration — The iterative "does this feel right?" polish cycle was slower than with a dedicated designer.

13. Conclusion

The Pulse demonstrates that a single developer, working in purposeful partnership with AI coding agents, can build and ship a production-grade full-stack platform in a timeframe that would traditionally require a small team working for months.

Frontier AI models Claude Opus 4.5/4.6 reasoning across codebases
An agentic IDE Direct tool access, not just chat
Persistent knowledge Preventing institutional knowledge decay
Codified conventions Engineering standards at machine speed
Human judgment Knowing when to lead and when to delegate
The future of software engineering is not human or AI — it's human with AI, each amplifying the other's strengths.