TransLoop
A language-learning app built around the double-translation loop - translate the source into the foreign language, then days later back-translate your own version to your mother tongue and compare what's lost.
- FastAPI
- React
- OpenAI
- Language Learning
Projects list - per-topic progress (EN→KO ratio) and state (active / draft / completed) on one screen
Create project - name, description, source and target language; that's a learning unit
Inside a project - each text card surfaces its difficulty and last score; one Practise click enters the loop
Phase 2 - back-translate your own version to the source language and see the semantic drift firsthand
Result - showing both the translation (82) and back-translation (85) makes the semantic gap visible
AI feedback - Strengths, Improvements, Hints, and what survived the back-translation, broken down per category
- Context
Packages the well-known double-translation method (source → foreign language → back-translation to mother tongue, used as self-checked semantic loss) into a tool. Started in 2025, paused, now restarting on a full-stack structure.
- What I did
- Backend - FastAPI + SQLAlchemy 2.0 async + Pydantic v2 + OpenAI, alembic migrations
- Frontend - Vite + React 19 + Tailwind v4 + shadcn + TanStack Query, access/refresh token auth
- Deploy - backend on Render + Neon Postgres, frontend on Cloudflare Pages
- Product decisions
- Use "the gap between your translation and the source" as the learning signal instead of "compare to the right answer" - seeing the semantic loss yourself goes deeper than scoring correctness
- Tokens in localStorage with a one-shot auto-refresh on 401 before falling back to /login - to minimize interruptions mid-session
- Outlook
Restarting. Personal dogfooding is testing the "self-comparison vs answer-comparison" hypothesis.
- Tech stack
- FastAPI
- Python
- SQLAlchemy 2.0 (async)
- Pydantic v2
- OpenAI
- React 19
- TypeScript
- Vite
- Tailwind v4
- TanStack Query