Skip to content
~/nisschhal

Back to all projects

live2026TypeScript

InkSprout

A full e-commerce platform for stationery — product catalogue with variant filtering, Stripe checkout, and an admin dashboard for inventory and orders.

  • Next.js
  • TypeScript
  • Drizzle ORM
  • Neon Postgres
  • Auth.js
  • Stripe
  • Tailwind CSS
  • Radix UI

What it is

InkSprout is an e-commerce store for pens, highlighters, and stationery. It covers the full commerce path: browsing and filtering a catalogue, building a cart, checking out through Stripe, and managing products and orders from an admin side.

It is the second iteration — v1 was rebuilt to move onto Drizzle and current package versions rather than patched in place.

Architecture

The data layer is Drizzle ORM against Neon Postgres, with schema-first migrations. Authentication is Auth.js through the Drizzle adapter, so sessions and user records live in the same database as the catalogue rather than in a third-party service.

Payments use Stripe Payment Intents, created server-side so the amount is never trusted from the client — the browser only ever receives a client secret.

The admin surface uses TanStack Table for sortable, paginated inventory views and TipTap for product description editing.

Notes

TODO: Add the parts only you can write — what was hardest here, what you’d do differently, and any numbers worth quoting (catalogue size, checkout conversion, Lighthouse scores). This section is what separates a portfolio from a repo list.

$ git log -1 --format=%cd →