Chemistry web app built solo from scratch 118-element interactive periodic table, 3D atom visualization (Three.js/React Three Fiber), equation balancer running off-thread in a Web Worker, molar mass calculator, solubility lookup, and PDF worksheet export.
React 19 · TypeScript · Vite · Bun · TanStack Router · Zustand. Routes lazy-load, table cells use memoized selectors to kill unnecessary re-renders, and heavy code (3D, PDF) ships in separate chunks.
Typed JSON data pipeline with codegen scripts. Full build-path quality: Vitest, React Testing Library, oxlint, typecheck.
Live: zsk-periodic.vercel.app (http://zsk-periodic.vercel.app)
1
32
Full-stack product showcase app with Clerk auth from end to end user sync to PostgreSQL, protected routes, and ownership checks on update/delete.
Frontend: React 19 · Vite · React Router 7 · TanStack Query · Tailwind CSS 4 · DaisyUI. Product cards and forms built with compound component pattern. Cache-first mutations skip unnecessary refetches.
Backend: Express 5 · Drizzle ORM · PostgreSQL (Neon) · Clerk middleware. Joined reads via Drizzle relations. Auth centralized in a single requireUserId helper. TypeScript across the full stack. Deployed: Vercel + Render + Neon.
link : productify-lemon.vercel.app (http://productify-lemon.vercel.app)
1
33
Personal portfolio that doubles as an architecture showcase deliberately over-engineered to demonstrate patterns used in enterprise SaaS.
Zero-runtime CSS via Vanilla Extract with 15+ semantic color palettes and full dark/light theming. TanStack Query + Ky for data fetching (no raw useEffect). React 19 Compiler for auto-memoization. Zustand persist for hydration-safe state. PWA-ready with Service Worker.
Data fully decoupled into a headless JSON layer swappable without touching UI code. Compound component pattern throughout. Three custom NPM packages authored and published: error boundary, i18n, and Web Audio hook.
Link : izsk.netlify.app (http://izsk.netlify.app)
1
30
Crypto market dashboard built with Next.js 16, React 19, and TypeScript. Server-rendered CoinGecko data with live WebSocket price and trade updates on coin detail pages.
Features: paginated market table, candlestick charts, Cmd+K keyboard search with debounce and keyboard nav, coin-to-coin converter, and pending navigation overlays that keep the UI responsive during slow route transitions.
Centralized API layer handles key selection, URL normalization, and automatic fallback for unsupported requests. Hooks split by concern throughout.
Link : coin-gate-sand.vercel.app (http://coin-gate-sand.vercel.app)
1
25
Production-grounded breakdown of all three React state tools written by someone who's shipped with each.
Covers Context's re-render problem (and why it's a DI mechanism, not a state library), Redux Toolkit's middleware ecosystem and where it still earns its weight, and Zustand's granular selector model that makes performance the default, not an afterthought.
Includes a pattern most tutorials skip: storing a Zustand instance in Context for scoped, testable, prop-initialized stores the same approach React Query and Redux use internally. Ends with an honest decision matrix, not a winner.
0
13
Technical deep-dive written from real production frustration. Traces the decision from Dependabot fatigue through two real Axios CVEs and a 2026 npm supply chain attack, to a working Ky setup with zero dependencies, auto-retry, Zod response validation at the network boundary, and a hooks API that replaces interceptors cleanly.
Closes with a full Fetch vs Axios vs Ky comparison table and a practical pattern for wiring Ky with TanStack Query auth headers, retries, and schema validation at the API layer, so query hooks stay thin.