We built Zenovay, a privacy-first web analytics platform with a real-time 3D globe that shows website visitors arriving live.
Supabase is the backbone of the entire product. <img width="872" height="503" alt="Dashboard" src="https://github.com/user-attachments/assets/7472a904-1d84-4a9e-972e-dd775ef1349a" />
A web analytics tool that answers "which marketing channels bring paying customers?" instead of just "how much traffic did we get?" Real-time tracking, AI-powered visitor scoring, revenue attribution through Stripe, and a 3D globe visualization powered by Mapbox GL JS.
EU-hosted, cookieless by default, GDPR compliant without consent banners.
pg_cron, pg_net, uuid-ossp, pgcryptovisitors and tablesThe user shares details about Zenovay, a real-time analytics platform built using Supabase and Cloudflare Workers. The platform offers features like real-time tracking, AI-powered visitor scoring, and GDPR compliance. Supabase is utilized for database management, authentication, and real-time updates, while Cloudflare Workers handle edge processing. The user invites questions about their use of Supabase and the platform's architecture.
analytics_dailyWe run a bunch of background jobs directly in Postgres:
| Schedule | Job |
|---|---|
| Hourly | Subscription expiration warnings, auto-downgrade |
| Every 2 hours | Traffic spike alerts |
| Daily | Retention notifications, ticket auto-close, dunning (card expiry, reminders, enforcement) |
| Monday 9AM | Weekly summary emails |
All triggered via pg_cron calling our API endpoints through pg_net HTTP calls.
Core analytics (visitors, events, pageviews), pre-aggregated daily stats, AI-generated insights, conversation history, knowledge base embeddings, heatmap data, session recordings, conversion funnels, support tickets, community forum posts, billing/subscription state, and more.
Browser --> Cloudflare Workers (edge, sub-50ms) --> Supabase PostgreSQL (cold storage)
--> Cloudflare KV (hot cache)
--> Cloudflare Analytics Engine (high-cardinality events)
|
Supabase Realtime --> Dashboard (Next.js)
The edge-first approach means our tracking script adds zero measurable latency to the sites it monitors. Events are processed at the nearest Cloudflare data center (300+ locations), then persisted to Supabase.
| Layer | Tech |
|---|---|
| Edge API | Cloudflare Workers + Hono.js |
| Database | Supabase PostgreSQL |
| Auth | Supabase Auth |
| Realtime | Supabase Realtime |
| Caching | Cloudflare KV |
| Object Storage | Cloudflare R2 |
| Live Visitors | Cloudflare Durable Objects |
| Event Queries | Cloudflare Analytics Engine |
| Dashboard | Next.js 14 (App Router) |
| 3D Globe | Mapbox GL JS |
| Payments | Stripe |
| AI | Cloudflare Workers AI + OpenAI via AI Gateway |
Happy to answer any questions about how we're using Supabase or the architecture in general.