< cd ~/raba.pl

Public products & communities

StudyFox

Build the study tool my psychology group needed, then make it work wherever we study.

  • live
  • January 2026 - present
  • Solo: product, code, apps

The problem

The product needed more than a quiz screen. It had to connect course material to explanations, keep personal progress, schedule reviews and feel usable across phones and computers.

My part

A personal product I designed and built for my study group, including the web, mobile and desktop apps.

What this shows

I can spot a need through direct experience, build a coherent product around it, and follow its use beyond the first release.

Where it started

StudyFox began with my own psychology study group. We had slides, syllabi and lists of questions, but no connected way to find the source material, practice and return to what we were forgetting.

See it in action

Product walkthrough · 1:00 · 60 FPS · English narration
StudyFox interface

English AI narration · Subtitles included · Play with sound, or read the transcript.

Read the video transcript

0:00 I built StudyFox for my psychology study group, turning course material into repeatable exam practice.

0:08 One account connects native mobile apps with desktop versions.

0:15 Each study pack brings together materials, quizzes, flashcards and a clear progress view.

0:22 The library makes course slides searchable, and links each result back to its source page.

0:29 AI assistants can use the same study tools through a protected integration.

0:41 In the second semester, thirty profiles recorded more than fifty thousand answers. Seventy-nine percent were correct.

0:50 The same study workflow carries across desktop, tablet and phone.

The decisions behind the product

Connect practice to its source

I organized each subject into a study pack with questions, explanations, flashcards and a plan. A searchable semester library links results back to the relevant source page.

Make the next study session personal

A spaced-repetition scheduler uses each answer to choose the next review date. Progress, XP and semester rankings sync to one account across the apps.

Bring the same product to different contexts

I built web, native iOS and Android apps, plus macOS and Windows desktop builds. An MCP server also lets an AI assistant fetch questions and search course material through a personal API key.

What came out of the work

Used by the group it was built for

The semester-two snapshot on 5 October 2026 recorded 50,076 practice answers across 30 profiles. Of those answers, 79% were correct; this describes practice activity, not an improvement in exam results.

One learning flow across devices

Students can use the same account on the web, iOS, Android, macOS and Windows. The question bank and material library also support seven tools for connected AI assistants.

  • 50,076practice answers logged, 79% correct30 profiles · Semester 2 · snapshot 5 Oct 2026
  • 4app platforms beyond the webChecked 6 Oct 2026

Traffic over time

Google Search Console

Google search clicks

Domain property: studyfox.io (all subdomains)

Latest month
01 Sept - 30 Sept 2026
First month
01 Apr - 30 Apr 2026
Google search clicks per month, 1 Apr to 30 Sept 2026Google Search Console. Domain property: studyfox.io (all subdomains). Monthly clicks. 1 Apr: 0; 1 May: 0; 1 Jun: 0; 1 Jul: 1; 1 Aug: 0; 1 Sept: 0. Vertical axis starts at zero.011 Apr - 30 Apr 2026: 0 clicks1 May - 31 May 2026: 0 clicks1 Jun - 30 Jun 2026: 0 clicks1 Jul - 31 Jul 2026: 1 clicks1 Aug - 31 Aug 2026: 0 clicks1 Sept - 30 Sept 2026: 0 clicksAprMayJunJulAugSept
6 complete months · 1 Apr - 30 Sept 2026 · Download chartFirst month Latest month
Source, methodology and monthly data

Open Google Search Console report · Checked 8 Oct 2026

Domain property: studyfox.io (all subdomains). Provider timezone: America/Los_Angeles.

  • Six complete calendar months: 1 April to 30 September 2026. Current is September; comparison baseline is April. Both comparison months have 30 days. This is not a comparison against the preceding six months.
  • Final web-search data, all countries and devices, America/Los_Angeles reporting timezone. Search clicks are not website visits or unique visitors.
  • Domain properties include all subdomains with property aggregation. Documentation pages retain exact page filters from the preceding evidence collection and measure documentation interest, not adoption.
  • Monthly chart values and the six-month total are reconciled with independently queried totals.
  • The percentage, where shown, compares September 2026 with April 2026, the last and first complete months of this window.
  • April has fewer than 100 events, so absolute counts are shown without a percentage growth claim.
  • For fewer than 100 events in the baseline period, the comparison shows absolute counts instead of a percentage.
Complete monthly totals
MonthGoogle search clicks
1 Apr - 30 Apr 20260
1 May - 31 May 20260
1 Jun - 30 Jun 20260
1 Jul - 31 Jul 20261
1 Aug - 31 Aug 20260
1 Sept - 30 Sept 20260

Inside the implementation

Explore the features, architecture and quality checks

What I built

  • Question banks per subject, with an explanation for the answer and for each option, served as quizzes and flashcards in study packs with a glossary, a plan and progress
  • Spaced repetition on a hand-rolled SM-2 scheduler that turns every right or wrong answer into the next review date
  • A semester library of syllabi and slides with Postgres full-text search, a substring fallback, and a link from every hit to its source page
  • An MCP server with 7 tools covering question sets, questions, materials, subjects, study state and an assistant, behind personal API keys
  • Native apps in SwiftUI for iOS and Kotlin with Jetpack Compose for Android, plus Tauri 2 desktop builds for macOS and Windows
  • XP and a semester ranking, with progress from every app synced to one account
  • A study assistant on Gemini 2.5 Flash through OpenRouter, which also reads scanned pages

How it works

  1. Course materialSyllabi and slides land in a semester library, indexed for full-text search.
  2. Question bankQuestions per subject, with explanations, grouped into study packs.
  3. PracticeQuizzes and flashcards on the web, iOS, Android or desktop, all on one account.
  4. Spaced repetitionSM-2 turns each right or wrong answer into the next review date.
  5. AI assistantsAny MCP client can list sets, fetch questions and search materials with a personal key.

Quality and reliability

  • Browser checks exercise the app at desktop, tablet and phone sizes
  • API keys are stored only as SHA-256 hashes, and each key is limited to 120 requests a minute
  • The SM-2 scheduler is pure: the clock is passed in, so every schedule is reproducible in tests
  • PostHog starts only after explicit consent; without it the app makes no PostHog calls

Technology

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Supabase
  • Drizzle
  • PostgreSQL
  • Zod
  • MCP
  • OpenRouter
  • SwiftUI
  • Kotlin
  • Jetpack Compose
  • Tauri 2
  • Playwright
  • Bun
  • PostHog
  • Vercel

Explore another problem I worked on

>_ Your next project

Liked what you saw?
Let’s get in touch!

Have an idea, a challenge, or a role in mind? I’d love to hear about it.

Let’s talk

>_ Start a conversation

Liked what you saw?
Let’s get in touch!

Tell me what you’re working on. Let’s see how I can help.

Email mepatryk@raba.pl
Send a message