web
Personal product suite for albertonline.org — AI chat, form/travels/plans tools, and admin telemetry behind one Better Auth login.
Overview
web is the main product for albertonline.org: a suite of tools behind one
Better Auth login — AI chat, image/audio/video generation, a form builder, a
table builder, a map-first travels deal-watcher, an agent-plans kanban, todos,
sites, a dashboard, and a CMS-backed blog. It also exposes an MCP server
(POST /mcp) so authenticated agents can create and track plans. Built on
Next.js 16 (App Router, Turbopack) and localized in en / lt / ru.
Stack
- Next.js 16 (App Router, Turbopack) + React 19
- Effect v4 RPC API (
@repo/api,@repo/effect-http) - Drizzle ORM (
@repo/db) + Supabase / Upstash-REST Redis (rate limiting) - Better Auth (
@repo/auth,@polar-sh/better-auth) - next-intl internationalization (
@repo/internationalization, en/lt/ru) - Tailwind CSS + radix-ui +
@repo/design-system - next-safe-action, react-hook-form, nuqs, TanStack Table
@repo/aichat (Claude / Gemini / GLM models, voice dictation) + OpenAI image generation- three / @react-three (3D visuals)
- MapLibre GL via mapcn (
@repo/design-system/components/map)
Admin-only routes (ai, plans, forms, tables, sites, images, audio, video,
travels, telemetry, admin) redirect non-admins to /dashboard.
Develop
pnpm -F web dev # http://localhost:3001 (Turbopack)
pnpm -F web dev:local-prod # :3001 against the prod Supabase poolerTest
pnpm -F web test # vitest (node + unit configs)
pnpm -F web test:unit # unit config only
pnpm -F web test:browser # vitest browser mode
pnpm -F web test:coverage # coverage (v8)
pnpm -F web test:e2e # Playwright (local; auto-spawns dev server on :3001)
pnpm -F web test:a11y # Playwright accessibility (axe-core)
pnpm -F web test:lhci # Lighthouse CIBuild & deploy
pnpm -F web build # next build --turbopack
pnpm -F web deploy # OpenNext build + deploy to Cloudflare Workers
pnpm -F web preview # OpenNext local preview
pnpm -F web desktop:build # Tauri desktop buildProduction for web is served on Vercel
(www.albertonline.org). An OpenNext/Cloudflare
Workers target (wrangler.jsonc, open-next.config.ts, pnpm -F web deploy)
and a Tauri desktop build (src-tauri/) also exist as alternate targets.
See Deployment.
Structure
src/
├── app/
│ ├── [locale]/ # localized routes: ai, images, audio, video,
│ │ # forms, tables, travels, plans, todos, sites,
│ │ # dashboard, telemetry (admin), account, blog
│ ├── api/ # agent, ai, chat, forms, images, rpc, metrics, auth
│ └── mcp/ # MCP server (POST /mcp)
├── actions/ # next-safe-action server actions
├── components/ # header, sidebar, providers, locale switcher
├── lib/ # auth, navigation, forms, supabase helpers
├── i18n/ # next-intl request config
└── utils/ # shared client/server utilsSee the apps overview and the monorepo overview.