Subli Studio . Subli Studio . Subli Studio . Subli Studio . Subli Studio . Subli Studio .Subli Studio . Subli Studio . Subli Studio . Subli Studio . Subli Studio . Subli Studio .
CompletedFeatured2026

Subli Studio

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.

RoleFull-Stack Developer
Duration3 months
TeamSolo Project
ClientSubli Studio (family business)
Subli Studio

The Challenge

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.

The Solution

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.

Tech Stack

Next.jsReact framework for productionReactUI component libraryTypeScriptTyped JavaScriptDrizzleTypeScript ORMSQLiteEmbedded SQL databaseMollieOnline payment platform

Key Metrics

16
Database Tables
20
Print Locations
5
Payment Methods
10
Admin Modules

Details

Category
web
Year
2026
Status
completed
Role
Full-Stack Developer

Key Features

Product Configurator

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.

Design Upload & Quality Control

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.

Mollie Checkout

A multi-step checkout backed by Mollie with iDEAL, Bancontact, and card payments, plus webhook-driven order status and track & trace.

Business Quotes

A dedicated zakelijk flow lets companies and teams request custom quotes for bulk and bespoke orders, managed end-to-end from the admin.

Reviews & Invitations

Customers can leave product reviews, with automated post-purchase review invitations to build social proof for the shop.

Admin Back Office

A complete dashboard for orders, products, categories, quotes, reviews, notifications, and settings, with an audit log recording every action.

Technical Details

Implementation

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.

Lessons Learned

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.

Design Handbook

Color Palette

Carbon
#272727Primary text, footer, dark sections
Canvas
#FAF8F4Main warm off-white background
Press
#EC489APrimary brand pink, CTAs, accents
Press Dark
#DB2777Hover state for primary actions
Press Light
#FDF2F8Soft pink highlights and washes
Slate
#8B7E74Muted text, secondary labels
Cloud
#F1EDE7Cards, skeletons, subtle surfaces
Cloud Dark
#E8E2D9Borders and elevated edges

Typography

Plus Jakarta Sans

Weight: 300-800
All headings and body text
Jouw ontwerp, ons vakmanschap

Material Symbols

Weight: 400
Interface icons throughout the UI

Design Principles

1

Warm, friendly storefront with a soft pink accent and rounded pill shapes

2

Clear step-by-step flows so non-technical customers never get lost

3

Self-service admin so the owners run everything without developer help

4

Trust through transparency: manual quality checks, track & trace, and secure Mollie payments

Other Projects