Case Study

MenuPortal

A nationwide restaurant menu API indexing 800,000+ restaurants and 60M+ menu items—built from zero budget.

800K+
Restaurants
60M+
Menu Items
6hrs
Refresh Cycle
<150ms
API Latency
90%
Cost Savings
The Challenge

Why Existing APIs
Didn't Work

The only viable API charged $0.02 per call. Populating menus for all restaurants just once would cost $16,000—before any customer could meaningfully use the product.

"Can we design an end-to-end system—data collection, search, and API—that delivers national-scale menu data at a price point early-stage products can actually use?"

Volume

800K+ restaurants, 60M+ items without collapsing under costs

Freshness

Continuously detect new restaurants and update menus

Speed

Fast enough to power real user-facing applications

Cost

Avoid pricing that makes it unsustainable

Cost Comparison

Third-party API (full dataset)$16,000
MenuPortal Infrastructure~$1,600
Architecture

Owning the Pipeline End-to-End

Instead of paying per request, I built a system that could scrape, normalize, and serve menu data at national scale.

Data Sources800K+ restaurants
Distributed ScrapersNode.js workers
NormalizationData pipeline
ElasticsearchReal-time indexing
REST API<150ms response

Data Collection Strategy

  • Node.js backend orchestrating multiple scraping workers
  • Horizontal scaling with tunable refresh targets
  • Complete dataset refresh in ~6 hours

Search & Storage Strategy

  • Elasticsearch for ultra-fast search over 60M+ items
  • Real-time indexing for immediate searchability
  • Optimized queries to reduce infrastructure load
Product

API, Dashboard & Monetization

High-Performance API

  • Typical responses under 150ms
  • Complex queries under 400ms
  • Restaurant search endpoints
  • Menu & item-level queries

Stripe Integration

  • Subscription management
  • Tiered pricing model
  • Usage-based quotas
  • Proprietary request tracking

React Dashboard

  • Self-service subscription UI
  • API request history
  • Real-time data search
  • Usage analytics

API Latency Performance

<150ms
Standard Queries
<400ms
Complex Queries

Tiered Pricing Model

Basic
$29/mo
10,000 API calls
Pro
$99/mo
100,000 API calls
Enterprise
Custom/mo
Unlimited API calls
Results

Outcomes & Lessons Learned

800,000+
Restaurants Processed
60,000,000+
Menu Items Indexed
~6 Hours
Full Dataset Refresh
<150ms
Standard Latency
~90%
Infrastructure Savings

What This Demonstrates

Design and implement scalable, high-performance APIs over large datasets

Build distributed data collection systems that balance freshness and cost

Integrate monetization and access control directly into technical architecture

Make pragmatic tradeoffs between speed, cost, and reliability

Tune to Value

Optimize refresh cycles based on actual usage and customer value, not theoretical maximums.

Stay Lean

Continuously explore alternative cloud options to keep infrastructure costs in check.

Expand Revenue

Move beyond self-serve subscriptions into enterprise licensing and integrations.

This project started with no budget and no viable off-the-shelf option.

It ended as a fully functional menu data platform.

A proof point that with the right architecture and discipline, you can compete with expensive incumbents—even as a solo builder.