UI Challenges
UI Challenges is a community-driven platform that delivers daily UI/UX prompts on a schedule each designer controls. The product question stopped being 'can we send the email?' a long time ago — the real work now is observability (did it actually land, did they open it, where do they drop off?) and retention (what brings someone back on day 7, day 30, day 90?).

Problem
Sending a daily email is easy. Knowing whether it arrived, whether it was opened, whether the person came back the next day, and which prompts actually pull people into the app — that's the hard part. Early on, dispatch failures were silent, Resend webhook attribution was lossy, and there was no single surface to see engagement bottoming out before churn showed up in the numbers.
Approach
Treat the email pipeline and the engagement loop as one system. Centralized error monitoring through Sentry, wired Resend webhook events back to per-send rows so delivery, open, and click attribution survives batch.send. Built an admin engagement panel that surfaces drop-off in real time. On the retention side, moved challenges out of the email and into the app as the canonical hub, added per-user weekly schedules, pause-for-today, on-demand 'Send now', enriched prompts with deliverables + success criteria + wireframes, and a magic-link feedback follow-up campaign to recover lapsed users.
Key Features
- Sentry-centralized error monitoring across web, scheduler, and Trigger.dev jobs
- Email delivery monitoring with Resend webhook → per-send delivery / open / click attribution
- Admin engagement panel surfacing day-over-day drop-off before it shows up in churn
- In-app challenges hub (moved out of email) as the canonical retention surface
- Per-user weekly schedule + timezone-aware delivery + pause-for-today + on-demand Send now
- Enriched prompts with deliverables, success criteria, category tags, and per-challenge wireframes
- Magic-link feedback follow-up campaign with per-recipient hub URLs
- Streak tracking, leaderboard, and community gallery with likes and comments
Outcomes
- Email delivery is now observable end-to-end — silent dispatch failures are caught at the webhook layer, not by users
- Engagement drop-off is visible in the admin panel before it surfaces in retention numbers
- Per-user schedule + pause-for-today gave designers a way to stay subscribed without unsubscribing the first busy week
- Moving challenges into the app shifted the funnel: email is now the nudge, the app is the habit
Architecture
Next.js 15 App Router with Supabase Auth (magic link) and Postgres. Trigger.dev v4 runs the hourly dispatcher and per-user scheduled email jobs across timezones. Resend handles transactional + broadcast email with React Email templates, and webhook events flow back into Postgres for per-send attribution. Sentry v8 centralizes error monitoring across web, scheduler, and Trigger jobs. Deployed on Vercel.