Skip to content
Vijay Gojiya
All work

Personal, 2026

Product, architecture and all three surfaces

VM Academy

A multi-skill learning platform. Three repositories, one API, one database.

A place to learn several skills in one sitting rather than one skill across five abandoned tabs. Five domains, around twenty categories, tracks that run across them, and an invite-only faculty rather than a marketplace with two hundred thousand listings and no editor.

It is three separate repositories with nothing importing across the boundary: an Expo app, a TanStack Start web app, and a Hono API. The web app alone carries three audiences, the marketing site, the signed-in student experience and an admin panel, which is what decides most of the routing and the auth shape.

Money is the other axis. It sells a membership and a one-time purchase at the same time, with multi-instructor applications, review and payouts in the first version rather than deferred to later.

Surfaces

  • webTanStack Start on Nitro

    Marketing site, student experience and /admin in one application. Mux for video playback and direct uploads.

    • TanStack Start
    • TanStack Router
    • TanStack Query
    • Nitro
    • Mux Player
    • Base UI
    • shadcn
    • Tailwind v4
    • Better Auth
    • Cloudflare
  • serverHono on Node

    REST over Hono, Drizzle against Postgres, Razorpay for payments, Resend for mail. Each client carries a generated contract file, so no client imports server code.

    • Hono
    • Drizzle ORM
    • Postgres
    • Better Auth
    • Razorpay
    • Resend
    • Zod
    • Docker
  • nativeExpo 57, React Native 0.86

    Browse, learn and track progress. Web sells and mobile learns, which keeps store billing out of the purchase path.

    • Expo 57
    • React Native 0.86
    • React 19
    • TanStack Query
    • Reanimated 4
    • MMKV
    • Better Auth
    • Sentry

Engineering notes

  • Three repositories with no cross-imports; each client holds a generated contract of every response type it uses
  • One Better Auth configuration, mounted by both the API and the web application
  • Passwordless sign-in by emailed code, with fixture accounts the server logs loudly in development
  • A written PRD, file map and audit kept in all three repositories and reconciled by hand