Language learning web application / Production preview
VocabVerse
VocabVerse is a Japanese vocabulary learning app for studying through songs without treating any lyric source as automatically safe, useful, or ready for public display. The product has to turn lyrics into study material while still tracking source eligibility, study state, and account boundaries.
I built and deployed a Next.js, React, Prisma, and PostgreSQL learning app with song and lyric study models, intent-based review paths, source-language eligibility checks, public editorial routes, account controls, and Nginx/systemd deployment.

- Role
- Sole developer
- Focus
- Language learning application and data modelling
- Maturity
- Production preview
- Access
- Public routes; private-beta study runtime
- Technologies
- Next.js
- React
- TypeScript
- Prisma
- PostgreSQL
- Last reviewed
- Aug 2026
The problem
What the project had to handle
The challenge is separating a functional study workflow from claims about learning effectiveness. It can show the implemented study workflow, deployed data model, and public product surface, while measured learning results need separate evidence.
Public examples need synthetic or reviewed content. The app can demonstrate lyric-to-study behaviour without exposing private-beta data or relying on unreviewed lyric rights.
Key decisions
The shape of the build
Separate public surface from study runtime
Landing, demo, beta, trust, and login routes are separated from authenticated learner routes and private-beta data.
The project can explain the product publicly without exposing learner data or pretending the private runtime is a broad public launch.
Gate lyric eligibility
Manual and LRCLIB imports classify Japanese suitability and unsupported sources before normal persistence.
Song material becomes a reviewed input to the study model rather than an unchecked pile of text.
Shape study around learner intent
Daily, Weak, New, and Practice paths organise review work around target-aware queues, workload controls, and lyric-context feedback.
The interface supports different study modes without claiming that the method has measured learning results yet.
How it works
End-to-end flow
Songs and lyrics enter through manual or search/import paths, then source-language checks and processing diagnostics decide whether the material can become study data. Authenticated learner routes organise vocabulary, grammar, learning targets, study items, and review attempts, while public routes use a synthetic demo to show the lyric-to-study loop safely.
Study loop
VocabVerse
Song lyrics become durable Japanese study material.
What I implemented
The working surface
Study data model
- Modelled songs, lyrics, lyric lines and tokens, vocabulary, grammar patterns, learning targets, study items, and review attempts.
- Stored study and review state through Prisma/PostgreSQL.
- Recorded processing diagnostics for source, hash, counts, warnings, errors, and readiness states.
Learning workflows
- Built Daily, Weak, New, and Practice study paths.
- Added lyric-context answer feedback and workload controls.
- Connected song library, lyric inspection, vocab, patterns, and study routes.
Public and account surfaces
- Built public landing, demo, beta, pricing, privacy, terms, content-policy, and login routes.
- Added an interactive synthetic public demo and ruby target highlight geometry.
- Implemented account export and deletion controls for signed-in private-beta accounts.
Deployment and validation
- Deployed the app behind Nginx with a localhost-only Next.js production server.
- Validated Prisma, linting, build, docs, ports, secrets, and route boundaries through project checks.
- Focused public copy on implemented flows rather than measured learning results.
Validation
Checks and evidence
Production preview deployed
The production-preview application runs behind Nginx with a localhost-only Next.js service and PostgreSQL persistence; Prisma, lint, and build checks pass.
Synthetic public demo
The public demo route shows the lyric-to-target-to-review loop with self-written sample lines rather than private data or unreviewed lyric material.
Source-language guardrails
The source includes lyric eligibility checks, unsupported-source handling, and reclassification scripts around Japanese suitability.
Account controls
Signed-in private-beta accounts can export or delete their data.
Current state
Production-preview private beta with public landing, demo, beta login, and test surfaces.
The public demo uses synthetic content and does not expose private beta data or unreviewed lyric material.
Measured learning outcomes have not yet been evaluated; paid-plan operation and broader public launch are not currently evidenced.