Workshop Website Template
Websites

Workshop Website Template

Full-stack Next.js 15 + Strapi CMS headless architecture. SSG with ISR, Docker deployment, nginx reverse proxy. PageSpeed 98+, Core Web Vitals optimized.

Full-Stack Developer

Visit website
98
PageSpeed
<1s
TTFB
ISR
Revalidation

Technologies

N
Next.js 15
TypeScript
TypeScript
Tailwind CSS
Tailwind CSS
S
Strapi CMS
PostgreSQL
PostgreSQL
Docker
Docker
n
nginx

What I Built

Headless CMS Architecture

Next.js frontend with Strapi CMS via REST API. Static Generation with Incremental Static Regeneration (revalidate: 60s) for optimal caching strategy.

Headless CMS Architecture

Docker Deployment

Multi-container setup: Next.js (Node), Strapi (Node), PostgreSQL. Docker Compose orchestration, nginx reverse proxy with SSL termination.

Docker Deployment

Type-safe Data Layer

Full TypeScript typing from Strapi content-types to React components. Zod validation on forms, server actions for email handling.

Type-safe Data Layer

Challenge

Needed a scalable template for local businesses combining static site performance with CMS flexibility. Requirement: PageSpeed 95+ on mobile with full functionality.

Solution

Headless architecture: Next.js App Router (RSC, Server Actions) + Strapi as API. SSG for pages, ISR for content. Blog with MDX-like content, contact form with Resend, booking system with date validation.

Key Decisions

Next.js 15 App Router + React Server Components

Strapi v5 with PostgreSQL (not SQLite - production)

Docker multi-stage builds for smaller images

nginx as reverse proxy (SSL, cache, gzip)

Resend API for transactional emails

This isn't just a 'workshop website' - it's a production-ready template with real architecture. Same stack as SaaS applications, simplified for a specific use case. Every element can be extended: add auth, payments, customer portal.
K

Kacper Kawczak

Full-Stack Developer

Results

Template deployable in <1 day. Infrastructure as Code - single docker-compose.yml spins up everything. 98 PageSpeed mobile, <1s TTFB, CLS 0.

Have a similar project?

Let's discuss how I can help you.

Get in touch