Client work · E-commerce
Diapermela
An e-commerce store built security-first.
An online store built with Next.js 16, PayloadCMS and PostgreSQL, with secret scanning in CI, security linting, HTML sanitization, and a dedicated security test suite.
Next.jsPayloadCMSPostgreSQLPlaywright
Problem
An online store handles customer data and admin access, so security has to be part of the build process rather than an afterthought.
Solution
Built the store on Next.js 16 with PayloadCMS for content and PostgreSQL for data, and wired security checks into development: gitleaks secret scanning in CI, eslint-plugin-security, sanitize-html, and a dedicated security test suite alongside Vitest unit tests and Playwright end-to-end tests.
System architecture
- Next.js 16 storefront.
- PayloadCMS for managing store content.
- PostgreSQL for data.
- A CI pipeline that runs the tests and scans the built bundle for leaked secrets.
Backend logic
- User-supplied HTML is sanitized with sanitize-html.
- Security lint rules (eslint-plugin-security) run across the codebase.
- A dedicated security test suite runs alongside Vitest unit tests and Playwright end-to-end tests.
- gitleaks scans the repository and the built bundle for secrets.
Tech stack
Frontend
- Next.js 16
CMS
- PayloadCMS
Database
- PostgreSQL
Quality
- Vitest
- Playwright
- gitleaks
- eslint-plugin-security
Outcome / impact
- Security problems are caught in CI rather than in production.
- Store content is managed through a CMS without code changes.
Result: A store where security regressions are caught by automated checks before they ship.