Full-stack developer working mostly in TypeScript: Next.js and React on the front, Node/Express and Supabase/Postgres or MongoDB behind it, deployed on Vercel and Cloudflare. I like shipping things people can actually open and use, and I contribute fixes to open-source projects I learn from.
Portfolio: jeevan2410.github.io/Portfolio
Merged:
- libredb/libredb-studio#1522: MongoDB whole-database Validate and Compact no longer crash on views; time series collections are handled and per-collection failures are reported (verified on MongoDB 7.0, 8.0 and 8.2).
- libredb/libredb-studio#1554: MongoDB schema inference and the data profiler count fields missing from some documents as nullable.
- libredb/libredb-studio#1556: Monitoring labels a Percona Server correctly instead of calling it MySQL.
- libredb/libredb-studio#1561: running a selected statement in the editor drops its trailing terminator on engines that take none, such as Oracle and Elasticsearch.
- libredb/libredb-studio#1562: LibreDB connections refuse
:memory:and name a missing directory clearly. - libredb/libredb-studio#1571: ClickHouse, Druid, libSQL and Couchbase name the refusal and the address when a server cannot be reached, instead of "fetch failed".
- libredb/libredb-studio#1595: CockroachDB functions and procedures no longer offer an Edit that every apply refused; the provider measures at connect whether the server runs the edit guard (verified on CockroachDB v26.3.2 and PostgreSQL 18.6).
- libredb/libredb-studio#1609: the Explain panel works on Vitess 25, whose vtgate refuses to explain a statement that names no table; the connect-time probe now asks against a table of the keyspace (verified on Vitess 25 and 24, MySQL, MariaDB, TiDB and StarRocks).
- libredb/libredb-studio#1620: inline row edit saves on StarRocks, which refuses to prepare an UPDATE; a statement refused that way is sent once more as text with its values safely written in (verified on StarRocks 4.1.6 and 3.3.22, MySQL and Doris).
- lingui/js-lingui#2703: the Vite plugin's native macro transform no longer fails on module ids with a query string (React Router framework mode).
- lingui/js-lingui#2718: the macro reference no longer documents a
formatprop that<Plural>and<SelectOrdinal>never had, and says how#is formatted. - reticlehq/reticle#1574:
reticle initfinds a Next.js root layout that lives in a route group instead of reporting there is none. - reticlehq/reticle#1603:
reticle initnames the route-group root layouts it left without<ReticleDev />, so no route goes unobserved silently.
Shipped in a release: reticle#1402, an absent check on a hidden element names state: hidden (Reticle 3.6.0).
In review: reticle#1719, reticle#1720, corsair#1847.
| Project | What it is | Stack |
|---|---|---|
| AdikeCast · live | Weekly arecanut price forecasts for Dakshina Kannada markets, turned into a plain Sell / Hold signal for farmers, in English and Kannada, with a free JSON API | Next.js 16, TypeScript, Zod |
| QuoteFlow | Quote-to-cash SaaS for small service businesses: enquiries, quotes, jobs and follow-ups | Next.js 16, TypeScript, Cloudflare Workers |
| CineGen API | Backend for AI video and image generation: JWT auth and roles, credits, async jobs via queue, signed webhooks and a fallback poller | Node.js, Express, MongoDB, Cloudinary |
| Tiny Planet: Shrines of the Blight · play | A 3D action-RPG on a tiny round world, with quests, gear, saves and a synthesised audio engine | Three.js, TypeScript, Vite, IndexedDB |
| Tiny Planet Courier · play | Multiplayer browser delivery game with other players in real time | Three.js, Supabase Realtime |
| BookNest · live | A bookstore and book-box subscription site: browse by genre, build a box, gifts, membership, accounts and checkout | React, Supabase, Framer Motion |
| achievement-tracker | CLI that shows progress toward GitHub achievement tiers | TypeScript, GitHub REST and GraphQL |
| Project | What changed |
|---|---|
| Weather · live | Animated sky with canvas rain and snow; Open-Meteo instead of a committed API key |
| Calculator · live | A safe parser instead of eval, history, keyboard input, 3D tilt |
| To-do · live | Drag to reorder, undo, FLIP animations; JSON storage instead of saved HTML |
| Reelhouse · live | A copied sign-up page turned into an original TV show browser on TVmaze |
| Halcyon One · live | A concept smartwatch modelled in Three.js that turns as you scroll |
| Jeevan Travels · live | A trip planner on a 3D dotted globe with live weather and share links |
| JeevanKitchen · live | Recipes with a cook mode, one-tap timers and a screen that stays awake |
TypeScript · JavaScript · React · Next.js · Astro · Node.js · Express · Supabase · PostgreSQL · MongoDB · Tailwind CSS · Three.js · Vercel · Cloudflare
Freelance projects and junior / internship roles in full-stack web development.



