Skip to content
publik.
Browse appsAppsPricingSupport buildersSupport
+Publish a repoPublish
Browse appsHow it worksPublish a repoSupport buildersGet helpPricingDevelopersGitHubPrivacy
© 2026 Publik
← All apps

Microstudy

duolingo but for your own tests

AI runs online

not yet reviewed by publik. It is live now; the founder has not reviewed this version yet.

M

Microstudy

open source · on publik

On your phone?

You install Microstudy from a computer. Send yourself the link and open it there.

Vote on Microstudy
−1
Read the install guide→Open in GitHub↗

Compared with

d

duolingo

Paid

Having trouble? Tell us

Where Microstudy’s AI runs, and what it costs

Prices are for one typical use: one request of about 1,500 words sent and 375 words back. A higher quality score is better.

On your computer

Microstudy has no option to run its AI on your computer.

publik API

Price
$0.0100 per use, $10.00 per 1,000 usespublik-balanced, the default level
Quality
MiMo-V2.6-Pro: 46
Setup
Not built into Microstudy yet. A publik API key works wherever Microstudy takes an OpenAI-compatible address.

Your own key

Price
$0.0013 per use, $1.31 per 1,000 usesMiMo-V2.6-Pro at OpenRouter’s list price, before its fee for buying usage
Quality
MiMo-V2.6-Pro: 46
Setup
Open a provider account, add a card, paste the key into Microstudy.

Quality and price, side by side

Quality score and cost per 1,000 typical uses for local models and the three publik API levels
ModelQualityPer 1,000 uses
On your computer (Ollama, 4-bit download size)
Granite 4.2 3B2.2 GB9$0
Phi-4 Mini2.5 GB6$0
Llama 3.1 8B4.9 GB7$0
gpt-oss 20B14 GB9$0
Gemma 4 31B20 GB19*$0
Qwen3.5 35B-A3B24 GB19*$0
publik API
publik-fastGLM-5.3 Flash42$1.00
publik-balancedMiMo-V2.6-Pro · Microstudy46$10.00
publik-smartGPT-6 Sol48$18.00

Quality: Artificial Analysis Intelligence Index v4.3.2, read 2026-09-22 (publik API models 2026-09-25); * = estimated by Artificial Analysis. Sizes: the Ollama library, read 2026-09-22.

What you pay for

  • On your computer: nothing per use. You pay in disk space, memory and electricity, at lower quality.
  • publik API: publik’s published price for each use, in dollars, from your publik balance. It is above the model’s cost; the difference runs publik and pays the app’s builder.
  • Your own key: the provider’s price, billed to an account you keep with the provider.
See plans and prices →How publik API pricing works →

How to install Microstudy

Every step written out. No terminal experience needed. Pick your setup.

  • How to install Microstudy on iPhone using a Mac →
  • How to install Microstudy on Android using a Mac →
  • How to install Microstudy on Android using a Windows PC →
  • Can you install Microstudy on iPhone from a Windows PC? →

README

Open in GitHub ↗

MicroStudy — Your Daily Learning Path

MicroStudy turns study material into a daily learning path: you upload your notes, tell it how many days you have until your exam, and the app automatically splits the material into sequential steps with fresh AI-generated questions per session. Duolingo-style structure (streaks, XP, daily steps), with the visual polish and interaction feel of Apple (fluid spring animations instead of rigid CSS transitions).

🔗 Live: microstudy.lovable.app 🛠️ Editor: Lovable project

Built with Lovable. Every change made in the Lovable editor is committed straight to this repository, and pushes to main on GitHub sync back into Lovable.


Table of contents

  • Features
  • Tech stack
  • Architecture & folder structure
  • Database schema (Supabase)
  • AI integration
  • Push notifications
  • Running locally
  • Environment variables
  • Scripts
  • Known open issues

Features

🧭 Learning path (core feature)
  • User uploads study material (text, PDF, Word .docx, or a photo) and specifies how many days until the exam.
  • An AI model (via the Lovable AI Gateway, Gemini 3.5 Flash) splits the material into exactly as many learning steps as there are days, increasing in difficulty, tailored to education level, goal, and available daily time (from the user's profile).
  • Each day automatically unlocks the next step (unlock_date).
  • Every step generates fresh multiple-choice and/or open questions — never duplicated, and strictly scoped to that step's material.
  • Open questions are graded by AI (fair but lenient), with feedback in Dutch (the app's UI language).
  • Completing a step awards XP (10 XP per correct answer) and updates the streak.
🔥 Streaks & XP
  • Daily streak counter that only continues on consecutive active days.
  • XP accumulates per correctly answered question and per completed step.
👥 Groups & leaderboard
  • Users can create groups and get a unique invite code.
  • Others can join via a join_group_by_code RPC function.
  • Leaderboard per group, sorted by XP, with each member's streak shown.
🔔 Notifications (email + push)
  • A server-side cron job (/api/public/push-check) decides per user, per day, whether and which push notification to send — via the same AI gateway (decidePush), based on context: open steps, upcoming exam date, streak, leaderboard position, inactivity.
  • Per-category preferences: notify_study, notify_streak, notify_leaderboard, notify_inactivity (configurable via NotifyPrefsPanel).
  • Maximum of 1 notification per user per day.
  • After 14 days of inactivity: one final notification, after which the app automatically stops sending (push_stopped).
  • Delivered via Firebase Cloud Messaging (web push), with automatic deactivation of expired device tokens.
🔐 Authentication
  • Email + password via Supabase Auth (deliberately no "Continue with Google").
  • Password recovery flow (/wachtwoord-herstellen).
🎨 Visual & interaction design (Apple-style)
  • Immediate feedback on touch/click, no artificial delay (Pressable component).
  • Spring animations (via motion/Framer Motion) instead of fixed CSS transitions: critically damped by default, with light bounce only on drag/swipe interactions with momentum.
  • Animations are interruptible/reversible at any time without "jumping".
  • Subtle translucency/blur for overlays (e.g. the nav bar) instead of flat colors.
  • System font, tight letter/line spacing for large headings (streak counter, XP), roomier line spacing for body text.
  • Respects prefers-reduced-motion (cross-fade instead of spring/slide) and prefers-contrast.
📱 PWA
  • Installable as a Progressive Web App (vite-plugin-pwa), with its own icon set (public/icons/) and Apple-specific meta tags (apple-mobile-web-app-capable, etc.).

Tech stack

LayerChoice
FrameworkTanStack Start (React 19) + TanStack Router (file-based routing)
Data fetching / stateTanStack Query
Server functionscreateServerFn from @tanstack/react-start (type-safe RPC to the server)
Database & authSupabase (Postgres + Auth + RLS)
AILovable AI Gateway → google/gemini-3.5-flash (JSON mode)
Push notificationsFirebase Cloud Messaging (web push)
StylingTailwind CSS v4 + shadcn/ui (Radix UI primitives)
Animationmotion (Framer Motion)
Forms & validationreact-hook-form + zod
BuildVite 8, Bun (lockfile: bun.lock)
LanguageTypeScript
Linting/formattingESLint 9 (flat config) + Prettier
PWAvite-plugin-pwa

Choose your devices