All projects

Aluf HaTorah

A family trivia game on the weekly Torah portion, with levels, streaks, leaderboards and challenges between friends.

Aluf HaTorah home page

The challenge

The goal: a game the whole family plays together before Shabbat. Questions on the weekly portion at different difficulty levels, with a sense of progress that brings you back every day, plus a full English version.

Behind the simple game is a complete system: one app that runs on Android, iOS and the browser, a backend that computes scores and leaderboards fairly, scheduled push notifications, deep links for challenges, and an AI-assisted content pipeline that produces questions and sourced learning notes in two languages.

Architecture

System architectureExpo app, Supabase, Postgres RPC, Edge funcs, Push, EAS Build, Google PlayExpo appSupabasePostgres RPCEdge funcsPushEAS BuildGoogle Play

Stack

Hard problems I solved

  1. 01 One codebase, three platforms

    Approach
    Expo and React Native with react-native-web. EAS builds with automatic version numbering, and a static export of the web version to Vercel.
    Result
    Every feature ships to Android and web together, and the iOS build is ready from the same code.
  2. 02 A fair game backend

    Approach
    Scores, XP, streaks and leaderboards are computed server-side in Supabase RPCs, with 25 migrations managing the schema.
    Result
    The leaderboard can't be gamed from the client, and the schema evolves without breaking existing players.
  3. 03 Bringing players back every day

    Approach
    Edge functions send daily reminders, achievement alerts and new-content notifications. Deep links power invites and friend challenges.
    Result
    A daily habit and natural sharing between family and friends.

By the numbers

Torah portions
54
Questions
1,186
Translated to English
100%
Learning notes with sources
714

Screenshots

Aluf HaTorah app home screenAluf HaTorah question screenAluf HaTorah results screen

Have a complex project?

Tell me what you want to build. I'll get back to you with a first direction, no commitment.