Founder & Full-Stack Engineer (Personal project)
Zads
Personal education platform
- Next.js 16
- React
- TypeScript
- Node.js
- PostgreSQL
- Prisma
- Geolocation

The problem
Families need a way to find nearby teachers and request tutoring, while teachers need a place to present their subjects and pricing. Zads brings teacher discovery, location-aware search, lesson pricing, and parent requests into one product.
How it is built
Built the backend with Node.js, Express, Prisma ORM, and PostgreSQL, covered by HTTP integration tests that run in GitHub Actions before each Vercel deploy. The web app started on Nuxt 3 and Vuetify and was migrated to a single Next.js 16 App Router app: 42 routes under /[locale], Arabic/English RTL via next-intl, Auth.js v5, CASL role-based access, Server Components on the public pages with a Server Action for contact requests. The full source, including the archived Nuxt apps, is public at github.com/SayedEsmail/zads.
Web app (Next.js 16 App Router on Vercel)
├── /[locale]/public · client · teacher · admin
└── Auth.js v5 · CASL · next-intl (ar/en RTL)
│
▼
Node.js and Express backend
│
▼
Prisma ORM and PostgreSQLKey decisions
Build the backend with Node.js, Express, Prisma, and PostgreSQL
These technologies form the backend and data layer for the multi-app product.
Use location-aware teacher discovery
Families need to find teachers near them, so search uses location mapping and distance routing.
Move toward a unified Next.js and React frontend
The migration is intended to bring the customer app and admin dashboards toward one frontend stack.
What it changed for the product
- Connects families with nearby teachers through location-aware discovery.
- Gives teachers flexible pricing options for their lessons.
- Links parent sign-ups to tutor request workflows.
Hard parts and how I solved them
Finding nearby teachers
Flexible lesson pricing
Parent-to-tutor requests
Frontend migration
Stack and what each part does
- Node.js and ExpressBackend API
- Prisma ORMDatabase access
- PostgreSQLApplication database
- Nuxt 3 and Vue 3Customer web app and admin dashboards
- CASLAccess control
- FirebasePush notifications
- Next.js and ReactTarget for the frontend migration in progress
Highlights
Screens




