4bc0886a42
- Add 07-04-SUMMARY.md (endpoint Nitro bilingue + hreflang x-default + draft filter) - Update STATE.md (14/15 plans, 93%) - Check SEO-12 in REQUIREMENTS.md and ROADMAP.md - Document gotcha queryCollection import from '@nuxt/content/server' (vue-tsc auto-import not resolved in server/)
5.1 KiB
5.1 KiB
Requirements: Portfolio Killian' Dalcin
Defined: 2026-04-10 Updated: 2026-04-21 (v1.1 added) Core Value: Positionner Killian comme dev Hytale #1, crawlable sans JS, SEO optimise
v1 Requirements (M1 — Complété 2026-04-21)
Content
- CONT-01: Refonte Hero accueil — "Hytale Plugin Developer" en H1, CTA Discord/contact, bilingue
- CONT-02: Page Hytale dediee
/hytale— services plugin dev, tiers pricing, demos placeholders, maintenance recurrente, bilingue - CONT-03: Grille tarifaire — plugin simple/complexe/sur-mesure/maintenance/web avec prix visibles
- CONT-04: Temoignages — section featured + stats sur homepage et page Hytale (5 avis Fiverr existants)
SEO
- SEO-01: Canonical links —
<link rel="canonical">sur chaque page pour eviter duplication i18n - SEO-02: ogUrl par page — chaque
useSeoMeta()inclutogUrlspecifique - SEO-03: og:image par page — images distinctes au lieu du meme og-image.png partout
- SEO-04: JSON-LD complet — Person (homepage), Service (hytale), SoftwareApplication (projets), composable
useJsonLd.ts - SEO-05: jobTitle corrige — "Hytale Plugin Developer" dans site.ts et JSON-LD, pas "Full Stack Freelance"
i18n
- I18N-01: Audit complet FR/EN — chaque cle FR doit exister en EN avec traduction reelle
- I18N-02: Qualite traductions FR — reformuler les traductions approximatives/anglicismes
- I18N-03: Hardcoded strings — eliminer toutes les chaines en dur dans les composants
- I18N-04: SEO keys Hytale — title/description/og specifiques pour la page Hytale en FR et EN
Fixes
- FIX-01: Supprimer
public/sitemap.xmlstatique — conflit avec@nuxtjs/sitemapdynamique - FIX-02: Dockerfile pnpm — remplacer
npm ciparpnpm install --frozen-lockfile - FIX-03: Rate limiting contact API — protection anti-spam in-memory sur
/api/contact - FIX-04: Donnees incoherentes —
reviewCount: '50'vstotalReviews: 10, Fiverr URLs# - FIX-05: Pinning deps —
vue: "latest"etvue-router: "latest"a pincer sur^3.5.0/^4.5.0
Deployment
- DEPLOY-01: Dockerfile production corrige — pnpm, node:22-alpine, env vars SMTP/gtag runtime
v1.1 Requirements (M1.1 — SEO Hytale — Autorité & Contenu)
Blog — Système
- BLOG-01: Intégration
@nuxt/contentou équivalent — renderer markdown complet (syntax highlighting, images, embeds, tables, callouts/alerts) - BLOG-02: Page listing
/blog— liste de tous les articles avec titre, description, date, tags, SSR - BLOG-03: Page article
/blog/[slug]— rendu SSR complet, table des matières, navigation prev/next - BLOG-04: Blocs de code avec syntax highlighting (Kotlin, Java, TypeScript, Shell prioritaires pour Hytale)
- BLOG-05: Support images dans articles — images optimisées avec
<NuxtImg>ou<nuxt-img>
Blog — Contenu
- BLOG-06: Articles bilingues FR/EN — structure i18n dans le système de contenu
- BLOG-07: Au moins 2 articles seed Hytale au lancement (ex: "How to build your first Hytale plugin", "Hytale plugin development in 2026")
SEO — Blog
- SEO-10:
useSeoMeta()par article — title, description, og:title, og:description, og:image uniques - SEO-11: JSON-LD
Articlepar billet de blog — author, datePublished, dateModified, headline - SEO-12: Sitemap étendu — URLs
/blog/[slug]et/en/blog/[slug]incluses automatiquement - SEO-13: Open Graph image par article — og:image spécifique (image de l'article ou fallback branded)
SEO — Cocon sémantique
- SEO-14: Liens internes structurés — articles de blog pointent vers
/hytale, page/hytaleliste les articles récents - SEO-15: BreadcrumbList JSON-LD sur les pages blog (Accueil → Blog → Article)
Future Requirements (backlog)
- SEO-06: og:image dynamique générée par page (OG image generator)
- FEAT-01: Formulaire devis en ligne
- FEAT-02: Section portfolio Minecraft Java
- CONT-08: Newsletter / liste email pour communauté Hytale
Out of Scope
| Feature | Reason |
|---|---|
| Tests automatises | Ship d'abord, tests ensuite |
| Dashboard admin | Blog statique markdown, pas de CMS |
| PWA/Service Workers | Pas de besoin offline |
| Pub payante | Budget zero |
| Payment integration | Paiements via Fiverr ou virement |
| Core Web Vitals | Milestone dédié si besoin |
| OG image generator | Complexité vs impact — backlog |
Traceability v1.1
| Requirement | Phase | Status |
|---|---|---|
| BLOG-01 | Phase 5 | Pending |
| BLOG-04 | Phase 5 | Pending |
| BLOG-05 | Phase 5 | Pending |
| BLOG-02 | Phase 6 | Pending |
| BLOG-03 | Phase 6 | Pending |
| BLOG-06 | Phase 6 | Pending |
| SEO-10 | Phase 7 | Pending |
| SEO-11 | Phase 7 | Pending |
| SEO-12 | Phase 7 | Done (07-04) |
| SEO-13 | Phase 7 | Pending |
| SEO-15 | Phase 7 | Pending |
| BLOG-07 | Phase 8 | Pending |
| SEO-14 | Phase 8 | Pending |