Readmigo Web is the core web application for Readmigo, providing online reading, vocabulary management, content discovery, and more. Users can use the web app directly in the browser without installing the iOS or Android app.
The web app is one of the three primary clients of Readmigo (iOS, Android, Web). It shares the backend API with the mobile apps and targets desktop users and web browsing scenarios. Related projects include the marketing site (website) and the content management platform (docs).
- Framework: Next.js 16 (App Router)
- Language: TypeScript (strict mode)
- Styling: Tailwind CSS 4
- State Management: Zustand
- Authentication: NextAuth.js
- Analytics: PostHog, Amplitude, Sentry
- Testing: Vitest (unit), Playwright (E2E)
- Package Manager: pnpm 9.14.2
- Node.js: 20.x
graph LR
A[Browser] -->|HTTP/S| B[Vercel CDN]
B -->|SSR/SSG| C[Next.js App]
C -->|API Calls| D[Readmigo API]
C -->|Event Tracking| E[PostHog/Amplitude]
C -->|Error Tracking| F[Sentry]
D -->|Query/Update| G[Database]
src/app/— Next.js App Router pages and layoutssrc/components/— React component librarysrc/features/— Feature modules (reading, vocabulary, discovery, etc.)src/hooks/— Custom React hookssrc/i18n/— Internationalization configuration and translationssrc/lib/— Utility functions and shared librariessrc/styles/— Global stylessrc/test/— Test utilities and fixturessrc/types/— TypeScript type definitionspublic/— Static assets (favicon, manifest, etc.)
- Node.js 20.x
- pnpm 9.14.2
- Readmigo API (backend) running
# Install dependencies
pnpm install
# Configure environment variables (copy example and fill in)
cp .env.example .env.local
# Start the dev server (port 3001)
pnpm dev
# Run unit tests
pnpm test
# Run E2E tests
pnpm test:e2e
# Build production bundle
pnpm build
# Start production server
pnpm start
# Type checking
pnpm typecheck
# Linting
pnpm lintThe web app is deployed on Vercel; the configuration file is vercel.json.
| Environment | URL | Trigger |
|---|---|---|
| Production | https://web.readmigo.app | Push to main branch |
| Preview | {branch}.readmigo.vercel.app |
Pull request created |
The GitHub Actions workflow (ci.yml) runs linting and type checking on every commit; once they pass, deployment to Vercel happens automatically.
REQUIRED:
NEXT_PUBLIC_API_URL— Readmigo API base URLNEXT_PUBLIC_POSTHOG_KEY— PostHog project API keyNEXT_PUBLIC_AMPLITUDE_KEY— Amplitude API keyNEXT_PUBLIC_SENTRY_DSN— Sentry error tracking DSNNEXTAUTH_SECRET— NextAuth.js encryption secretNEXTAUTH_URL— Application base URL
- website — Marketing site (https://readmigo.app)
- docs — Project documentation (https://docs.readmigo.app)
- api — Backend API and database
- ios — iOS mobile app
- android — Android mobile app
- Online docs: https://docs.readmigo.app