Personal site of Reza Mousavi — full-stack developer building modern web apps with React, Next.js and TypeScript.
- Framework — Next.js 16 (App Router, Turbopack)
- Language — TypeScript
- Styling — Tailwind CSS v4, shadcn/ui + https://ui.persian-labs.ir/llms.txt
- Data — supabase with Drizzle ORM
- Auth — better-auth (email + password, Google, GitHub)
- Caching / rate limiting — Upstash Redis
- Analytics — first-party beacon + optional GA4
- Jobs — BullMQ (blog publishing worker)
- extra info — the website has 2 languages english and persian - persian is rtl and uses https://ui.persian-labs.ir/docs/components
npm install
npm run dev # http://localhost:3200
npm run seed # seed admin account + demo content
npm run buildCreate a .env (see .env.production.example for the full variable list) and
set at least DATABASE_URL, BETTER_AUTH_SECRET, and ADMIN_EMAIL.
| Script | Purpose |
|---|---|
npm run dev |
Dev server on port 3200 |
npm run build |
Production build |
npm run start |
Serve the production build |
npm run lint |
ESLint |
npm run seed |
Seed admin account and demo content |
npm run blog:worker |
Publish scheduled blog posts |
see Structure.md