{
  "schemaVersion": "1.0.0",
  "updatedAt": "2026-10-25",
  "site": {
    "name": "Charles Jackson",
    "domain": "charlesjackson.dev",
    "baseUrl": "https://charlesjackson.dev",
    "defaultLocale": "en",
    "locales": ["en", "fr"],
    "purpose": {
      "en": "Independent design and engineering portfolio for prospective clients.",
      "fr": "Portfolio indépendant de conception et développement pour de futurs clients."
    },
    "description": {
      "en": "Thoughtful digital products. Native applications, ambitious websites and engineering tools by Charles Jackson.",
      "fr": "Des produits numériques conçus avec intention. Applications natives, sites web et outils d’ingénierie par Charles Jackson."
    },
    "framework": {
      "name": "Next.js",
      "version": "16.4.3"
    },
    "hosting": "Vercel",
    "designStatus": "working-direction",
    "artDirection": {
      "name": "Glass exhibition",
      "description": {
        "en": "Dark editorial gallery, sculptural 3-D rings, colored light behind glass, oversized typography and authentic interface screenshots.",
        "fr": "Galerie éditoriale sombre, anneaux sculpturaux en 3D, lumière colorée derrière le verre, grande typographie et véritables captures d’interface."
      },
      "palette": {
        "background": "#101115",
        "text": "#f1f0eb",
        "muted": "#aaaab5",
        "accent": "#c8bcfa"
      },
      "typefaces": ["Manrope Variable", "Georgia"],
      "motion": {
        "en": "Slow sculpture movement with pause and reduced-motion support.",
        "fr": "Mouvement lent avec pause et prise en charge de la réduction des animations."
      }
    },
    "designReferences": [
      {
        "title": "Portfolio in Flow State",
        "creator": "Marvin Schwaibold",
        "url": "https://recent.design/i/hu2ua6e-portfolio-in-flow-state",
        "creatorWebsite": "https://www.marvinschwaibold.com/",
        "reviewedOn": "2026-10-25",
        "evidence": "Recorded Flowstate demo on Recent and the creator’s current portfolio. The prototype itself was not available as an interactive page.",
        "status": "user-selected-reference",
        "observations": {
          "en": [
            "Light, quiet canvas with minimal navigation.",
            "Project imagery provides the dominant color.",
            "Focused stack and overview grid modes.",
            "Cards use rounded corners, soft shadows and layered depth.",
            "Dragging and transitions make browsing feel tactile."
          ],
          "fr": [
            "Fond clair et calme, navigation minimale.",
            "Les images des projets apportent l’essentiel de la couleur.",
            "Modes pile focalisée et grille d’ensemble.",
            "Cartes aux angles arrondis, ombres douces et profondeur superposée.",
            "Le déplacement et les transitions donnent une sensation tactile."
          ]
        },
        "proposedAdaptation": {
          "en": [
            "Use the actual portfolio screenshots as the primary cards.",
            "Offer Focus, Grid and List modes backed by the same project JSON.",
            "Keep contribution, scope, technologies and galleries one interaction away.",
            "Use glass and colored depth in the gallery and controls.",
            "Provide keyboard navigation and a straightforward mobile list."
          ],
          "fr": [
            "Utiliser les véritables captures comme cartes principales.",
            "Proposer les modes Focus, Grille et Liste à partir du même JSON.",
            "Rendre contribution, périmètre, technologies et galeries accessibles en une interaction.",
            "Appliquer le verre et la profondeur colorée à la galerie et aux commandes.",
            "Prévoir une navigation au clavier et une liste mobile simple."
          ]
        },
        "implementationStatus": "not-applied"
      }
    ]
  },
  "navigation": [
    {
      "id": "work",
      "path": "/{locale}#work",
      "label": {
        "en": "Selected work",
        "fr": "Projets"
      }
    },
    {
      "id": "projects",
      "path": "/{locale}/projects",
      "label": {
        "en": "Project index",
        "fr": "Liste des projets"
      }
    },
    {
      "id": "approach",
      "path": "/{locale}#approach",
      "label": {
        "en": "Approach",
        "fr": "Approche"
      }
    },
    {
      "id": "contact",
      "path": "/{locale}#contact",
      "label": {
        "en": "Let’s talk",
        "fr": "Parlons-en"
      }
    }
  ],
  "shared": {
    "skip": {
      "en": "Skip to content",
      "fr": "Aller au contenu"
    },
    "home": {
      "en": "Charles Jackson — home",
      "fr": "Charles Jackson — accueil"
    },
    "tagline": {
      "en": "Design & engineering",
      "fr": "Conception & développement"
    },
    "navigationLabel": {
      "en": "Main navigation",
      "fr": "Navigation principale"
    },
    "work": {
      "en": "Selected work",
      "fr": "Projets"
    },
    "projectList": {
      "en": "Project index",
      "fr": "Liste des projets"
    },
    "approach": {
      "en": "Approach",
      "fr": "Approche"
    },
    "talk": {
      "en": "Let’s talk",
      "fr": "Parlons-en"
    },
    "footer": {
      "en": "Designed with intention. Built to matter.",
      "fr": "Conçu avec intention. Construit pour durer."
    },
    "backToTop": {
      "en": "Back to top",
      "fr": "Retour en haut"
    },
    "jsonLink": {
      "en": "Sitemap & project data · JSON",
      "fr": "Plan du site et données · JSON"
    }
  },
  "pages": {
    "home": {
      "eyebrow": {
        "en": "INDEPENDENT DESIGNER & DEVELOPER",
        "fr": "INDÉPENDANT · CONCEPTION & DÉVELOPPEMENT"
      },
      "headline": {
        "en": ["Big ideas.", "Thoughtfully", "built."],
        "fr": ["De l’ambition.", "Du sens.", "Du concret."]
      },
      "intro": {
        "en": "I turn complex ideas into products that feel effortless. From the first sketch to the finest interaction.",
        "fr": "Je transforme des idées complexes en produits qui semblent évidents. De la première esquisse à la dernière interaction."
      },
      "cta": {
        "en": "Explore selected work",
        "fr": "Découvrir les projets"
      },
      "glassTitle": {
        "en": "Where ideas take shape.",
        "fr": "L’idée prend forme."
      },
      "glassSubtitle": {
        "en": "Strategy. Design. Code.",
        "fr": "Stratégie. Design. Code."
      },
      "strapline": {
        "en": "USEFUL SOFTWARE. MEMORABLE EXPERIENCES.",
        "fr": "LOGICIELS UTILES. EXPÉRIENCES MÉMORABLES."
      },
      "workLabel": {
        "en": "01 / SELECTED WORK",
        "fr": "01 / SÉLECTION"
      },
      "workTitle": {
        "en": ["Proof of", "possibility."],
        "fr": ["L’ambition,", "en action."]
      },
      "workIntro": {
        "en": "From everyday workspaces to virtual worlds. Six projects where considered design meets real technical depth.",
        "fr": "Des espaces de travail aux mondes virtuels. Six projets où le design rencontre une véritable profondeur technique."
      },
      "featuredLabel": {
        "en": "Work, connected.",
        "fr": "Le travail, connecté."
      },
      "approachLabel": {
        "en": "02 / HOW I WORK",
        "fr": "02 / MA FAÇON DE TRAVAILLER"
      },
      "approachTitle": {
        "en": ["One point of view.", "Every last detail."],
        "fr": ["Une seule vision.", "Jusqu’au détail."]
      },
      "about": {
        "en": "I’m Charles. I connect product thinking, visual design and software engineering to build cohesive experiences from end to end.",
        "fr": "Je suis Charles. Je relie la réflexion produit, la conception visuelle et le développement pour construire des expériences cohérentes, de bout en bout."
      },
      "services": [
        {
          "title": {
            "en": "Find the important problem",
            "fr": "Comprendre ce qui compte"
          },
          "description": {
            "en": "Understand the people, the constraints and the decisions that will make the biggest difference.",
            "fr": "Clarifier le problème, les utilisateurs et les décisions qui auront le plus d’impact."
          }
        },
        {
          "title": {
            "en": "Make the idea tangible",
            "fr": "Donner forme à l’idée"
          },
          "description": {
            "en": "A strong visual direction. Clear interactions. An experience with a point of view of its own.",
            "fr": "Une direction visuelle forte. Des interactions claires. Une expérience qui a sa propre identité."
          }
        },
        {
          "title": {
            "en": "Build it for the real world",
            "fr": "Construire pour le réel"
          },
          "description": {
            "en": "Working software, polished interfaces and care that carries all the way through deployment.",
            "fr": "Du code fonctionnel, une interface soignée et une attention au détail jusqu’au déploiement."
          }
        }
      ]
    },
    "project": {
      "allWork": {
        "en": "All work",
        "fr": "Tous les projets"
      },
      "contribution": {
        "en": "MY CONTRIBUTION",
        "fr": "CONTRIBUTION"
      },
      "context": {
        "en": "PROJECT CONTEXT",
        "fr": "ÉTAT DU PROJET"
      },
      "visit": {
        "en": "Visit website",
        "fr": "Voir le site"
      },
      "challenge": {
        "en": "THE CHALLENGE",
        "fr": "LE DÉFI"
      },
      "approach": {
        "en": "MY APPROACH",
        "fr": "MON APPROCHE"
      },
      "gallery": {
        "en": "Project screenshots",
        "fr": "Captures du projet"
      },
      "next": {
        "en": "NEXT PROJECT",
        "fr": "PROJET SUIVANT"
      },
      "features": {
        "en": "FEATURES & DELIVERABLES",
        "fr": "FONCTIONNALITÉS ET LIVRABLES"
      },
      "technology": {
        "en": "TECHNOLOGY",
        "fr": "TECHNOLOGIES"
      },
      "view": {
        "en": "View project",
        "fr": "Voir le projet"
      },
      "enlarge": {
        "en": "Enlarge",
        "fr": "Agrandir"
      },
      "closeGallery": {
        "en": "Close gallery",
        "fr": "Fermer la galerie"
      },
      "imageGallery": {
        "en": "Project image gallery",
        "fr": "Galerie du projet"
      },
      "actualScreenshot": {
        "en": "ACTUAL SCREENSHOT",
        "fr": "CAPTURE RÉELLE"
      },
      "previousImage": {
        "en": "Previous",
        "fr": "Précédente"
      },
      "nextImage": {
        "en": "Next",
        "fr": "Suivante"
      },
      "pause": {
        "en": "Pause sculpture animation",
        "fr": "Mettre l’animation en pause"
      },
      "play": {
        "en": "Play sculpture animation",
        "fr": "Reprendre l’animation"
      }
    },
    "projectIndex": {
      "eyebrow": {
        "en": "THE PROJECT INDEX",
        "fr": "LA LISTE DES PROJETS"
      },
      "title": {
        "en": "The work, in detail.",
        "fr": "Les projets, en détail."
      },
      "intro": {
        "en": "A structured view of the projects: what they do, my contribution, their current context and the interfaces behind them.",
        "fr": "Une vue structurée des projets : leur fonction, ma contribution, leur état actuel et les interfaces qui les composent."
      },
      "scope": {
        "en": "Scope",
        "fr": "Périmètre"
      },
      "features": {
        "en": "Key features",
        "fr": "Fonctionnalités clés"
      },
      "technology": {
        "en": "Technology",
        "fr": "Technologies"
      },
      "screenshots": {
        "en": "screenshots",
        "fr": "captures"
      },
      "details": {
        "en": "Explore project & gallery",
        "fr": "Voir le projet et sa galerie"
      },
      "all": {
        "en": "All projects",
        "fr": "Tous les projets"
      }
    },
    "notFound": {
      "title": {
        "en": "This page took another path.",
        "fr": "Cette page est introuvable."
      },
      "cta": {
        "en": "Back to the work",
        "fr": "Voir les projets"
      }
    }
  },
  "contact": {
    "eyebrow": {
      "en": "THE NEXT CHAPTER",
      "fr": "LE PROCHAIN CHAPITRE"
    },
    "title": {
      "en": ["Something ambitious", "in mind?"],
      "fr": ["Une idée ambitieuse ?", "Donnons-lui vie."]
    },
    "description": {
      "en": "A product to launch. A platform to rethink. An experience that deserves better. Tell me what you want to build.",
      "fr": "Un produit à lancer. Une plateforme à repenser. Une expérience qui mérite mieux. Parlons de ce que vous voulez construire."
    },
    "cta": {
      "en": "Let’s build it together",
      "fr": "Parlons de votre projet"
    },
    "href": "mailto:charles@predictive.company",
    "upworkUrl": null,
    "domainEmail": {
      "address": null,
      "status": "unverified"
    },
    "note": {
      "en": "The contact address is the existing professional email until the domain mailbox is confirmed.",
      "fr": "L’adresse de contact reste l’adresse professionnelle existante jusqu’à la confirmation de la boîte du domaine."
    }
  },
  "projects": [
    {
      "slug": "myurbanfarm",
      "name": "MyUrbanFarm",
      "category": {
        "en": "Native application · Operations",
        "fr": "Application native · Opérations"
      },
      "headline": {
        "en": "A growing company. One connected workspace.",
        "fr": "Une entreprise qui grandit. Un espace commun."
      },
      "description": {
        "en": "The operational home for MicroHabitat: farm workflows, team knowledge and a built-in Drive, brought together in a native desktop experience.",
        "fr": "Le cœur opérationnel de MicroHabitat : gestion des fermes, connaissances d’équipe et Drive intégré dans une application native."
      },
      "challenge": {
        "en": "Urban farming connects work in the field with work at a desk. The interface needs to make that complexity navigable without losing the context of the team or the farm.",
        "fr": "L’agriculture urbaine relie le travail sur le terrain à celui au bureau. L’interface doit rendre cette complexité accessible en préservant le contexte de l’équipe et de la ferme."
      },
      "approach": {
        "en": "I brought operational tools into a shared application shell, with consistent navigation, a dedicated document workspace and guided farm creation. The screenshots show the native application, including both Drive views.",
        "fr": "J’ai réuni les outils opérationnels dans une interface commune, avec une navigation cohérente, un espace documentaire et la création guidée de fermes. Les captures présentent l’application native, dont les deux vues du Drive."
      },
      "scope": [
        {
          "en": "Product & interface design",
          "fr": "Conception produit et interfaces"
        },
        {
          "en": "Native desktop experience",
          "fr": "Expérience native de bureau"
        },
        {
          "en": "Operations & document workflows",
          "fr": "Opérations et gestion documentaire"
        }
      ],
      "color": "mint",
      "status": {
        "en": "Internal platform",
        "fr": "Plateforme interne"
      },
      "shots": [
        {
          "file": "/projects/myurbanfarm-drive.jpg",
          "label": {
            "en": "Drive · A shared home for everyday work",
            "fr": "Drive · Un espace pour le travail quotidien"
          },
          "assetId": "myurbanfarm-drive"
        },
        {
          "file": "/projects/myurbanfarm-drive-grid.jpg",
          "label": {
            "en": "Drive · A visual way to browse",
            "fr": "Drive · Une navigation visuelle"
          },
          "assetId": "myurbanfarm-drive-grid"
        },
        {
          "file": "/projects/myurbanfarm-create.jpg",
          "label": {
            "en": "Farm creation · A guided starting point",
            "fr": "Création de ferme · Un parcours guidé"
          },
          "assetId": "myurbanfarm-create"
        },
        {
          "file": "/projects/myurbanfarm-guide.jpg",
          "label": {
            "en": "Team guide · Knowledge inside the workspace",
            "fr": "Guide d’équipe · Le savoir dans l’espace de travail"
          },
          "assetId": "myurbanfarm-guide"
        }
      ],
      "id": "myurbanfarm",
      "order": 1,
      "technologies": ["Next.js", "React", "Electron", "TypeScript"],
      "features": [
        {
          "en": "Drive: list and grid views",
          "fr": "Drive : vues liste et grille"
        },
        {
          "en": "Guided farm creation",
          "fr": "Création guidée de fermes"
        },
        {
          "en": "Role-based team guide",
          "fr": "Guide d’équipe par rôle"
        },
        {
          "en": "Unified operational navigation",
          "fr": "Navigation opérationnelle unifiée"
        }
      ],
      "role": {
        "en": "Design & development",
        "fr": "Conception et développement"
      },
      "impactMetrics": [],
      "caseStudyPaths": {
        "en": "/en/work/myurbanfarm",
        "fr": "/fr/work/myurbanfarm"
      },
      "client": "MicroHabitat"
    },
    {
      "slug": "virtual-office",
      "name": "MicroHabitat Virtual Office",
      "category": {
        "en": "Native application · Real-time presence",
        "fr": "Application native · Présence en temps réel"
      },
      "headline": {
        "en": "A little closer. Even from far away.",
        "fr": "Plus proches. Même à distance."
      },
      "description": {
        "en": "A native spatial office for MicroHabitat. A shared world where colleagues can find one another, personalize their presence and work together from different places.",
        "fr": "Un bureau spatial natif pour MicroHabitat. Un monde commun où les collègues peuvent se retrouver, personnaliser leur présence et travailler ensemble à distance."
      },
      "challenge": {
        "en": "Remote tools are good at scheduling conversations. The more interesting problem is creating the feeling that your team is simply there.",
        "fr": "Les outils à distance savent planifier des conversations. Le défi est de retrouver la sensation que l’équipe est simplement présente."
      },
      "approach": {
        "en": "I’m building MicroHabitat’s native virtual office around spatial presence, proximity conversations and personal spaces. The desktop captures show the actual office environment, device controls and avatar customization.",
        "fr": "Je construis le bureau virtuel natif de MicroHabitat autour de la présence spatiale, des conversations de proximité et des espaces personnels. Les captures présentent l’environnement réel, les réglages audio et vidéo et la personnalisation de l’avatar."
      },
      "scope": [
        {
          "en": "Spatial interaction design",
          "fr": "Conception d’interactions spatiales"
        },
        {
          "en": "Native app & live communication",
          "fr": "Application native et communication"
        }
      ],
      "color": "peach",
      "status": {
        "en": "Active development",
        "fr": "En développement"
      },
      "shots": [
        {
          "file": "/projects/office-world.jpg",
          "label": {
            "en": "The office · A shared place to work",
            "fr": "Le bureau · Un lieu de travail commun"
          },
          "assetId": "office-world"
        },
        {
          "file": "/projects/office-devices.jpg",
          "label": {
            "en": "Devices · Audio and video controls",
            "fr": "Périphériques · Réglages audio et vidéo"
          },
          "assetId": "office-devices"
        },
        {
          "file": "/projects/office-avatar.jpg",
          "label": {
            "en": "Identity · Make the space your own",
            "fr": "Identité · Personnalisez votre présence"
          },
          "assetId": "office-avatar"
        }
      ],
      "id": "virtual-office",
      "order": 2,
      "technologies": ["Electron", "Next.js", "LiveKit"],
      "features": [
        {
          "en": "Spatial office and shared presence",
          "fr": "Bureau spatial et présence partagée"
        },
        {
          "en": "Audio and video device settings",
          "fr": "Réglages audio et vidéo"
        },
        {
          "en": "Avatar appearance controls",
          "fr": "Personnalisation des avatars"
        }
      ],
      "role": {
        "en": "Design & development",
        "fr": "Conception et développement"
      },
      "impactMetrics": [],
      "caseStudyPaths": {
        "en": "/en/work/virtual-office",
        "fr": "/fr/work/virtual-office"
      },
      "client": "MicroHabitat"
    },
    {
      "slug": "insilico",
      "name": "in silico.systems",
      "category": {
        "en": "Engineering software · Robotics",
        "fr": "Logiciels d’ingénierie · Robotique"
      },
      "headline": {
        "en": "From an idea to the physical world.",
        "fr": "De l’idée au monde physique."
      },
      "description": {
        "en": "A robotics research platform and a native engineering studio. Precise tools, a considered workspace and a visual language built for ambitious hardware.",
        "fr": "Une plateforme de recherche en robotique et un studio d’ingénierie natif. Des outils précis et un langage visuel au service de projets matériels ambitieux."
      },
      "challenge": {
        "en": "Engineering work needs clarity across very different scales: a mechanical detail, a complete system and the story that explains why it matters.",
        "fr": "L’ingénierie demande de la clarté à toutes les échelles : un détail mécanique, un système complet et le récit qui explique sa raison d’être."
      },
      "approach": {
        "en": "I work across the public product experience and the Studio interface, connecting the presentation of robotics research with a practical CAD workspace. The gallery includes the actual native Studio, its starting workspace and the public website. Hardware remains a research and development effort.",
        "fr": "Je travaille sur l’expérience publique et l’interface du Studio, en reliant la présentation de la recherche à un espace de CAO concret. La galerie présente le Studio natif, son écran d’accueil et le site public. Le matériel demeure un travail de recherche et développement."
      },
      "scope": [
        {
          "en": "Native engineering interface",
          "fr": "Interface d’ingénierie native"
        },
        {
          "en": "CAD workspace",
          "fr": "Espace de CAO"
        },
        {
          "en": "Interactive product storytelling",
          "fr": "Présentation interactive du produit"
        }
      ],
      "color": "blue",
      "url": "https://insilico.systems",
      "status": {
        "en": "Studio & research",
        "fr": "Studio et recherche"
      },
      "shots": [
        {
          "file": "/projects/insilico-studio.png",
          "label": {
            "en": "Studio · Precision in the details",
            "fr": "Studio · La précision dans les détails"
          },
          "assetId": "insilico-studio"
        },
        {
          "file": "/projects/insilico-app.png",
          "label": {
            "en": "Application · A workspace for engineering",
            "fr": "Application · Un espace pour l’ingénierie"
          },
          "assetId": "insilico-app"
        },
        {
          "file": "/projects/insilico-web.jpg",
          "label": {
            "en": "in silico.systems · The public experience",
            "fr": "in silico.systems · L’expérience publique"
          },
          "assetId": "insilico-web"
        }
      ],
      "id": "insilico",
      "order": 3,
      "technologies": ["Rust", "egui", "wgpu", "Next.js", "Three.js"],
      "features": [
        {
          "en": "Native CAD workspace",
          "fr": "Espace de CAO natif"
        },
        {
          "en": "Drawing and engineering interface",
          "fr": "Interface de dessin et d’ingénierie"
        },
        {
          "en": "Studio start workspace",
          "fr": "Écran d’accueil du Studio"
        },
        {
          "en": "Interactive robotics website",
          "fr": "Site de robotique interactif"
        }
      ],
      "role": {
        "en": "Design & development",
        "fr": "Conception et développement"
      },
      "impactMetrics": [],
      "caseStudyPaths": {
        "en": "/en/work/insilico",
        "fr": "/fr/work/insilico"
      },
      "client": null
    },
    {
      "slug": "microhabitat",
      "name": "MicroHabitat",
      "category": {
        "en": "Website · Urban agriculture",
        "fr": "Site web · Agriculture urbaine"
      },
      "headline": {
        "en": "Making a greener city feel possible.",
        "fr": "Donner vie à une ville plus verte."
      },
      "description": {
        "en": "A digital front door for an urban farming company, connecting rooftop agriculture, real estate and a clear path to a conversation.",
        "fr": "La vitrine d’une entreprise d’agriculture urbaine, reliant les fermes sur toit, l’immobilier et un parcours de prise de contact clair."
      },
      "challenge": {
        "en": "Communicate a tangible, place-based service to property teams across markets, while making the breadth of the offering easy to understand.",
        "fr": "Présenter un service concret et ancré dans les lieux à des équipes immobilières de plusieurs marchés, tout en rendant l’offre facile à comprendre."
      },
      "approach": {
        "en": "I built a website experience around the company’s real rooftops, services and brand. Clear navigation connects solutions, results and resources, with a direct route to requesting a demo.",
        "fr": "J’ai construit une expérience web autour des véritables toits, services et éléments de marque de l’entreprise. La navigation relie solutions, résultats et ressources à une demande de démonstration."
      },
      "scope": [
        {
          "en": "Website design & development",
          "fr": "Conception et développement web"
        },
        {
          "en": "Multilingual experience",
          "fr": "Expérience multilingue"
        },
        {
          "en": "Brand implementation",
          "fr": "Déploiement de la marque"
        }
      ],
      "color": "forest",
      "url": "https://www.microhabitat.com",
      "status": {
        "en": "Public website",
        "fr": "Site public"
      },
      "shots": [
        {
          "file": "/projects/microhabitat-web.jpg",
          "label": {
            "en": "MicroHabitat · Rooftops with a purpose",
            "fr": "MicroHabitat · Des toits qui prennent vie"
          },
          "assetId": "microhabitat-web"
        }
      ],
      "id": "microhabitat",
      "order": 4,
      "technologies": ["Next.js", "React", "Three.js"],
      "features": [
        {
          "en": "Rooftop agriculture storytelling",
          "fr": "Présentation de l’agriculture sur toit"
        },
        {
          "en": "Services and solutions navigation",
          "fr": "Navigation des services et solutions"
        },
        {
          "en": "Multilingual content",
          "fr": "Contenu multilingue"
        },
        {
          "en": "Demo request path",
          "fr": "Parcours de demande de démonstration"
        }
      ],
      "role": {
        "en": "Design & development",
        "fr": "Conception et développement"
      },
      "impactMetrics": [],
      "caseStudyPaths": {
        "en": "/en/work/microhabitat",
        "fr": "/fr/work/microhabitat"
      },
      "client": "MicroHabitat"
    },
    {
      "slug": "concord",
      "name": "Concord",
      "category": {
        "en": "Website · AI systems",
        "fr": "Site web · Systèmes d’IA"
      },
      "headline": {
        "en": "An ambitious system. A clear story.",
        "fr": "Un système ambitieux. Un récit clair."
      },
      "description": {
        "en": "A product website exploring how a company can coordinate its work through intelligent systems, with human judgment at the center.",
        "fr": "Un site produit qui explore la coordination du travail par des systèmes intelligents, avec le jugement humain au centre."
      },
      "challenge": {
        "en": "Make a complex idea understandable: departments, agents, approvals and activity need a coherent product story before they can become an intuitive experience.",
        "fr": "Rendre une idée complexe compréhensible : départements, agents, validations et activité doivent former un récit cohérent pour devenir une expérience intuitive."
      },
      "approach": {
        "en": "I shaped the website around the relationship between company-wide coordination and explicit human control. The public demonstration uses illustrative company data to make the product direction concrete.",
        "fr": "J’ai structuré le site autour de la coordination de l’entreprise et du contrôle humain explicite. La démonstration publique utilise des données illustratives pour rendre la vision concrète."
      },
      "scope": [
        {
          "en": "Product narrative",
          "fr": "Récit produit"
        },
        {
          "en": "Website design & development",
          "fr": "Conception et développement web"
        },
        {
          "en": "Interactive demonstration",
          "fr": "Démonstration interactive"
        }
      ],
      "color": "lavender",
      "url": "https://concord.company",
      "status": {
        "en": "Public product experience",
        "fr": "Présentation produit publique"
      },
      "shots": [
        {
          "file": "/projects/concord-web.jpg",
          "label": {
            "en": "Concord · A company-wide perspective",
            "fr": "Concord · Une perspective sur toute l’entreprise"
          },
          "assetId": "concord-web"
        }
      ],
      "id": "concord",
      "order": 5,
      "technologies": ["Next.js", "React", "TypeScript"],
      "features": [
        {
          "en": "Company-wide product narrative",
          "fr": "Récit produit à l’échelle de l’entreprise"
        },
        {
          "en": "Illustrative interactive demo",
          "fr": "Démonstration interactive illustrative"
        },
        {
          "en": "Human approval and oversight story",
          "fr": "Présentation des validations et du contrôle humain"
        }
      ],
      "role": {
        "en": "Design & development",
        "fr": "Conception et développement"
      },
      "impactMetrics": [],
      "caseStudyPaths": {
        "en": "/en/work/concord",
        "fr": "/fr/work/concord"
      },
      "client": null
    },
    {
      "slug": "mid-marketing",
      "name": "Mid Marketing",
      "category": {
        "en": "Website · Marketing workspace",
        "fr": "Site web · Espace marketing"
      },
      "headline": {
        "en": "More context. More considered work.",
        "fr": "Plus de contexte. Un travail plus réfléchi."
      },
      "description": {
        "en": "A calm, editorial product experience for a private marketing workspace: ideas, source context and drafts, brought into focus.",
        "fr": "Une expérience éditoriale calme pour un espace marketing privé : idées, sources et brouillons réunis avec clarté."
      },
      "challenge": {
        "en": "Give an evolving AI product a credible identity while making the current experience and the longer-term ambition easy to distinguish.",
        "fr": "Donner une identité crédible à un produit d’IA en évolution, en distinguant clairement l’expérience actuelle de l’ambition à long terme."
      },
      "approach": {
        "en": "I designed and built a restrained visual system with warm materials, strong typography and a clear explanation of the workspace. The site presents a private preview; broader execution and automation are still developing.",
        "fr": "J’ai conçu et développé un univers visuel sobre, avec des matières chaleureuses, une typographie affirmée et une présentation claire de l’espace de travail. Le site présente un aperçu privé ; l’exécution et l’automatisation continuent d’évoluer."
      },
      "scope": [
        {
          "en": "Art direction",
          "fr": "Direction artistique"
        },
        {
          "en": "Website design & development",
          "fr": "Conception et développement web"
        },
        {
          "en": "Product positioning",
          "fr": "Positionnement produit"
        }
      ],
      "color": "sand",
      "url": "https://marketing-private-preview.digitaltwins-world.workers.dev",
      "status": {
        "en": "Private preview",
        "fr": "Aperçu privé"
      },
      "shots": [
        {
          "file": "/projects/marketing-web.jpg",
          "label": {
            "en": "Mid Marketing · A more considered workspace",
            "fr": "Mid Marketing · Un espace plus réfléchi"
          },
          "assetId": "marketing-web"
        }
      ],
      "id": "mid-marketing",
      "order": 6,
      "technologies": ["Next.js", "React", "TypeScript"],
      "features": [
        {
          "en": "Editorial visual direction",
          "fr": "Direction visuelle éditoriale"
        },
        {
          "en": "Marketing workspace positioning",
          "fr": "Positionnement de l’espace marketing"
        },
        {
          "en": "Features and preview explanation",
          "fr": "Présentation des fonctionnalités et de l’aperçu privé"
        }
      ],
      "role": {
        "en": "Design & development",
        "fr": "Conception et développement"
      },
      "impactMetrics": [],
      "caseStudyPaths": {
        "en": "/en/work/mid-marketing",
        "fr": "/fr/work/mid-marketing"
      },
      "client": null
    }
  ],
  "assets": [
    {
      "id": "myurbanfarm-drive",
      "path": "/projects/myurbanfarm-drive.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2944,
      "height": 1754,
      "bytes": 356456,
      "sha256": "7dd66c2180ff6d85af4b90acd31e947884e272c487cedffb4ab9d6726900f2e7",
      "label": {
        "en": "Drive · A shared home for everyday work",
        "fr": "Drive · Un espace pour le travail quotidien"
      },
      "source": {
        "kind": "native-application",
        "name": "MyUrbanFarm",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "myurbanfarm-drive-grid",
      "path": "/projects/myurbanfarm-drive-grid.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2944,
      "height": 1754,
      "bytes": 380433,
      "sha256": "8d8de91119a70b43ac3157c3683adf380a907c5beec963c529cf83b9a849733d",
      "label": {
        "en": "Drive · A visual way to browse",
        "fr": "Drive · Une navigation visuelle"
      },
      "source": {
        "kind": "native-application",
        "name": "MyUrbanFarm",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "myurbanfarm-create",
      "path": "/projects/myurbanfarm-create.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2944,
      "height": 1754,
      "bytes": 354898,
      "sha256": "e0f3128b58085e927c226c75828d449cec1ab11829582143eff82624a9a82be1",
      "label": {
        "en": "Farm creation · A guided starting point",
        "fr": "Création de ferme · Un parcours guidé"
      },
      "source": {
        "kind": "native-application",
        "name": "MyUrbanFarm",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "myurbanfarm-guide",
      "path": "/projects/myurbanfarm-guide.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2944,
      "height": 1754,
      "bytes": 310579,
      "sha256": "d908ae818c4a551e4a2ed2f97c0e9cbbfb76475caf9ab039a5b5b8539f42f8b5",
      "label": {
        "en": "Team guide · Knowledge inside the workspace",
        "fr": "Guide d’équipe · Le savoir dans l’espace de travail"
      },
      "source": {
        "kind": "native-application",
        "name": "MyUrbanFarm",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "office-world",
      "path": "/projects/office-world.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2560,
      "height": 1600,
      "bytes": 827031,
      "sha256": "6c3e0bbbcb7e68c6047ba954fb7ee3aa2a1aefa9b9aeb8e6506a90a2a764cba5",
      "label": {
        "en": "The office · A shared place to work",
        "fr": "Le bureau · Un lieu de travail commun"
      },
      "source": {
        "kind": "native-application",
        "name": "MicroHabitat Virtual Office",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "office-devices",
      "path": "/projects/office-devices.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2560,
      "height": 1600,
      "bytes": 334107,
      "sha256": "de37a917f78c40bacdecf9f688e2c23ef6462eef102a8f2171ba37dff316eee2",
      "label": {
        "en": "Devices · Audio and video controls",
        "fr": "Périphériques · Réglages audio et vidéo"
      },
      "source": {
        "kind": "native-application",
        "name": "MicroHabitat Virtual Office",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "office-avatar",
      "path": "/projects/office-avatar.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2560,
      "height": 1600,
      "bytes": 326522,
      "sha256": "f9a335e90078ab9e6d3d244b0972b9312b1c6e1dea9bcfe5049ec795d2424f4e",
      "label": {
        "en": "Identity · Make the space your own",
        "fr": "Identité · Personnalisez votre présence"
      },
      "source": {
        "kind": "native-application",
        "name": "MicroHabitat Virtual Office",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "insilico-studio",
      "path": "/projects/insilico-studio.png",
      "type": "screenshot",
      "mimeType": "image/png",
      "width": 3200,
      "height": 2000,
      "bytes": 583533,
      "sha256": "269465e427caecf7bbb07e8ae79863926de947999532bd05135fddb1e9ec8813",
      "label": {
        "en": "Studio · Precision in the details",
        "fr": "Studio · La précision dans les détails"
      },
      "source": {
        "kind": "native-application",
        "name": "in silico.systems",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "insilico-app",
      "path": "/projects/insilico-app.png",
      "type": "screenshot",
      "mimeType": "image/png",
      "width": 3200,
      "height": 2000,
      "bytes": 245792,
      "sha256": "54a2f00613e42f5736d49d608b16fcfdc0feea784856a9a56b39243e0c020568",
      "label": {
        "en": "Application · A workspace for engineering",
        "fr": "Application · Un espace pour l’ingénierie"
      },
      "source": {
        "kind": "native-application",
        "name": "in silico.systems",
        "url": null
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "insilico-web",
      "path": "/projects/insilico-web.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2560,
      "height": 1319,
      "bytes": 137386,
      "sha256": "a993636e2808f8eb67bee9999896ce048c021a41609d23be886fd55f9a1da880",
      "label": {
        "en": "in silico.systems · The public experience",
        "fr": "in silico.systems · L’expérience publique"
      },
      "source": {
        "kind": "website",
        "name": "in silico.systems",
        "url": "https://insilico.systems"
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "microhabitat-web",
      "path": "/projects/microhabitat-web.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2560,
      "height": 1319,
      "bytes": 203770,
      "sha256": "d61196efdbe28b45cff97399ecf647dc3dc36ceafc00469ca5c789312a5a12a8",
      "label": {
        "en": "MicroHabitat · Rooftops with a purpose",
        "fr": "MicroHabitat · Des toits qui prennent vie"
      },
      "source": {
        "kind": "website",
        "name": "MicroHabitat",
        "url": "https://www.microhabitat.com"
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "concord-web",
      "path": "/projects/concord-web.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2560,
      "height": 1319,
      "bytes": 147695,
      "sha256": "dd7c55db2f4411a68c993db07f2c5d48a8ab4cbdb6f60adc29664ad1262864ed",
      "label": {
        "en": "Concord · A company-wide perspective",
        "fr": "Concord · Une perspective sur toute l’entreprise"
      },
      "source": {
        "kind": "website",
        "name": "Concord",
        "url": "https://concord.company"
      },
      "capturedOrCollectedOn": "2026-10-25"
    },
    {
      "id": "marketing-web",
      "path": "/projects/marketing-web.jpg",
      "type": "screenshot",
      "mimeType": "image/jpeg",
      "width": 2560,
      "height": 1319,
      "bytes": 142414,
      "sha256": "e835376f73574ba5abfdbd0cad685463efb6b52329ea39e5e50b1f0457d714e3",
      "label": {
        "en": "Mid Marketing · A more considered workspace",
        "fr": "Mid Marketing · Un espace plus réfléchi"
      },
      "source": {
        "kind": "website",
        "name": "Mid Marketing",
        "url": "https://marketing-private-preview.digitaltwins-world.workers.dev"
      },
      "capturedOrCollectedOn": "2026-10-25"
    }
  ],
  "sitemap": {
    "routes": [
      {
        "path": "/en",
        "url": "https://charlesjackson.dev/en",
        "locale": "en",
        "type": "home",
        "title": "Charles Jackson — Design & Engineering",
        "projectId": null,
        "alternates": {
          "en": "https://charlesjackson.dev/en",
          "fr": "https://charlesjackson.dev/fr"
        },
        "indexable": true
      },
      {
        "path": "/en/projects",
        "url": "https://charlesjackson.dev/en/projects",
        "locale": "en",
        "type": "project-index",
        "title": "The work, in detail.",
        "projectId": null,
        "alternates": {
          "en": "https://charlesjackson.dev/en/projects",
          "fr": "https://charlesjackson.dev/fr/projects"
        },
        "indexable": true
      },
      {
        "path": "/en/work/myurbanfarm",
        "url": "https://charlesjackson.dev/en/work/myurbanfarm",
        "locale": "en",
        "type": "project",
        "title": "MyUrbanFarm",
        "projectId": "myurbanfarm",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/myurbanfarm",
          "fr": "https://charlesjackson.dev/fr/work/myurbanfarm"
        },
        "indexable": true
      },
      {
        "path": "/en/work/virtual-office",
        "url": "https://charlesjackson.dev/en/work/virtual-office",
        "locale": "en",
        "type": "project",
        "title": "MicroHabitat Virtual Office",
        "projectId": "virtual-office",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/virtual-office",
          "fr": "https://charlesjackson.dev/fr/work/virtual-office"
        },
        "indexable": true
      },
      {
        "path": "/en/work/insilico",
        "url": "https://charlesjackson.dev/en/work/insilico",
        "locale": "en",
        "type": "project",
        "title": "in silico.systems",
        "projectId": "insilico",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/insilico",
          "fr": "https://charlesjackson.dev/fr/work/insilico"
        },
        "indexable": true
      },
      {
        "path": "/en/work/microhabitat",
        "url": "https://charlesjackson.dev/en/work/microhabitat",
        "locale": "en",
        "type": "project",
        "title": "MicroHabitat",
        "projectId": "microhabitat",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/microhabitat",
          "fr": "https://charlesjackson.dev/fr/work/microhabitat"
        },
        "indexable": true
      },
      {
        "path": "/en/work/concord",
        "url": "https://charlesjackson.dev/en/work/concord",
        "locale": "en",
        "type": "project",
        "title": "Concord",
        "projectId": "concord",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/concord",
          "fr": "https://charlesjackson.dev/fr/work/concord"
        },
        "indexable": true
      },
      {
        "path": "/en/work/mid-marketing",
        "url": "https://charlesjackson.dev/en/work/mid-marketing",
        "locale": "en",
        "type": "project",
        "title": "Mid Marketing",
        "projectId": "mid-marketing",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/mid-marketing",
          "fr": "https://charlesjackson.dev/fr/work/mid-marketing"
        },
        "indexable": true
      },
      {
        "path": "/fr",
        "url": "https://charlesjackson.dev/fr",
        "locale": "fr",
        "type": "home",
        "title": "Charles Jackson — Conception & développement",
        "projectId": null,
        "alternates": {
          "en": "https://charlesjackson.dev/en",
          "fr": "https://charlesjackson.dev/fr"
        },
        "indexable": true
      },
      {
        "path": "/fr/projects",
        "url": "https://charlesjackson.dev/fr/projects",
        "locale": "fr",
        "type": "project-index",
        "title": "Les projets, en détail.",
        "projectId": null,
        "alternates": {
          "en": "https://charlesjackson.dev/en/projects",
          "fr": "https://charlesjackson.dev/fr/projects"
        },
        "indexable": true
      },
      {
        "path": "/fr/work/myurbanfarm",
        "url": "https://charlesjackson.dev/fr/work/myurbanfarm",
        "locale": "fr",
        "type": "project",
        "title": "MyUrbanFarm",
        "projectId": "myurbanfarm",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/myurbanfarm",
          "fr": "https://charlesjackson.dev/fr/work/myurbanfarm"
        },
        "indexable": true
      },
      {
        "path": "/fr/work/virtual-office",
        "url": "https://charlesjackson.dev/fr/work/virtual-office",
        "locale": "fr",
        "type": "project",
        "title": "MicroHabitat Virtual Office",
        "projectId": "virtual-office",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/virtual-office",
          "fr": "https://charlesjackson.dev/fr/work/virtual-office"
        },
        "indexable": true
      },
      {
        "path": "/fr/work/insilico",
        "url": "https://charlesjackson.dev/fr/work/insilico",
        "locale": "fr",
        "type": "project",
        "title": "in silico.systems",
        "projectId": "insilico",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/insilico",
          "fr": "https://charlesjackson.dev/fr/work/insilico"
        },
        "indexable": true
      },
      {
        "path": "/fr/work/microhabitat",
        "url": "https://charlesjackson.dev/fr/work/microhabitat",
        "locale": "fr",
        "type": "project",
        "title": "MicroHabitat",
        "projectId": "microhabitat",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/microhabitat",
          "fr": "https://charlesjackson.dev/fr/work/microhabitat"
        },
        "indexable": true
      },
      {
        "path": "/fr/work/concord",
        "url": "https://charlesjackson.dev/fr/work/concord",
        "locale": "fr",
        "type": "project",
        "title": "Concord",
        "projectId": "concord",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/concord",
          "fr": "https://charlesjackson.dev/fr/work/concord"
        },
        "indexable": true
      },
      {
        "path": "/fr/work/mid-marketing",
        "url": "https://charlesjackson.dev/fr/work/mid-marketing",
        "locale": "fr",
        "type": "project",
        "title": "Mid Marketing",
        "projectId": "mid-marketing",
        "alternates": {
          "en": "https://charlesjackson.dev/en/work/mid-marketing",
          "fr": "https://charlesjackson.dev/fr/work/mid-marketing"
        },
        "indexable": true
      }
    ],
    "redirects": [
      {
        "from": "/",
        "to": "/en",
        "permanent": true
      }
    ],
    "resources": [
      {
        "path": "/sitemap.json",
        "type": "application/json",
        "description": "Canonical content and sitemap source"
      },
      {
        "path": "/sitemap.xml",
        "type": "application/xml",
        "description": "Search-engine sitemap derived from this file"
      },
      {
        "path": "/robots.txt",
        "type": "text/plain"
      },
      {
        "path": "/opengraph-image",
        "type": "image/png"
      },
      {
        "path": "/icon.svg",
        "type": "image/svg+xml"
      }
    ]
  },
  "editorial": {
    "claimsPolicy": {
      "en": "Describe observed interfaces and source-backed capabilities. Do not invent client results, business metrics or production readiness.",
      "fr": "Décrire les interfaces observées et les capacités appuyées par les sources. Ne pas inventer de résultats clients, de mesures commerciales ou de maturité de production."
    },
    "openItems": [
      {
        "id": "upwork-profile",
        "status": "pending",
        "description": {
          "en": "Add the verified Upwork profile URL when available.",
          "fr": "Ajouter l’URL du profil Upwork lorsqu’elle sera disponible."
        }
      },
      {
        "id": "domain-inbox",
        "status": "pending",
        "description": {
          "en": "Confirm access to an email address on charlesjackson.dev before using it publicly.",
          "fr": "Confirmer l’accès à une adresse charlesjackson.dev avant de l’utiliser publiquement."
        }
      },
      {
        "id": "design-review",
        "status": "in-progress",
        "description": {
          "en": "Refine the visual direction together with Charles.",
          "fr": "Affiner la direction visuelle avec Charles."
        }
      }
    ]
  }
}
