All Experiments
╔══════════════════════════════════════════════════════════════╗
║  EXPERIMENT: External App Analytics                          ║
║  KEY METRIC: Sidecar fills gaps, DRY queries                 ║
║  workway.co                                                  ║
╚══════════════════════════════════════════════════════════════╝
ValidatedJanuary 21, 2026

External App Analytics

Show analytics from an external app in the main dashboard. Don't duplicate code.

What We Learned

Cloudflare Pages can't do cron

We built fn.workway.co on Cloudflare Pages. Great for UI. Terrible for scheduled jobs. Pages doesn't support cron triggers. Our auto-sync was supposed to run every hour. It never ran.

The fix: add a sidecar. A tiny Cloudflare Worker that wakes up hourly and pokes the Pages app. One file. One job. Problem solved.

Your database already knows

We needed analytics: how many syncs ran, how many succeeded, when was the last one. First instinct: add tracking. New tables. New events. Duplicate logic.

Wrong instinct. The app already stored this in sync_jobs. Every execution was already a row. We just had to ask. Analytics was just a new query.

Sidecars can do more than cron

Once the Worker existed, we added more: analytics endpoints, bulk operations, admin team views. The Pages app stays focused on user experience. The sidecar handles platform-level stuff. Same database. Two concerns. Clean separation.

Admins need a different view

Regular users want their own stats. Admins want the team view. We tried making the UI flexible. Show team data if you're an admin. Hide it if you're not.

Simpler: check who's asking. Return different shapes. Config-driven. Adding a new admin is one line. No code changes.

What Didn't Work

Waiting for Pages to support cronIt won't
Rebuilding trackingData already existed
UI-level admin detectionSimpler at the API layer
Separate analytics databaseDuplication for no reason

What Did Work

Sidecar patternFill gaps without migrating
Query existing tablesAnalytics are just different questions
Config-driven adminsOne line to add a team
Registry integrationExternal apps become first-class

The Numbers

UserTotal SyncedAuto-SyncSuccess Rate
Viv1,06386%
Joel3450%

Admin view aggregates both. Zero extra tracking code.

Hypothesis Validated

Sidecars fill infrastructure gaps without migration. Query what exists instead of duplicating tracking. External apps can be first-class citizens in the marketplace.