MeowLearn English App is a focused English-learning studio built for Vietnamese speakers. Version 2.0 replaces the game-like learning experience with a practical, situation-based curriculum designed to be clear, concise, and immediately useful.
- Next.js 16.3.4 with the App Router and Turbopack
- React 19.2
- Clerk 7.9 for authentication
- Drizzle ORM with Neon PostgreSQL
- Tailwind CSS 3.4
- Stripe Billing
- React Admin for the internal content management system
Node.js 20.9 or later is required.
Install the dependencies and start the development server:
npm install
npm run devRun the project checks:
npm run lint
npm run typecheck
npm run buildCreate a .env file with the following variables:
DATABASE_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
STRIPE_API_KEY=
STRIPE_WEBHOOK_SECRET=
NEXT_PUBLIC_APP_URL=http://localhost:3000Do not use Clerk development keys or Stripe test configuration in production.
The curriculum source is stored in scripts/seed-data.ts and supports one focused learning path:
- English for Vietnamese speakers
- 8 units
- 32 lessons
- 128 challenges
- 384 answer options
Seed the development database with:
npm run db:seedWarning: the seed command rebuilds the development dataset. It deletes existing courses, learning progress, and subscription records before creating the new curriculum. Do not run it directly against a production database. Use a backed-up migration process instead.
New learners can experience the product before creating an account:
- Choose a learning goal.
- Complete a sample English challenge.
- Receive immediate feedback and an explanation.
- Review a recommended daily learning plan.
- Create an account to save progress.
- Continue from the daily lesson dashboard.
app/(marketing)— public landing pageapp/(marketing)/start— pre-registration trial onboardingapp/(main)— learning studio, curriculum, lessons, goals, and support storeapp/admin— internal content administrationactions— Server Actions for learning progress and billingdb— Drizzle schema and database queriesscripts/seed-data.ts— English curriculum with Vietnamese explanationsscripts/seed.ts— development dataset builder
- Migrated
middleware.tsto the Next.js 16proxy.tsconvention. - Migrated Clerk
auth()andcurrentUser()to asynchronous server APIs. - Replaced Clerk
SignedInandSignedOutcomponents withShow. - Migrated dynamic route parameters and
headers()to Async Request APIs. - Upgraded Stripe to API version
2026-08-26.dahlia; subscription periods are read from subscription items. - Migrated ESLint to flat configuration and the standalone ESLint CLI.
- Restricted the product, curriculum, and administration flow to English learning for Vietnamese speakers.
- Replaced the original language-selection flow with a trial-first onboarding experience.
See ROADMAP.md for planned improvements and production-readiness work.