Temar

AI-powered spaced repetition

temar.app ↗Solo build: product, design, engineering, deploymentProprietary
temar.app
Temar landing page: Study smarter. Remember forever.
Temar dashboard with due reviews, growth overview and study areas
Dashboard: what is due, growth and study areas
Temar analytics with a memory retention forecast and review velocity charts
Analytics: memory retention forecast and review velocity
Temar area page showing FSRS state, ratings and topic coverage
Area view: FSRS state, ratings and coverage per topic

The problem

Writing flashcards by hand is slow, and most of what we study fades within days. Temar turns your notes into questions automatically, grades your answers by meaning, and schedules each review for when you're about to forget.

What it does

  • Write notes in a rich editor with Markdown, code, LaTeX and Mermaid diagrams
  • AI generates questions with grading rubrics: open-ended, multiple choice and coding challenges
  • Answers are graded on meaning, not exact wording
  • FSRS scheduling decides when each question comes back
  • A Socratic tutor guides you through hard concepts instead of handing over answers
  • Analytics show memory strength, mastery and forgetting curves per topic
  • Google Calendar sync, plus bring-your-own API key or prepaid credits

The AI system

Structured generation

Questions and rubrics come out of the LLM as typed schemas, validated before they reach the user.

Semantic grading

The model grades each answer against its rubric, and the result maps to an FSRS rating that drives the schedule.

Hybrid retrieval

Study history is searchable through pgvector embeddings combined with Postgres full-text search, merged with Reciprocal Rank Fusion.

Cost control

Prompt caching cut the cost of the tutor's large context. A credit system tracks token cost per operation against versioned model pricing.

Architecture

An Nx monorepo with a Next.js web app and separate NestJS services, deployed to a VPS by GitHub Actions with a separate staging environment.

Client
Next.js web appTailwind · shadcn/ui
Services
FSRS schedulingQuestion generationAnswer analysis
AI layer
LLM APIsStructured outputsPrompt cachingCost tracking
Data
PostgreSQLpgvectorFull-text searchDrizzle ORM
Delivery
Docker ComposeCaddyGitHub ActionsVPS + staging

Key
decisions

  1. Postgres + pgvector, no separate vector database

    One datastore, transactional consistency, and enough performance at this scale.

  2. Hybrid search over pure vector search

    Study notes are full of exact terms, like function names and formulas, that embeddings miss. RRF merges both rankings without tuning score weights.

  3. Prompt caching before re-architecture

    The fastest, lowest-risk fix for tutor cost came first.

  4. Pricing in the database, not in code

    Model prices change often. Versioned rows keep past cost records accurate.

StackTypeScriptNext.jsNestJSPostgreSQLpgvectorDrizzleTailwindshadcn/uiDockerCaddyGitHub Actions