Contact
Food Truck & Mobile Concept Platform - French manufacturer (alias MCR)

Food Truck & Mobile Concept Platform - French manufacturer (alias MCR)

Complete redesign of a WordPress site into a modern Next.js 16 + Payload CMS v3 platform for a French food truck manufacturer - 129K lines of code, 78 pages, 1,383 SEO contents, delivered in 41 days.

February - March 2026
41 days
Founder & CTO - Solo Developer
ACCENSEO
Next.js 16React 19TypeScriptPayload CMS v3PostgreSQL 16Tailwind CSS 4shadcn/uiStripeCloudflare TurnstileTerraformGitHub ActionsDockerDrizzle ORM4 AI APIs

Lines of Code

129,371

TypeScript (strict mode)

Pages

78

Next.js App Router

SEO Contents

1,383

Indexable contents

Database Tables

133

Including 46 versioning

Presentation

Project definition and scope

Mon Camion Resto (MCR) is the complete redesign of a French company's showcase website, specialized in designing, manufacturing, and customizing food trucks, trailers, converted containers, and mobile concepts for the food-service and events industry. The project replaces an outdated WordPress site with a modern application built on Next.js 16 and Payload CMS v3.

The company operates in a niche market at the crossroads of several sectors: vehicle bodywork and conversion, professional food-service, corporate events, and mobile concept rentals. It serves prestigious clients such as Futuroscope, Sodexo, IKEA, France TV, Elior, Charal, and Ralph Lauren, with 3 physical agencies across France (Bordeaux, Paris, Metz).

A significant part of the project involved developing numerous custom Payload CMS extensions - particularly tools dedicated to AI-powered content generation (articles, product descriptions, image creation) using 4 integrated AI providers. This custom development work on the CMS layer proved to be one of the most technically enriching aspects of the project.

Domain

Food-service vehicles, B2B events, custom vehicle conversions, mobile concept rentals

Target Users

B2B: event agencies, brands, food-service professionals - B2C: entrepreneurs starting a mobile food business

Functional Scope
Expertise - Workshops & Skills
Concepts - Vehicles & Containers
Realizations - Project Portfolio
Pre-owned - Marketplace + Stripe
Rentals - B2B Event Fleet
Resources - Blog, Guides, Glossary, FAQ
Contact & Quotes - Multi-step Forms
Admin - CMS + AI Tools

Objectives, Context, Stakes & Risks

Strategic vision and constraints

Objectives
  • Completely redesign the WordPress site into a modern stack (Next.js + Payload CMS) with autonomous content management
  • Multiply SEO visibility through a massive content strategy: 112 blog articles, 664 guides, 471 glossary terms
  • Professionalize brand image with a cohesive design system (shadcn/ui, 59 components) and quality visuals
  • Automate content generation via 4 AI APIs integration
  • Structure the sales funnel with multi-step quote forms routed by agency and Stripe checkout for pre-owned vehicles
  • Industrialize deployment with complete CI/CD infrastructure (GitHub Actions, Terraform, OVH VPS, 3 environments)
Context

The existing WordPress site suffered from broken navigation, poor SEO, outdated visuals, and generic contact forms. The company was transitioning from "Mon Camion Resto" to the "MCR" acronym while managing 6 domains (moncamionresto.com/fr, labeglaise.fr, location-foodtruck.fr, food-trucks.fr, mountain-egg.com). A database migration from WordPress (42 existing articles) was also required.

Business Stakes

SEO Visibility

The website is the primary acquisition channel - the redesign must maintain or improve existing rankings while massively creating new content

Lead Conversion

Quote and contact forms are the commercial backbone - every lead must be correctly routed to the right agency (Bordeaux, Paris, Metz)

Brand Image

The company works with clients like IKEA, France TV, and Ralph Lauren - the site must reflect this level of quality

Identified Risks

SEO Migration Risk

Potential loss of search rankings during migration - mitigated by implementing redirections and preserving legacy URLs via Nginx.

AI Content Quality

Massive volume of AI-generated content (664 guides, 471 terms) requiring human verification - a status system was implemented (not-verified, ai-verified, human-verified).

Infrastructure Constraints

Hosting on a single OVH VPS with 3 environments, limited to 8 GB RAM for the entire stack.

Multi-API Complexity

Integration of 4 different AI APIs with varying billing models and rate limits.

The Steps - What I Did

Chronological phases and personal contributions

Project timeline
Phase 1
Foundations
Feb 10-12
  • I arbitrated the stack for a Next.js 16 + Payload CMS v3 monolith: zero CMS-to-front latency, reduced attack surface, a single typed model
  • I modeled the CMS domain as 15 collections + 24 content blocks, isolating structuring entities from compositional blocks
  • On the DB side, I laid down a PostgreSQL schema typed through Drizzle ORM, anticipating SEO constraints upfront (canonical URLs, versioning, verification)
  • I locked down the dev foundation: TypeScript strict + noUncheckedIndexedAccess, Docker Compose for dev/prod parity, deterministic seed CLI
Phase 2
Content & SEO
Feb 14-27
  • I industrialized a design system of 24 content blocks as Server Components: LCP under the Core Web Vitals target, free composition for the marketing team
  • On the SEO side, I delivered semantic coverage (articles, guides, glossary, FAQ) with canonical URLs, auto-generated internal linking and calibrated ISR at 1,383 contents scale
  • I built a multi-provider AI abstraction layer (4 APIs): fallback, circuit breaker, quota tracking
  • I modeled an editorial verification workflow (not-verified → ai-verified → human-verified) to trace governance
  • On the back-office side, I extended Payload CMS: custom Lexical fields, AI plugins (generation, rewrite, translation) via Server Actions, granular permissions
Phase 3
Infrastructure & Migration
Mar 2-9
  • I codified DNS management for 6 domains in Terraform (OVH provider): reusable modules, encrypted remote state, zero-downtime cutover, rollback ready
  • On the WordPress migration, I wrote an idempotent importer: 42 articles normalized, 301 redirects and a permalink mapping to preserve SEO authority
  • I designed a 4-level information architecture for B2B exploration: server-rendered breadcrumbs, schema.org, 24 rental/event pages templated
  • Across 3 environments (test, staging, prod), I scripted environment promotion with health checks, interactive confirmations and auditable logging
Phase 4
CI/CD & Production
Mar 12-22
  • I assembled a GitHub Actions pipeline in 5 jobs (lint, typecheck, build, tests, deploy) with remote cache and gated auto-deploy: lead time under 8 min
  • On observability, I instrumented GA4 + GTM with an event schema aligned with business KPIs (product views, quotes, marketplace funnels)
  • For the pre-owned marketplace, I integrated Stripe Checkout: signed webhooks, idempotent payments, server-side reconciliation, isolated blast radius
  • I secured contact and quote forms with server-side Turnstile, per-IP rate limiting and honeypots - without CAPTCHA friction
  • On the visual side, I built an AI product-image pipeline: manual validation, static fallback, WebP/AVIF post-processing at canonical dimensions

Actors & Interactions

How I collaborated with the stakeholders and orchestrated AI

Development Team

Important nuance: while AI generated ~75% of code volume (mega-commits >10K insertions = 79% of total), I carried ~70% of the project's intellectual output - I made every architectural decision, every technical stack choice, the data modeling (15 collections, 133 tables), the infrastructure design, the SEO strategy, the client relationship, the prompt engineering and the final validation.

Code Volume Distribution (Lines Produced)
Intellectual & Decision-Making Value
External stakeholders I interacted with
  • Pierre-Olivier P.My main counterpart - company owner and CMS admin, with whom I framed the requirements and validated each release
  • GeoffroyI engaged with him on the sales side for the Bordeaux agency
  • StripeI integrated their checkout for marketplace payments
  • CloudflareI relied on Turnstile for anti-spam
  • AI providersI orchestrated them in multi-provider mode for content and image generation
  • OVHI operated their VPS, SMTP and DNS resolution day in, day out

Results

Impact for myself and for the company

For the Company - Business Impact

1,383

SEO contents

Indexable pages created (vs. 42 on WordPress)

78

Pages

Complete site with 7 layouts and 4-level navigation

15

CMS collections

Autonomous content management via Payload CMS admin

3

Environments

Test (auto-deploy), Staging, Production

Codebase Metrics
SEO Content Distribution (1,383 Contents)
WordPress vs Next.js+Payload CMS
Design System Composition (203 Components)
Development Velocity (Commits per Week)
For Me - Skills I gained and reinforced through this project

Technical skills I gained through this project

  • Next.js 16 + Payload CMS v3: I shipped a full-stack application at production scale (129K lines)
  • Custom Payload CMS extensions: I developed dedicated tools for AI-driven content generation
  • PostgreSQL modeling: I designed a 133-table schema driven through Drizzle ORM
  • Multi-provider AI integration: I plugged and orchestrated 4 APIs from different vendors
  • Terraform IaC: I codified DNS management across 6 domains
  • CI/CD: I built the GitHub Actions pipeline with 5 jobs covering 3 environments
  • SEO architecture: I structured 1,383 indexable contents with ISR rendering

Functional & human skills strengthened through this project

  • I translated client voice recordings into executable specifications
  • On the content side, I defined the SEO strategy and internal linking
  • I drove AI-assisted development and refined the prompt engineering
  • Finally, I ran end-to-end project management solo, from analysis to final delivery. This project changed the way I work: I now combine AI and human decisions from day one, sustaining x3-x4 velocities while keeping full ownership of the architecture.

Project Aftermath

What happened after delivery and current state

Immediate Future: The platform was deployed to a production environment (production.moncamionresto.com) with two additional environments (test, staging). The test environment is auto-deployed on every push to main via GitHub Actions CI/CD. The CMS admin is accessible and operational for the team.

Medium-Term: The site is live under a temporary subdomain while the final DNS migration from the old WordPress site is pending. The massive SEO content (1,383 items) needs progressive human verification - the verification status system (not-verified / ai-verified / human-verified) is already in place. Business-critical collections (realizations, pre-owned vehicles, rental fleet) are structured and ready to be populated with real data.

Current State: The platform represents a 33x increase in indexable content compared to the original WordPress site (1,383 vs. 42 items). The infrastructure is production-ready with SSL, automated backups, CI/CD, and monitoring. The n8n automation platform is deployed for workflow automation.

My Critical Perspective

How I judge this project with hindsight

Strengths
  • Exceptional development velocity

    With hindsight, I remain stunned by the velocity - 3,000+ lines/day sustained over 6 weeks, a productivity multiplier of x3-x4 I held through AI-assisted dev.

  • Modern and coherent tech stack

    I stand behind the architectural call: I committed to a full-stack monolith with CMS embedded in Next.js and end-to-end TypeScript typing.

  • Ambitious SEO strategy, well executed

    I pushed the strategy far: dense internal linking across guides, articles and glossary to saturate topical coverage.

  • Professional infrastructure

    On the infrastructure side, I delivered an industrial pipeline: IaC, robust scripts, safety confirmations before production.

  • Complete design system

    With my 24 content block types, I gave the marketing team real composition freedom without ever breaking visual consistency.

Areas for Improvement
  • Insufficient test coverage

    I only produced 8 test files for 129K lines. Critical API routes (contact, quotes, Stripe) deserve better - I identify this clearly as my weak spot.

  • No semantic versioning

    I did not set up any git tags or releases - with hindsight, I regret this gap that makes it hard to trace the versions deployed in production.

What I Would Do Differently

With today's standards and hindsight, here are the choices I would make differently:

  • Content strategy in batches: rather than generating 664 guides at once, I would validate by batches to guarantee quality
  • Feature flags: I would roll out progressively to production rather than all-or-nothing
The lasting lessons this project brought me

AI as a force multiplier

I take away that AI absorbs the volume, but the human - me in this case - must keep control of architecture and structural decisions.

Integrated headless CMS > decoupled CMS

I experienced that at this scale, CMS inside the app beats decoupled: less latency, one deploy, one typed model.

Infrastructure as Code from day 1

I take away that DNS, deploy and environments must be coded from day one - the effort pays off from the very first change to push.

SEO content is a strategic asset

I measured that each new indexable content durably widens the organic acquisition surface - it is an asset that keeps working over time.

Architecture

Related journey

Professional experience linked to this achievement

Skills applied

Technical and soft skills applied

Image gallery

Project screenshots and visuals

Mon Camion Resto homepage with vintage food truck, custom design services and navigation menu
Homepage - Food truck custom design services
Food truck customization page showing bespoke vehicle fitting, standards compliance and style options
Customization - Bespoke food truck fitting
Used food trucks marketplace with grid of refurbished vehicles for sale including various models and styles
Marketplace - Used and refurbished food trucks
Mon Camion Resto blog with articles on food truck locations, training and industry trends
Blog - Industry articles and case studies
Contact page with form, Paris, Bordeaux and Metz office locations and phone numbers
Contact - Multi-city offices (Paris, Bordeaux, Metz)
Food truck glossary and lexicon page with alphabetical definitions for mobile catering industry terms
Glossary - Food truck industry lexicon A-Z
Footer with call-to-action for mobile concept launch, quote request and multi-city contact cards
Footer - CTA and multi-city contact

Need a tailor-made React platform?

I design Next.js + React platforms with a fully custom CMS and AI-powered content generation tooling (articles, product descriptions, images) wired straight into your back-office. Let’s talk about your project.

Contact me