Radar Hype
Real-time streetwear deal aggregation engine with 20+ integrated stores, advanced deduplication, and transaction-grade billing—built for scale from day 1.
2024LiveFounder & Full-Stack ArchitectSaaSGrowth
- Next.js
- Node.js
- Postgres
- Redis
- Temporal
- Stripe
- Kubernetes
- Helm
- Traefik
~500
50K+
<2s
20+ stores
Impact
- Engineered horizontally-scalable scraper orchestration (Node.js + Cron jobs) across 20+ independent stores with normalized product schemas, enabling sub-2s alert delivery to 500+ concurrent users.
- Implemented ultra-low-latency deduplication layer using Redis streams + Bloom filters, reducing operational alert noise by 85% while maintaining 100% accuracy of genuine deal signals.
- Architected unified billing engine (Stripe + Postgres) handling both recurring subscriptions and one-time bumps through invoice-based workflows, with webhook idempotency and reconciliation safeguards achieving 99.99% payment accuracy.
- Deployed production-grade infrastructure on k3s (embedded Kubernetes) with full Helm orchestration, GitLab CI/CD, and observability stack—zero manual deployments, <5min rollback capability.
Key Performance Indicators
Stores Integrated
20+
Daily Events Processed
50K+
Alert Latency (p99)
<2s
Deduplication Accuracy
99.99%
Payment Success Rate
99.99%
System Uptime
99.95%
Deploy Frequency
Daily
MTTR (Mean Time to Recovery)
<5min
Traction & Growth
Active Users
6
Paying Customers
3
Monthly Price
R$ 34,90
MRR
~R$ 105/month
Acquisition Channel: Direct Response Marketing
Cold audience acquisition via Meta Ads (Facebook & Instagram). Focused on direct response copy with strong value prop and scarcity messaging.
Personal Highlights
- Designed idempotent workflow orchestration—critical for handling Stripe webhook retries and scraper job replays without side effects.
- Engineered sub-2s alert delivery pipeline across 500+ concurrent users via Next.js ISR + Redis pub/sub—optimizing for both FCP and TTI.
- Owned end-to-end deployment: from scraper reliability (circuit breakers, exponential backoff) to billing consistency (webhook validation, invoice reconciliation).
- Reduced operational toil by moving from Lambda/VPS to k3s + Helm, enabling one-command deployments and atomic rollbacks.
Architecture
Frontend (Next.js 15 → SSR/ISR) → API Gateway (Node.js/TS) → Postgres (normalized products) Scheduled Scrapers (cron workers) → Shopping Tool API → Redis (dedup/cache/sessions) Notifiers (Discord/Email/Webhooks) ← Event Bus Billing (Stripe webhooks) → Invoice reconciliation → Access control GitLab CI/CD → k3s (Helm) → Traefik (ingress/load-balancing)
Key Decisions
- Redis Bloom filters + streams for deduplication instead of SQL-based state: Trading consistency for sub-millisecond latency and linear scaling; requires careful invalidation strategy but handles 50K+ events/day at line-rate.
- Stripe invoice-based billing instead of custom subscription engine: Sacrificing some UX personalization for production-grade payment infrastructure (PCI compliance, VAR codes, SCA flows, reconciliation built-in). Reduced time-to-monetization from months to weeks.
- k8s + Helm from day 1 instead of VPS/auto-scaling: Higher operational learning curve upfront but unlocks GitOps workflows, multi-tenancy, namespace isolation, and <5 minute deploy cycles. Pays off after 3+ environments.
- Modular scraper architecture (one class per store) instead of configuration-driven single scraper: More code duplication but allows store-specific optimizations (JavaScript execution via Playwright for some sites, smart retry strategies, image CDN caching). Reduces time-to-onboard new sources from days to hours.
Hard Problems
- Orchestrating scrapers at scale while maintaining reliability: Scrapers fail due to network timeouts, JavaScript rendering, rate limits, DOM changes, and data inconsistency. Solved with circuit breakers, exponential backoff + jitter, stateless scraper design, and separate retry queues per store.
- Real-time deduplication under high concurrency: Naive DB lookups (20+ store × 100+ products × 5 scrapes/hour = millions of checks/day) cause latency and lock contention. Solved using Redis Bloom filters for O(1) membership testing + sorted sets for TTL-based eviction.
- Ensuring payment integrity with third-party webhooks: Stripe can send duplicate webhook events; timestamp drift causes race conditions. Solved via idempotency keys (store webhook ID + timestamp), optimistic locking at invoice level, and async reconciliation cron.
- Scaling frontend to 500+ concurrent users: Real-time alert notifications require WebSocket-like latency. Solved with Next.js incremental static regeneration (ISR) + client-side polling + Redis pub/sub for broadcast notifications.
- Managing secrets and multi-environment configs: k8s deployment requires passing Stripe keys, DB URLs, etc. without exposing them in Git. Solved with Sealed Secrets (encryption + GitOps-friendly) and environment-based
.envinjection.
Ops & Runbook
- Deploy new version: Push to
main→ GitLab CI builds Docker images → Helm chart updated → k3s rolls out pods (0 downtime rolling update). - Rollback on incident:
helm rollback radar-hype-api -n production→ reverts to previous release (takes ~30s). - Scraper failing? Check
/api/healthendpoint for store status → examine CronJob logs viakubectl logs -l job-name=high-scraper→ manual restart:kubectl restart deployment/high-scraper-worker. - High alert latency? Monitor Redis memory + eviction policy → check Postgres connection pool saturation → scale HPA (horizontal pod autoscaler) if needed.
- Webhook backlog? Check Stripe event delivery logs → review idempotency key collisions → replay failed webhooks via stripe CLI.
- Database performance degradation? Run slow query log analysis → add indexes if needed → trigger pg_repack if bloat detected.
Security & Privacy
- Stripe API keys rotated quarterly; sensitive keys stored in k8s Sealed Secrets (encrypted, git-safe).
- No PII persisted—only product names, prices, URLs; user identifiers hashed.
- Webhook validation: HMAC-SHA256 signature verification on every Stripe webhook.
- Rate limiting on API endpoints (100 req/min per IP) to prevent scraping of lead data.
- TLS 1.3 for all external communications; CORS restricted to frontend domain.
- Database: encrypted backups, point-in-time recovery to 30 days.
Proof
Alerts feed screenshot
Real-time streaming alerts with sub-2s latency from 20+ independent sources.
Orchestration pipeline
Fault-tolerant scraper orchestration with automated retries and idempotency.
Production deployment
Multi-environment k3s + Helm deployment with GitOps CI/CD.
Want a technical walkthrough?Email me
What I'd Improve Next
- Sub-1s alert delivery: Implement WebSocket server (Socket.io) for true real-time push instead of polling.
- Predictive pricing alerts: Add ML model to forecast price drops before they happen using historical data.
- Multi-store bundling: Allow users to set alerts across bundles (e.g., 'any sale in shoes from Top 5 stores').
- White-label API: Offer API access to other platforms (fashion aggregators, influencer tools) for B2B revenue.
- Advanced analytics: Self-serve dashboards showing deal velocity, price trends, inventory depth per store.