Case Study  ·  2024–2025  ·  Full Stack Web Development

JSConstruction

Role Lead Developer
Stack Next.js · React · Tailwind
Hosting Hetzner Cloud VM
Type Client + Admin Platform
Scroll
Career
Objective

Becoming a Full Stack Developer over the next three years — working primarily with Next.js, React, and Tailwind CSS, while expanding into machine learning to build smarter, data-driven applications that make a real impact.

01

Project
Overview

Homepage Screenshot
construction.ca — Client-facing website · Replace with actual screenshot
Client Site
Public
Website

A fully responsive marketing site for Construction company — showcasing services, past project galleries, blog content, contact forms, and company information. Optimized for performance, SEO, and lead conversion.

Admin Side
Full Stack
Dashboard

A secured admin dashboard allowing staff to manage blog posts, galleries, user accounts, site content, and more — all from a clean React/Next.js interface with role-based access control.

02

System
Architecture

Layer 01 Frontend
Next.js App Router with server-side rendering and static generation for optimal performance
React component library built with Tailwind CSS utility classes and custom design tokens
Fully responsive — mobile-first layout with progressive enhancement
Layer 02 Backend
Next.js API routes handling REST endpoints for content, auth, and file management
NextAuth.js for session-based authentication with role-based access control
Secure HTTPS implementation with enforced redirects and CSP headers
Layer 03 Infra
Self-hosted on a Hetzner Cloud VM — cost-optimized over managed hosting solutions
Domain transfer and DNS management handled end-to-end during project setup
Zoho service audit — identified and removed unused paid modules to reduce monthly cost
Layer 04 Integrations
Zoho CRM and mail integrations with optimized configuration post-audit
Image optimization pipeline using Next.js Image component for lazy loading and format conversion
Slack for internal team communication, task tracking, and deployment notifications
03

Tech
Stack

Next.js
Framework / SSR
React
UI Library
🎨
Tailwind CSS
Styling
🔐
NextAuth.js
Authentication
📊
Recharts
Dashboard Charts
☁️
Hetzner
Cloud Hosting
📬
Zoho
CRM / Mail
💬
Slack
Team Comms
04

Key
Features

TASK 01

Project
Leadership

Coordinated team assignments, set project milestones, and ran group planning sessions via Slack. Translated client requirements into technical tasks and kept the team aligned throughout delivery.

Team Coordination Milestone Planning Slack
TASK 02

Security &
Performance

Implemented HTTPS across the full stack, applied image optimization via Next.js's built-in pipeline, enabled code splitting, and fine-tuned SSR strategies to achieve fast time-to-interactive scores.

HTTPS / CSP Image Optimization SSR Tuning Code Splitting
TASK 03

Admin
Dashboard

Designed and built a full React/Next.js admin panel from scratch using Tailwind. Includes data tables with filtering, analytics charts, user management (add/remove/role), blog CMS, and gallery management.

React / Next.js RBAC Blog CMS Gallery Manager
TASK 04

Cost
Optimization

Ran a full audit of Zoho subscriptions and removed unused paid modules — reducing monthly overhead. Migrated select features to a self-managed Hetzner VM, cutting cloud costs significantly vs. managed alternatives.

Zoho Audit Hetzner VM Cost Reduction
05

In
Action

Services Page Screenshot
Services & Past Work · Public site
Client Website

Services, Gallery & Blog

The public-facing site gives potential clients a clean view of Construction's offerings — from services and past project galleries to a regularly updated blog and a contact form wired up to Zoho CRM. SEO was a priority throughout, with server-rendered pages and structured metadata.

Services Pages Project Gallery Blog Contact / CRM About
Admin Dashboard Screenshot
Admin Panel · Protected route
Admin Dashboard

Full CMS & Control Panel

Behind authentication lives a full-featured content management and operations panel. Staff can publish or edit blog posts, add or remove gallery images, manage user accounts with role assignments, and update site-wide content — all without touching code.

User Management Blog CMS Gallery Upload Analytics RBAC
Mobile View Screenshot
Mobile responsive layout
Responsive Design

Mobile-First & Fast

Every page was built mobile-first with Tailwind's responsive breakpoints. Combined with Next.js image optimization and lazy loading, the site scores strongly on Core Web Vitals across all device sizes.

Mobile-First Core Web Vitals Lazy Loading Responsive Breakpoints
06

The
Challenge

PROBLEM NextAuth Integration Failure
Existing folder structure conflicted with NextAuth conventions
Auth callbacks silently failing due to mismatched route paths
Session tokens not persisting across page navigations
Days lost debugging the wrong layer — layout, not logic Tricky
SOLUTION Full Project Restructure
Started a fresh Next.js project following official guide exactly
Migrated components and logic incrementally into clean structure Learner
NextAuth routes matched expected conventions — auth worked instantly
Invested rebuild time upfront, saved weeks of future debugging Achiever

LESSON LEARNED When a framework integration fights you, suspect the structure before the logic. The instinct to rebuild clean — rather than patch around problems — saved the entire project timeline. This decision required confidence in the long-term over short-term speed.

07

Development
Timeline

Phase 01 · Discovery
Kickoff & Planning

Requirements gathering with Construction stakeholders. Defined site architecture, page structure, and admin feature set. Set up Slack workspace, assigned team roles, and established the milestone roadmap.

Phase 02 · Foundation
Project Setup & Domain

Initialized Next.js project, configured Tailwind, set up Hetzner VM. Handled domain transfer and DNS configuration. Audited and pruned Zoho subscriptions for cost optimization.

Phase 03 · Client Site
Public Website Build

Built all public pages — services, about, contact, blog listing, project gallery, and past work showcase. Integrated Zoho CRM for contact form leads. Implemented SEO metadata and image optimization.

Phase 04 · Auth Crisis
NextAuth Restructure

Encountered and diagnosed the NextAuth/folder convention conflict. Made the call to restructure the project from scratch following official conventions. Migrated all components into the new clean architecture.

Phase 05 · Admin
Dashboard Development

Built the full admin panel — blog CMS, gallery management, user management with RBAC, analytics dashboard with charts, and site-wide content controls. Auth working flawlessly on the clean codebase.

Phase 06 · Launch
Deploy & Handoff

Final security audit, HTTPS enforcement, performance testing across devices. Deployed to Hetzner VM with production environment variables. Delivered documentation and ran staff training on the admin panel.

08

What I
Learned

Full Stack Ownership

Owning the full stack — from DNS and hosting to UI and auth — gave me a complete mental model of how modern web apps actually run in production. No hand-offs. No gaps in understanding.

🔐
Auth & Security Depth

NextAuth's documentation became my closest companion. I learned how session management, JWT tokens, and protected API routes actually work under the hood — not just how to use them.

🏗️
Architecture Matters

The NextAuth restructure taught me that a clean project foundation isn't a luxury — it's load-bearing. Investing in correct structure early avoids compounding technical debt later.

💰
Cost-Aware Engineering

Running the Zoho audit and Hetzner migration showed me that infrastructure decisions are engineering decisions. Developers who understand cost make better architecture choices.

👥
Technical Leadership

Leading the team through milestones and Slack-based coordination developed skills I couldn't get from solo projects — breaking down ambiguity, communicating technical decisions, and keeping people unblocked.

🚀
Performance by Default

SSR strategies, image optimization, and code splitting became natural defaults rather than afterthoughts. Building performance in from the start is faster than retrofitting it at the end.

09

Strengths
Applied

Clifton Strength
Learner

When NextAuth blocked the project, I didn't guess — I read the entire documentation, tested edge cases, and experimented until the system worked exactly as designed. Continuous learning isn't a habit. It's how I operate.

Clifton Strength
Achiever

Rebuilding the project structure was painful and time-consuming. But patching around a broken foundation wasn't an option. My Achiever drive pushed me to do it right rather than do it fast — and the project shipped cleanly because of it.