feat: pivot complet - agence web artisans BTP Nord + Sanity CMS
Transformation complète du site HookLab de formation TikTok Shop vers une landing page haute conversion pour agence web locale ciblant les artisans du bâtiment dans le Nord (Douai, Orchies, Valenciennes). - Nouveau design system : bleu nuit/orange sur fond clair (mobile-first) - Hero avec promesse artisan + CTA orange "Réserver mon Audit" - Section "Le Système" (3 étapes : Trouvé, Choisi, Contacté) - Portfolio connecté à Sanity.io (fallback data intégré) - Section "Qui suis-je" avec carte OpenStreetMap interactive - FAQ orientée artisans avec JSON-LD pour Google - Formulaire contact audit gratuit - SEO local : 12 keywords artisans, JSON-LD LocalBusiness - Sanity.io schemas (portfolio, siteSettings) + client conditionnel - Accessibilité : skip-to-content, focus-visible, aria-labels https://claude.ai/code/session_01H2aRGDaKgarPvhay2HxN6Y
This commit is contained in:
12
sanity/schemas/index.ts
Normal file
12
sanity/schemas/index.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
// Sanity Schema Index
|
||||
// Importez ces schémas dans votre Sanity Studio (sanity.config.ts)
|
||||
//
|
||||
// import portfolio from './schemas/portfolio'
|
||||
// import siteSettings from './schemas/siteSettings'
|
||||
//
|
||||
// export default defineConfig({
|
||||
// schema: { types: [portfolio, siteSettings] }
|
||||
// })
|
||||
|
||||
export { default as portfolio } from "./portfolio";
|
||||
export { default as siteSettings } from "./siteSettings";
|
||||
43
sanity/schemas/portfolio.ts
Normal file
43
sanity/schemas/portfolio.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
// Sanity schema: Portfolio
|
||||
// Créez ce schéma dans votre projet Sanity Studio
|
||||
// Type: document
|
||||
|
||||
const portfolio = {
|
||||
name: "portfolio",
|
||||
title: "Portfolio",
|
||||
type: "document",
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
title: "Titre du projet",
|
||||
type: "string",
|
||||
description: 'Ex: "Couvreur à Arleux"',
|
||||
validation: (Rule: { required: () => unknown }) => Rule.required(),
|
||||
},
|
||||
{
|
||||
name: "slug",
|
||||
title: "Slug",
|
||||
type: "slug",
|
||||
options: { source: "title" },
|
||||
},
|
||||
{
|
||||
name: "image",
|
||||
title: "Image du site (mockup)",
|
||||
type: "image",
|
||||
options: { hotspot: true },
|
||||
},
|
||||
{
|
||||
name: "result",
|
||||
title: "Résultat chiffré",
|
||||
type: "string",
|
||||
description: 'Ex: "+30% de devis en 3 mois"',
|
||||
},
|
||||
{
|
||||
name: "orderRank",
|
||||
title: "Ordre d'affichage",
|
||||
type: "number",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default portfolio;
|
||||
60
sanity/schemas/siteSettings.ts
Normal file
60
sanity/schemas/siteSettings.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
// Sanity schema: Site Settings (singleton)
|
||||
// Créez ce schéma dans votre projet Sanity Studio
|
||||
// Type: document (singleton)
|
||||
|
||||
const siteSettings = {
|
||||
name: "siteSettings",
|
||||
title: "Réglages du site",
|
||||
type: "document",
|
||||
fields: [
|
||||
{
|
||||
name: "ownerName",
|
||||
title: "Votre nom",
|
||||
type: "string",
|
||||
initialValue: "Enguerrand",
|
||||
},
|
||||
{
|
||||
name: "ownerBio",
|
||||
title: "Votre bio",
|
||||
type: "text",
|
||||
rows: 4,
|
||||
description: "Texte de présentation qui apparaît dans la section 'Qui suis-je'",
|
||||
},
|
||||
{
|
||||
name: "ownerPhoto",
|
||||
title: "Votre photo",
|
||||
type: "image",
|
||||
options: { hotspot: true },
|
||||
},
|
||||
{
|
||||
name: "address",
|
||||
title: "Adresse",
|
||||
type: "string",
|
||||
initialValue: "Flines-lez-Raches, Nord (59)",
|
||||
},
|
||||
{
|
||||
name: "phone",
|
||||
title: "Téléphone",
|
||||
type: "string",
|
||||
},
|
||||
{
|
||||
name: "email",
|
||||
title: "Email de contact",
|
||||
type: "string",
|
||||
},
|
||||
{
|
||||
name: "lat",
|
||||
title: "Latitude (carte)",
|
||||
type: "number",
|
||||
initialValue: 50.4267,
|
||||
},
|
||||
{
|
||||
name: "lng",
|
||||
title: "Longitude (carte)",
|
||||
type: "number",
|
||||
initialValue: 3.2372,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default siteSettings;
|
||||
Reference in New Issue
Block a user