Subli Studio is a production-grade e-commerce platform I built for a family print business that wanted to start selling sublimation and DTF printed clothing online. Customers browse the catalog, pick a product with its colour and size variants, choose exactly where on the garment their design should be printed, upload their own artwork, and check out through Mollie with iDEAL, Bancontact, or card. Every uploaded file is manually quality-checked before production, with a re-upload flow for anything that needs fixing. Behind the storefront sits a full admin back office for orders, products, categories, business quotes, reviews, notifications, and an audit log. Built with Next.js 16, React 19, Drizzle ORM on a libSQL/Turso database, Cloudflare R2 for file storage, and Nodemailer for transactional email. It runs live at sublistudio.nl.

My aunt and uncle wanted to launch a print-on-demand clothing business but had no way to take orders online. They needed a real shop, not a template: customers had to be able to configure a garment, decide where their artwork is printed, upload their own files, and pay securely, while the family needed to run the whole operation themselves without touching code. That meant building a complete storefront and a back office, handling real payments and customer artwork, and keeping it maintainable for non-technical owners.
I built a full-stack Next.js 16 application with a typed Drizzle ORM schema on a libSQL/Turso database. The storefront has a product configurator for colour and size variants and on-garment print-location selection, a validated design-upload flow that stores artwork in Cloudflare R2, and a Mollie-powered checkout. Orders flow into a self-service admin dashboard where the owners manage products, categories, orders, business quotes, reviews, and notifications, with an audit log tracking every change. Transactional email runs through Nodemailer, and security is handled with bcrypt-hashed sessions, rate limiting, and server-side validation throughout.
Customers pick a garment, choose colour and size variants, and select exactly where on the product their design is printed before adding it to the cart.
Drag-and-drop upload accepting EPS, AI, SVG, PDF, PNG and JPG up to 5 MB, with every file manually checked and a re-upload flow for anything that needs fixing.
A multi-step checkout backed by Mollie with iDEAL, Bancontact, and card payments, plus webhook-driven order status and track & trace.
A dedicated zakelijk flow lets companies and teams request custom quotes for bulk and bespoke orders, managed end-to-end from the admin.
Customers can leave product reviews, with automated post-purchase review invitations to build social proof for the shop.
A complete dashboard for orders, products, categories, quotes, reviews, notifications, and settings, with an audit log recording every action.
Built on Next.js 16 (App Router) with React 19 and TypeScript in strict mode. Data is modelled with Drizzle ORM across 16 tables on a libSQL/Turso (SQLite) database, covering products and variants, orders and order items, business quotes, reviews and invitations, notifications, sessions, and audit logs. Payments run through the Mollie API client with webhook-driven status updates; customer artwork is uploaded to Cloudflare R2 via the AWS S3 SDK with server-side type and size validation. Authentication uses bcrypt-hashed credentials with revocable sessions and heartbeats, backed by rate limiting and request-security helpers. Transactional email is sent with Nodemailer, and SEO is handled with per-page metadata, JSON-LD, and a generated sitemap.
Building a real shop for real customers, and real money, raised the bar on everything. I learned how much of e-commerce is the unglamorous parts: payment webhooks that must never be trusted blindly, file uploads that have to be validated and stored safely, and an admin that non-technical owners can actually operate. Modelling the whole domain in a typed Drizzle schema up front saved me repeatedly when adding quotes and reviews later. Most of all, building for family taught me to design for the people running the business, not just the people buying from it.
Warm, friendly storefront with a soft pink accent and rounded pill shapes
Clear step-by-step flows so non-technical customers never get lost
Self-service admin so the owners run everything without developer help
Trust through transparency: manual quality checks, track & trace, and secure Mollie payments

The live graduation-ceremony platform for my school, where families enter the code on their invitation to watch the livestream, built in dependency-free PHP with hand-written passkey login and intrusion detection.
A free data breach checker that lets users instantly find out if their email or password has been exposed in known data leaks, powered by the HIBP API.

A full-stack restaurant ordering platform for an authentic Japanese ramen restaurant, featuring real-time order tracking and admin dashboard.