Skip to content
Portfolio — 2026Open for freelance & collaborations

Vishal Kumar Thakur.

Full-Stack Developer & Founder

I ship production apps on my own — payments, auth, and the security work most builds skip. Six are live. One of them takes real money from real students every day.

Role
Solo full-stack developer
Studying
BCA Cybersecurity, LPU
Also
Founder, Mithila KritiKala Trust
Next.jsTypeScriptReact NativeFastAPIPostgresPrismaDrizzleRazorpayClerkBetter AuthClaude APIGeminiYOLOv11GitHub Actions
6
Apps in production
HMAC
Verified payment webhooks
12A/80G
Registered charitable trust
3
Training batches completed

About

I build the whole thing — frontend, API, database, payments, deploy — and then I go back and break it on purpose.

I'm a BCA Cybersecurity student at Lovely Professional University in Phagwara, graduating July 2027. The degree is the reason my projects get an audit pass before they get a launch: IDOR checks, webhook signature verification, constant-time comparisons, rate limits. Most of my security fixes came from attacking my own apps first.

I'm from Benipatti in Madhubani, Bihar — Mithila country. The art my district is known for shows up in what I build: a storefront for contemporary Mithila pieces, and a trust that teaches the craft to women who live there.

I'm not interviewing for campus placements. I'm building products and taking client work, and I'd rather be judged on what's running in production than on a CGPA.

Studying
BCA Cybersecurity · LPU Phagwara · July 2027
From
Benipatti, Madhubani, Bihar
Direction
Founder & freelance — not placements
Works with
Founders, small businesses, campus products
Vishal Kumar Thakur

Selected work

Six things I built and shipped.

This is the curated set, not the full list. Each one is a real system with real constraints — open the build notes for the part that took the longest.

Hungriees — Campus food pre-ordering that takes real money, from real students, every day.
In production2026

Hungriees

Campus food pre-ordering that takes real money, from real students, every day.

Students pre-order from campus outlets and skip the queue; shopkeepers get a live order board, analytics and payouts. React Native (Expo) client, FastAPI backend, Neon Postgres, Clerk auth, Cloudinary media, Razorpay payments. Multi-role — customer, shopkeeper, admin — with the entire money path computed server-side.

  • React Native
  • Expo
  • FastAPI
  • Neon Postgres
  • Clerk
  • Razorpay
  • Cloudinary

  • Payment webhooks are HMAC-verified

    Razorpay callbacks are rejected unless the signature validates against the raw request body. Order totals are recomputed on the server at capture time, so the client never gets a say in what it owes.

  • IDOR protection across every resource

    Ownership is enforced at the query layer, not the route. A customer cannot fetch, mutate or refund another customer order by changing an ID, and a shopkeeper is scoped to their own outlet.

  • Timing-attack fixes on secret comparison

    Token and signature checks were rewritten to constant-time comparison after the naive equality checks turned out to leak length and prefix information under timing measurement.

  • Forward-only order state machine

    Orders move through a fixed sequence and cannot be replayed, reversed or skipped. A retried webhook or a double-tapped button lands on the same final state instead of double-charging.

DKOM — A Mithila art brand — art you wear, art you live with — audited before launch.
Live2026

DKOM

A Mithila art brand — art you wear, art you live with — audited before launch.

A contemporary Mithila art label selling apparel and pieces for the home, built on Next.js and TypeScript. The catalogue runs a dual fulfilment model: Ready-to-Ship stock that ships immediately, and Made-to-Order work priced and scheduled per commission, because hand-painted pieces cannot be treated like warehouse inventory.

  • Next.js
  • TypeScript
  • Tailwind
  • Postgres
  • E-commerce

  • Patched a Next.js CVE before launch

    A dependency audit during pre-launch surfaced a known Next.js advisory affecting the version in use. Patched and re-verified, with the upgrade path documented so the fix does not regress on the next install.

  • IDOR fixed on order lookup

    Order and address endpoints were returning records by ID without binding them to the session. Rewritten so every read and write is scoped to the authenticated customer.

  • Rate limiting on the abusable routes

    Auth, checkout and enquiry endpoints are throttled per identity and per IP, which closes off credential stuffing and cheap enumeration of the order space.

  • Two fulfilment models in one catalogue

    Ready-to-Ship and Made-to-Order carry different stock rules, lead times and pricing logic, resolved in a single product model so the storefront never promises a delivery date the studio cannot hit.

AstroSaathi — Vedic astrology with an AI reading layer — bilingual, and free.
Live2026

AstroSaathi

Vedic astrology with an AI reading layer — bilingual, and free.

Birth-chart generation backed by the Prokerala API, with Claude reading the chart back to you in plain language instead of raw tables of houses and degrees. Astro 5 with Neon Postgres and Drizzle, Better Auth for sessions, and the whole interface in both English and Hindi. Free to use, with no paywall on a reading.

  • Astro 5
  • Neon
  • Drizzle
  • Better Auth
  • Claude API
  • Prokerala API

  • AI interpretation grounded in real chart data

    Prokerala returns the chart mathematics; Claude turns it into readable interpretation. The prompt is bound to the computed chart so the model explains that data rather than inventing a horoscope.

  • Bilingual end to end

    English and Hindi across the UI, the chart labels and the generated interpretation — not a translated menu bar sitting on top of English output.

  • Islands architecture keeps it fast

    Astro 5 ships the chart pages as mostly static HTML and hydrates only the interactive pieces, so a chart loads quickly on the low-end Android phones most of the audience uses.

Dashy — A productivity SaaS with a 51-table schema behind a phone-first interface.
Private beta2026

Dashy

A productivity SaaS with a 51-table schema behind a phone-first interface.

One place for tasks, habits, notes, finance and everything else that was scattered across five different apps. Next.js 15 and React 19 on a 51-table Prisma schema, Better Auth for sessions, Zustand for client state. Designed phone-first, because that is where the check-ins actually happen.

  • Next.js 15
  • React 19
  • TypeScript
  • Prisma
  • Better Auth
  • Zustand

  • 51 tables that still answer fast

    A domain this wide gets slow at the joins. The schema is normalised with explicit indexes on the access paths the dashboard actually uses, so the home view stays a small number of queries instead of an N+1 cascade.

  • Mobile-first, not mobile-tolerated

    Layouts are designed at 390px and scaled up. Every primary action sits inside thumb reach, and the desktop view is the adaptation rather than the reference.

  • Typed all the way through

    Prisma types flow through the server layer into the React components, so a schema change surfaces as a compile error instead of a runtime blank screen.

Diamond Jewellers — The family shop, with a RAG chatbot and gold rates that post themselves.
Live2026

Diamond Jewellers

The family shop, with a RAG chatbot and gold rates that post themselves.

A storefront for the family jewellery business: Astro 5 with React islands on the front, FastAPI behind it. A retrieval-augmented chatbot answers product and store questions from pgvector embeddings on Neon with Gemini generating the reply, and a scheduled job publishes the day gold and silver rates without anyone opening a laptop.

  • Astro 5
  • React
  • FastAPI
  • pgvector
  • Gemini API
  • GitHub Actions

  • RAG over pgvector, not a bare LLM

    Questions are answered from embedded shop and catalogue content retrieved out of pgvector on Neon Postgres, with Gemini generating from those passages. Grounding it in real content is what stops it inventing prices.

  • Daily rate posting via GitHub Actions

    A scheduled workflow pulls the day gold and silver rates, renders the post and publishes it. The shop daily rate update went from a manual chore to a cron line.

  • Islands keep the chatbot off the critical path

    The storefront is static Astro output and only the chat island hydrates. A visitor browsing rings never pays the JavaScript cost of a chatbot they did not open.

THEFT 0.91WhatsAppalert to ownerCCTV FEED → YOLOv11 (ROBOFLOW) → TWILIO
Prototype2026

AI CCTV Theft Detection

Shoplifting detection for kirana shops, on the camera they already own.

Small neighbourhood shops in India lose stock they never see leave. This runs a YOLOv11 model, trained and served through Roboflow, against the existing CCTV feed and sends the owner a WhatsApp alert through Twilio the moment it flags a likely theft. Aimed at a ₹999/month subscription — priced for a shop, not an enterprise.

  • Python
  • YOLOv11
  • Roboflow
  • Twilio
  • Computer Vision

  • Trained on the shelf, not on a benchmark

    The dataset is annotated from shop-floor footage with bad angles, bad light and cluttered shelves, because a model tuned on clean academic video falls apart in an actual kirana aisle.

  • The alert arrives where the owner already is

    Detections go out as Twilio WhatsApp messages. No app to install and no dashboard to watch — the owner gets a message on the number they use all day.

  • The price set the architecture

    ₹999 a month, running against the camera already on the wall. That business constraint drove the technical one: inference has to be cheap enough to survive the price.

Private repo

Also built

  • FRIDAY

    Private

    A voice assistant that never leaves the machine — Whisper for speech, Ollama for the model, Piper for the voice. Fully local pipeline, no cloud round-trip, no transcript leaving the laptop.

    • Python
    • Whisper
    • Ollama
    • Piper
  • The website for the trust I founded — artisan stories, training programmes and donation paths for a registered public charity.

    • React
    • Tailwind

Founder

A registered public charitable trust teaching Mithila painting and vocational skills to women in the district I am from.

Mithila KritiKala

mithilakritikala.com

Founder & Managing Trustee

I registered Mithila KritiKala in July 2025 in Benipatti, Madhubani. Mithila painting is the thing my district is known for and the thing most of the women who can do it have never been paid properly for. The trust runs training batches in painting and stitching, and works towards the point where the craft is income rather than decoration.

It is a real legal entity with real paperwork: 12A and 80G registration, an NGO Darpan ID, and a trust deed. I built and run the website as well. Three batches have completed training so far.

3
Training batches completed
2
Disciplines taught — painting & stitching

On the record

Entity
Registered public charitable trust
Tax status
12A & 80G registered
NGO Darpan ID
BR/2025/0781443
Founded
July 2025 · Benipatti, Madhubani

Stack

What I build with, and what I break with.

Every tool below has shipped in something on this page. The security group is the one worth reading twice — those are fixes I made to my own live apps, not coursework.

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • React Native / Expo
  • Astro

Backend

  • FastAPI
  • Node.js
  • REST APIs
  • WebSockets
  • Python

Databases

  • Postgres (Neon)
  • Prisma
  • Drizzle
  • pgvector
  • Firebase

Auth

  • Clerk
  • Better Auth
  • Session & token design

AI & Automation

  • Claude API
  • Gemini API
  • RAG
  • YOLOv11 / Roboflow
  • n8n
  • GitHub Actions

Security

  • IDOR prevention
  • Webhook signature verification (HMAC)
  • Timing-attack mitigation
  • Rate limiting
  • CVE patching & dependency audit
  • Forward-only state machines
  • Server-side price computation

From the Cybersecurity degree, applied to my own production apps — each of these is a fix I shipped, not a topic I read.

Contact

Have something to ship?

I take freelance and contract work — web apps, mobile apps, storefronts, and security passes on things that are already live. If you are a founder without a technical co-founder, that is the situation I work in most often.

Currently taking work for the next quarter.

Useful first message

  • What you are building
  • Where it is stuck
  • Rough timeline and budget