TITANMATTER
0%
Loading

Maat Skin

A Romanian skincare storefront, built to sell and to settle its own paperwork

E-commerceNext.jsTypeScript
StripeCI/CDDevOps

/ Overview

A production e-commerce platform built from the ground up in Next.js and TypeScript, on tRPC, Prisma and PostgreSQL. It takes payments through Stripe, issues compliant Romanian fiscal invoices through Oblio, and serves a multilingual storefront with authenticated customer accounts and transactional email.

/ Project details

Name: Maat Skin — skincare e-commerce platform

Client: Maat Skin

Industry: Skincare e-commerce

Date: 2025 — 2026

Live site: maatskin.ro — launching soon

/ The problem

Selling online in Romania means fiscal e-invoicing is not optional, and bolting it on afterwards is what turns a working store into a manual data-entry job. The platform had to handle payment, invoicing, accounts and two languages as one system rather than as four integrations that happen to share a database.

/ Services delivered

E-commerce platform

Storefront, cart, checkout and authenticated customer accounts, built on Next.js and TypeScript with tRPC over Prisma and PostgreSQL — one type definition from the schema to the page.

Payments and fiscal invoicing

Stripe for payment, Oblio for Romanian fiscal e-invoicing. Invoices are issued from the order itself, so the accounting record and the customer record cannot drift apart.

Multilingual storefront

The whole catalogue and checkout run in more than one language, with transactional email following the language the customer bought in.

Delivery pipeline

Containerised with Docker and shipped through GitHub Actions, with production health monitoring and error reporting after launch rather than only before it.

/ What we did

The commerce logic runs end to end in TypeScript, so a product, an order and an invoice are the same shape from the database through to the storefront. Every commit then has to survive a pipeline before it can reach production, because a store that takes money is not a place to discover regressions by hand.

/ Tools we work with

Type checking, linting and unit tests

TypeScript and ESLint gate every push, with Vitest covering the commerce logic where a silent change costs real money.

End-to-end and accessibility tests

Playwright drives the real checkout on every run, with axe asserting accessibility alongside it — so a keyboard user losing the buy button fails the build.

Secret and vulnerability scanning

gitleaks blocks credentials from entering history, Trivy scans the container image for known vulnerabilities, and an SBOM records exactly what shipped.

Production monitoring

Scheduled hourly smoke tests exercise the live store, and Sentry reports errors from real sessions — the store is checked between deploys, not just at them.

/ Client feedback

Titanmatter did an exceptional job building our e-commerce platform from the ground up. They understood both the technical requirements and the business side of the project, and handled everything from the storefront and customer accounts to payments, invoicing and deployment. Communication was excellent throughout the entire process, and we ended up with a fast, professional and reliable platform that feels tailored to our business.

Maat Skin

Client