← Back to Design Preview
Board of Directors · Decision Document

Bar Talk

Architecture & Technology Decisions
Prepared
May 2026
Status
Awaiting Approval
Decision Window
Q2 2026
Document v1
Pages 1–7

Executive Summary

Bar Talk is a native mobile social app for iOS and Android that lets users check in at bars, earn rewards, discover hotspots, and receive personalized drink specials. Bars and venues can publish promotions and incentivize repeat visits.

This document presents the architectural decisions required to build Bar Talk, scored across the dimensions that matter most for our context: an AI-assisted development team building a consumer mobile app at MVP scale with intent to grow.

Recommended path: AWS-primary serverless backend, React Native + Expo mobile frontend, PostgreSQL primary database, with two pragmatic exceptions for push notifications (Firebase Cloud Messaging) and maps (Mapbox + Google Places).

Estimated time to public launch: ~5 months. Estimated monthly infrastructure cost at MVP: $300–$600. Estimated monthly cost at 50K active users: $2,500–$4,000.

Scoring Methodology

Each option is scored 1–5 (5 = best) across six weighted dimensions. The weights reflect what matters most for an AI-driven build of a consumer mobile app at our stage:

DimensionWeightWhy It Matters
AI-assisted development fit25%AI is doing most of the implementation; quality of training data and idiomatic patterns directly impact velocity and bug rate.
Time to MVP20%Speed to a launchable product matters more than long-term theoretical efficiency.
Operational complexity15%Small team means we cannot afford heavy ops burden.
Cost at MVP and at scale15%Runway matters. So does not getting locked into expensive scaling.
Hiring & ecosystem15%Future engineers must be findable and productive.
Vendor lock-in risk10%We accept some lock-in for velocity; we want to know its size.

Weighted scores are calculated as (raw score × weight). Maximum possible weighted score: 5.00.

Decision 1 · Mobile Frontend

Options under consideration

OptionDescription
A. React Native + ExpoJavaScript/TypeScript, single codebase, Expo managed workflow with EAS Build & Submit
B. FlutterDart, single codebase, compiles to native, Google-backed
C. Native (Swift + Kotlin)Two codebases, platform-idiomatic, maximum performance

Weighted scoring

Dimension (Weight)A · React NativeB · FlutterC · Native
AI-assisted dev fit (25%)543
Time to MVP (20%)541
Operational complexity (15%)452
Cost (15%)552
Hiring & ecosystem (15%)534
Vendor lock-in risk (10%)445
WEIGHTED TOTAL4.754.102.65
Recommendation: React Native + Expo with TypeScript TypeScript unifies our entire stack (mobile + backend + infrastructure all in one language). The AI training corpus for React Native and TypeScript is substantially larger than for Dart/Flutter, which directly translates to fewer subtle implementation errors during AI-assisted development. Expo's managed workflow and EAS Build remove the most painful parts of mobile dev (signing, builds, OTA updates).

TRADEOFF One team member's existing Flutter experience is partially offset by the language unification benefit. Learning curve to React Native from Flutter is roughly one week to productive.

Decision 2 · Cloud Provider

Options under consideration

OptionDescription
A. AWS-primaryAll backend infra on AWS; FCM for push, Mapbox for maps (necessary exceptions)
B. Firebase-primaryFirebase Auth, Firestore, Cloud Functions, FCM, Crashlytics
C. Azure-primaryAzure Functions, Cosmos DB, Azure AD B2C
D. Multi-vendorPick best tool per category across vendors

Weighted scoring

Dimension (Weight)A · AWSB · FirebaseC · AzureD · Multi
AI-assisted dev fit (25%)5423
Time to MVP (20%)4533
Operational complexity (15%)4532
Cost (15%)4533
Hiring & ecosystem (15%)5434
Vendor lock-in risk (10%)3235
WEIGHTED TOTAL4.304.252.803.20
Recommendation: AWS-primary with FCM + Mapbox exceptions AWS scores highest on AI fit and hiring, and ties Firebase practically. Critically, Firebase's Firestore has the same geospatial limitations as DynamoDB (a known dealbreaker for our "bars near me" feature), which negates Firebase's apparent simplicity advantage. AWS gives us PostgreSQL with PostGIS for proper geospatial queries.

TWO PRAGMATIC EXCEPTIONS Firebase Cloud Messaging (FCM) for push notifications — measurably better than AWS SNS for mobile, free, and a clean isolated integration. Mapbox + Google Places API for maps and bar data — AWS has no competitive offering here; this is unavoidable for any provider.

Decision 3 · Backend Compute

Options under consideration

OptionDescription
A. Serverless (Lambda)Pay-per-request, auto-scaling, zero ops
B. Containers (Fargate)Always-running, predictable cost, easier local dev
C. HybridLambda for API, Fargate for jobs that exceed 15-min limit

Weighted scoring

Dimension (Weight)A · ServerlessB · ContainersC · Hybrid
AI-assisted dev fit (25%)544
Time to MVP (20%)534
Operational complexity (15%)534
Cost at MVP (15%)524
Hiring & ecosystem (15%)454
Vendor lock-in risk (10%)253
WEIGHTED TOTAL4.503.453.85
Recommendation: Serverless (AWS Lambda + Node.js/TypeScript) At MVP scale, Lambda's pay-per-request model means near-zero cost when idle. Auto-scaling handles viral spikes (e.g., a bar going viral on a Friday night) without intervention. Cold starts (~300ms on Node.js) are acceptable for our use case.

FUTURE PATH Add Fargate later if we introduce long-running jobs (e.g., heavy analytics aggregation). Don't pre-build it.

Decision 4 · Primary Database

Options under consideration

OptionDescription
A. DynamoDB onlyServerless NoSQL, single-digit ms latency
B. PostgreSQL onlyAurora Serverless v2, relational, with PostGIS for geospatial
C. HybridPostgreSQL primary + DynamoDB for high-velocity hot paths

Weighted scoring (with gating criteria)

Dimension (Weight)A · DynamoB · PostgresC · Hybrid
AI-assisted dev fit (25%)354
Time to MVP (20%)354
Operational complexity (15%)543
Cost at MVP (15%)533
Hiring & ecosystem (15%)354
Geospatial fit (gating)FAILPASSPASS
WEIGHTED TOTALdisqualified4.453.75
Recommendation: PostgreSQL primary, DynamoDB introduced later when justified Geospatial queries ("bars within 1 mile of me") are core to Bar Talk and are awkward-to-impossible on DynamoDB. PostgreSQL with PostGIS solves this elegantly. Aurora Serverless v2 gives us the serverless scaling story without giving up SQL flexibility.

CRITICAL IMPLEMENTATION NOTE Lambdas connecting directly to Aurora exhaust connection pools. We will use RDS Proxy from day one. This is the #1 mistake teams make with Lambda + RDS.

Decision 5 · Authentication

Options under consideration

OptionDescription
A. Amazon CognitoAWS-native, integrates with API Gateway
B. Auth0Best-in-class DX, paid per MAU
C. ClerkModern DX, polished UI, paid per MAU
D. Firebase AuthGoogle-backed, free, simple

Weighted scoring

Dimension (Weight)A · CognitoB · Auth0C · ClerkD · Firebase
AI-assisted dev fit (25%)5444
Time to MVP (20%)3455
Operational complexity (15%)4455
Cost at scale (15%)5224
AWS integration (15%)5332
Vendor lock-in (10%)3432
WEIGHTED TOTAL4.303.453.853.85
Recommendation: Amazon Cognito Cognito's developer experience is rougher than Clerk or Auth0, but the deep AWS integration (API Gateway authorizers, IAM, Lambda triggers) and zero per-MAU cost win out — especially with AI-assisted development where the rougher edges of Cognito are easier to navigate. Supports Sign in with Apple, Google, and Facebook out of the box.

RECONSIDERED IF Login UX becomes a measurable conversion blocker post-launch, in which case Clerk is the upgrade path.

Cost Projection

MVP · 1,000 MAU
$306–$541
per month, all infrastructure included
Growth · 50,000 MAU
$1,859–$4,384
per month, with caching layer added

MVP Launch · detail

CategoryMonthly estimate
Aurora Serverless v2 (min capacity, baseline)$60–$120
Lambda + API Gateway$5–$30
Cognito (under 50K MAU = free)$0
S3 + CloudFront$10–$30
RDS Proxy$30
NAT Gateway$32
CloudWatch + miscellaneous$20–$50
Mapbox (under free tier)$0
Google Places API (cached aggressively)$50–$150
Firebase Cloud Messaging$0
EAS Build subscription$99
TOTAL$306–$541

Growth Stage · detail

Assumes 50,000 MAU across 5 cities; DynamoDB and ElastiCache layers introduced.

CategoryMonthly estimate
Aurora Serverless v2 (autoscaled)$400–$800
Lambda + API Gateway$200–$500
Cognito$0–$275
S3 + CloudFront$100–$300
RDS Proxy$30
NAT Gateway + data transfer$200–$400
DynamoDB (added at this stage)$50–$200
ElastiCache (added at this stage)$100–$200
Mapbox$200–$500
Google Places API$400–$1,000
Firebase Cloud Messaging$0
Observability (Sentry, etc.)$80
EAS Build$99
TOTAL$1,859–$4,384

These are rough estimates — actual costs depend heavily on usage patterns. Budget alarms will be configured on day one.

Risks & Mitigations

RiskLikelihoodImpactMitigation
Apple App Store rejection (alcohol app)MediumHighStrict adherence to Guidelines 1.4.3, 4.8, 5.1.1; thorough pre-submission review; budget for 1-2 rejection cycles.
Google Places API cost overrunsMediumMediumAggressive caching of bar data in our DB; rate limits on bar search endpoints.
Aurora connection pool exhaustionHigh if not addressedHighRDS Proxy from day one; load testing before launch.
Vendor lock-in on AWSHigh (by design)Medium (long-term)Accepted tradeoff; PostgreSQL itself remains portable.
DUNS / developer account delaysHighMediumInitiate DUNS request immediately; do not wait for code.
AI-generated code bugs in productionMediumVariableMandatory human code review on all AI-generated code; comprehensive test coverage; staged rollouts.
Beta tester recruitment for Google's 14-day requirementMediumMediumRecruit 15+ beta testers by month 3.

Approval Requested

The board is asked to approve the following stack as the path forward for Bar Talk:

  1. Mobile — React Native + Expo with TypeScript
  2. Backend — AWS Lambda + API Gateway with Node.js/TypeScript
  3. Database — Aurora Serverless v2 (PostgreSQL + PostGIS) primary; DynamoDB introduced selectively at growth stage
  4. Auth — Amazon Cognito with social federation (Google, Apple, Facebook)
  5. Maps & push — Mapbox + Google Places API + Firebase Cloud Messaging
  6. Infrastructure as code — AWS CDK in TypeScript
  7. Build & deploy — EAS Build + EAS Submit; OTA updates via EAS Update
Time to Launch
~20 weeks
MVP Cost
$300–$600/mo
Decision Status
Awaiting Vote