A snapshot of what shipped this week across the DigitalContinuity.ai / FutureScan platform. This sprint focused on infrastructure hardening, multi-domain compliance, and getting real value from Railway’s paid integration.

Railway Redis Integration

The biggest architectural win: replacing broken in-memory rate limiting with Railway-managed Redis. On Vercel’s serverless architecture, new Map() rate limiters reset on every deploy and cold start — meaning they never actually protect anything in production.

  • Built lib/redis.ts — unified Redis client with checkRateLimit() and cached() utilities

  • Refactored 3 Klaviyo API routes (/capture, /subscribe, /track) to persistent Redis rate limiting

  • Added 5-minute TTL cache on leaderboard API — eliminates 500-row Supabase aggregation query on every page load

  • Automatic in-memory fallback when REDIS_URL isn’t set (local dev)

Multi-Domain Routing Engine

Built a multi-tenant Next.js middleware that serves 5+ branded domains from a single codebase. Each domain gets its own WCAG 2.2 AA compliant landing page while sharing the FutureScan platform for auth, billing, and scanning.

  • digitalcontinuity.ai → Flagship enterprise landing + ImpactDashboard

  • sustain207.ai → EcoMaine Climate Hub

  • mainenugs.com → Nuggets of Good sustainable swap shop

  • sustainable207.eco → Sustainability operations hub

  • chrismedwards.com → Portfolio

GDPR Canada-Domain Routing

Our Canadian GDPR infrastructure routes EU/EEA traffic through GDPR Article 45 adequate Canadian jurisdiction via cedwards.ca and mastwoods.ca. Both .ca domain variants:

  • Set X-Data-Jurisdiction: CA and X-GDPR-Adequacy: EU-Commission-Decision-2002/2/EC headers

  • Drop a data-jurisdiction=CA cookie for client-side ComplianceBadge detection

  • Trigger a blocking cookie consent modal for EU/EEA/UK/CA visitors (not just a dismissible banner)

Platform Cleanup

  • ResilienceOS sunset: Rebranded to DigitalContinuity.ai. Removed digitalcontinuity.ai from redirect list and gave it a proper enterprise landing page

  • Klaviyo utility: Created consolidated lib/klaviyo.ts with upsertProfile(), addToList(), trackEvent(), and captureAndTrack()

  • ImpactDashboard: New component showing platform stats with links to community impact projects

Account Deletion (Already Done)

Audited the GDPR deletion flow and confirmed it’s production-complete: Stripe subscription cancellation → PayPal cancellation → 30-day grace soft delete → automated cron hard purge → auth user removal. No changes needed — it was already solid.

Stack: Next.js 15 · Vercel · Railway (Redis) · Supabase · Stripe · PayPal · Klaviyo · Google Cloud Run · Gemini · Claude API

Keep Reading