Riqle
overview
What It Is
Riqle is my personal platform. Not a portfolio site with links and a contact form. A fully functional product with authentication, payments, content delivery, and resource management built from scratch.
The distinction matters because most developer portfolio sites are static. They show what someone has built elsewhere. Riqle is itself the thing being built. Every feature on the site is something I designed, engineered, shipped, and maintain in production.
role
What I Built
Tech stack: Next.js 15 App Router, TypeScript strict mode, tRPC for end-to-end type safe APIs, Prisma ORM, PostgreSQL, NextAuth.js v5 for authentication, Stripe for payments and subscription management, Vercel Blob for file storage, Inngest for background jobs and event-driven workflows, Resend for transactional email, and Upstash Redis for caching and rate limiting. Deployed on Vercel.
Authentication — full sign up, login, session management, and account flows via NextAuth.js v5.
Payments — Stripe integration with product listings, checkout, and purchase history. Resources can be free or paid. Customers get access to purchased content through their account.
Content delivery — resource library with browsing, filtering by category, and individual resource pages. Built to support HSC resources, articles, and other content types.
Tutoring — booking infrastructure for private English tutoring with years 10 to 12.
Writing — a publishing system for articles and essays with individual post pages and a browsable index.
Changelog — a running record of what has been built and shipped on the site over time.
The entire stack is type safe end to end. tRPC means the API layer shares types with the frontend so breaking changes surface at compile time, not in production. Prisma handles schema management and migrations. Inngest handles anything that should not block a request — background processing, webhook handling, scheduled jobs.
team size: solo project
execution
Why I Built It This Way
I could have used an existing CMS, a Shopify store, and a separate blog platform. That would have been faster to set up and harder to own.
Building the full stack myself meant every decision was deliberate. The schema reflects how I actually think about the data. The API is exactly what the frontend needs. The payment flow works the way I want it to work. Nothing is a workaround for someone else's abstraction.
It also meant I could use the site itself as a proving ground. Every pattern I implement here — auth flows, background jobs, payment webhooks — I understand end to end because I built it from scratch. That compounds over time in a way that using pre-built tools does not.
outcome
Status
In production. Authentication, payments, content delivery, and tutoring bookings are all live.
Resources and writing sections are being populated. Ordo and Incline My Heart will be published here when they are ready.