Consultancy Web Platform
A platform for a digital consultancy that required a professional, bilingual online presence with complete editorial control. The system empowers non-technical teams to manage complex multilingual content effortlessly, balancing user autonomy with the performance and reliability needed to serve both local and international markets, without technical dependencies.
For a digital consultancy, projecting a professional image across both local and international markets is a common challenge. The real problem, however, is achieving this while giving the team complete editorial control without creating technical bottlenecks. The goal was to build a platform that could deliver a high-performance, accessible experience while remaining simple enough for non-technical members to manage.
The core of the solution lies in an architecture that abstracts away the complexity of bilingual content delivery. The system is designed to empower the consultancy’s own team members, allowing them to publish and maintain content through an intuitive interface. This gives them full autonomy over their narrative, letting them focus on their message rather than the underlying technology.
A key architectural decision was to decouple content management from content delivery. Using a headless CMS like
Stack
While the problem is more important than the tools, the tech stack tells a story about the project's architecture and trade-offs. Here's what this project is built on:
Platforms & Runtimes
Implements all frontend and shared configuration with static typing for Next.js pages, components, and environment validation.
Runs Next.js and Strapi in development and production, including build-time tasks and the Strapi CMS server.
React meta framework powering the site with server-side rendering, static generation, and API routes for dynamic content.
Frontend & Visualization
Renders the public website UI, components, and interactive elements in the Next.js app.
Used for styling the web UI and shared components in a consistent, variable-driven manner with utility-first classes.
Provides accessible primitives (navigation, dropdown) as the base for customized UI components used across the site.
Backend & APIs
External Services
Cloud & DevOps
Used for hosting the Next.js frontend with automatic deployments from the GitHub monorepo.
Containerizes the Strapi CMS for production with a multi-stage image that builds and runs the CMS service.
Used for self-hosting the Strapi CMS with managed Docker deployment, reverse proxy, and SSL.
Used for automatically building the Strapi CMS Docker image and pushing it to GitHub Container Registry on new releases.
Development Tooling
Manages monorepo workspaces for web and CMS, controls install scope, and locks dependency versions across packages.
Accelerates Next.js development and build steps configured for the frontend app, improving local iteration speed.
Formats and lints at the workspace root to maintain consistent code style across packages.