← ALL WORK
Website & CMS2026

YEK Agency

A complete web presence for YEK Agency, a full-service creative studio offering branding, marketing, social media, and content production. The public site — home, projects, services, about, and contact — is a Next.js 15 application with heavy motion design: an intro curtain, scroll-driven reveals, smooth scrolling, and animated page transitions. Every page renders server-side per request, pulling live content from a custom Go API backed by PostgreSQL. A JWT-protected admin panel at /admin lets the team manage projects, team members, media, and homepage content without touching code. The whole stack ships as three Docker resources on a self-hosted VPS via Coolify, with automatic deploys on every push.

Project Overview

YEK Agency needed more than a static brochure site: a portfolio that the team could update daily — new projects, new team members, new homepage media — without a developer in the loop. The goal was a fast, animated public site paired with a private content system. The delivered product is a monorepo with three parts: a Next.js 15 frontend serving six public pages plus an admin dashboard, a Go API exposing REST endpoints for projects, team, media, settings, and auth, and a PostgreSQL database behind it. The public site reads everything fresh from the API on each request, and degrades gracefully to placeholder assets if the backend is ever unreachable.

Features & Functionality

Visitors get a homepage with a hero video slot, a four-image scroll gallery, featured project cards, a seven-item services accordion, and a team section — every one of them fed from the database. The projects grid lists all published work, and each project has its own page built from repeatable blog-style sections (heading, paragraphs, image) stored as JSONB. Admins sign in at /admin and work across four tabs: Home (hero video plus four gallery image URLs), Projects (full CRUD with auto-generated slugs and a per-project "show on homepage" toggle), Media, and Team. Sections with no content — an empty team, zero projects — are omitted from the public site entirely rather than rendered blank.

Development & Technology

The frontend is Next.js 15 (App Router) with React 19 and TypeScript, using GSAP and Lenis for the motion system: an intro curtain loader, an IntersectionObserver-based reveal engine, scroll-driven animations, a custom cursor, and route transitions. The backend is Go with Fiber, structured as clean architecture — domain, service, repository, and transport layers — with sqlc generating type-safe query code from raw SQL. Auth is JWT (HS256, 7-day tokens) with bcrypt-hashed passwords; the admin account is seeded from environment variables on boot. SQL migrations are embedded into the binary with go:embed and applied automatically at startup, so the API container is fully self-contained.

Performance, SEO & Deployment

Every public page is a React Server Component fetching data per request with caching disabled, so published changes appear immediately without a rebuild. Next.js builds in standalone output mode into a multi-stage Docker image that runs as a non-root user; the Go API compiles to a single static binary. Each page declares its own metadata — titles, descriptions, Open Graph tags — and the admin panel is marked noindex. Deployment is three Coolify resources on one VPS: PostgreSQL, the API at api.yekagency.com, and the frontend at yekagency.com, each building from its own Dockerfile in the same repo, with Let's Encrypt SSL and auto-deploy on push.

( GALLERY )

YEK Agency — image 1
YEK Agency — image 2
YEK Agency — image 3
YEK Agency — image 4
YEK Agency — image 5
YEK Agency — image 6
YEK Agency — image 7