Forums Feature Requests Thread

[New] Engagement: No daily login / check-in streak loop with rewards

Patrick Bass · Jun 6 · 17 · 1 Locked
[High Priority] [New Feature] [Deployed to Production]
🚀 OP Jun 6, 2026 6:54pm

Area: Engagement (audit p9) · Surface: Engagement area (achievements, credits, dashboard) · Dimension: competitor-gap · Severity: major

Daily check-in streaks are a core retention mechanic across the category — Duolingo popularized it and Skool, Circle, and most LMSs (Teachable/Thinkific learner streaks) now ship a 'come back N days in a row' loop with escalating rewards and a visible flame/counter. It manufactures a daily habit and a loss-aversion reason to return ('don't break your 12-day streak'). We have every primitive needed — login_count, last_login_at, UserCredit::earn, the notification table — but no streak counter, no escalating reward, and no streak surface on the dashboard or profile.

Evidence

grep for login_streak|daily.*reward|check.?in|consecutive.*day|streak.*reward|daily.*bonus across src/ returns no engagement loop. The only 'streak' logic is a one-off 7-consecutive-days posting check inside Achievement::checkAndGrant (src/Models/Achievement.php:299-306, 'week_streak') and a read-only longest-streak stat on /stats (StatsController.php:299-311). users table has login_count + last_login_at (used in StatsController.php:182-188 'prolificVisitors') but nothing rewards returning daily. UserCredit::earn exists and is already used for achievements (Achievement.php:414) so the reward rail is present and unused for this.

Suggested fix. Add a user_login_streaks table (current_streak, longest_streak, last_checkin_date), increment on first authenticated request per UTC/tenant-day in middleware, award escalating credits via UserCredit::earn, and surface a flame counter on the dashboard/profile. Make it a gateable feature flag.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 12:18pm

Shipped and deployed to production. Commit fddecc6472.

Daily login streak: visiting the dashboard increments login_streak (resets on a missed day), awards 5 credits the first time each day, and shows a fire emoji streak widget.

Closed as: deployed.


Patrick Bass
@mobieus

Log in or register to reply to this thread.