kayjaydee
33bbb7a3b9
feat(localization): implement localePath for project links across components
...
- Updated HytaleDemoGrid.vue, ProjectCard.vue, FeaturedProjectsSection.vue, about.vue, and project/[id].vue to utilize localePath for project links, enhancing localization support.
- This change ensures that project URLs are correctly localized, improving user experience across different languages.
This commit strengthens the site's multilingual capabilities by standardizing project link paths.
2026-04-28 19:29:40 +02:00
kayjaydee
5ae226bbf2
feat(hytale): add Gitea support for Hytale demos
...
- Updated HytaleDemoGrid.vue to include a button for Gitea links, enhancing visibility for users.
- Modified hytaleDemos.ts to add Gitea URLs for existing demos, providing additional access options.
- Updated projects.ts to include Gitea links for GravityFlip and ChainLightning projects, improving resource accessibility.
This commit expands the integration of Gitea within the Hytale demo offerings, promoting alternative hosting options for users.
2026-04-28 19:23:18 +02:00
kayjaydee
4d19835f5d
feat(hytale): add new Hytale plugins and localization support
...
- Introduced two new plugins: Async and ChainLightning, with detailed metadata including images, technologies, and links to Modtale, CurseForge, and GitHub.
- Updated localization files to include new entries for both plugins in English and French, enhancing user accessibility.
- Added images for the new plugins to the public directory.
This commit expands the Hytale plugin offerings and improves the site's multilingual support.
2026-04-28 18:50:55 +02:00
kayjaydee
d5dbbb6dff
feat(hytale): add HytaleDemoGrid component and demo data
...
- Introduced HytaleDemoGrid.vue to showcase live Hytale plugins with a responsive layout.
- Created hytaleDemos.ts to manage demo data, including details for VotePipe and GravityFlip plugins.
- Updated Hytale page to include the new demo grid section.
- Enhanced AppFooter and ServicesSection with i18n support for better localization.
- Added new blog post detailing the development process of the GravityFlip plugin, available in both English and French.
This commit enhances the visibility of Hytale plugins and improves the overall user experience on the site.
2026-04-25 15:39:53 +02:00
kayjaydee
0d238c5b0d
feat(pricing): recalibrate to real Hytale market (149€/349€/790€)
...
Pricing refonte après rapport 3 (RESEARCH/Hytale/3 Pricing Calibration).
**Décision clé du rapport** : aucun serveur Hytale n'a payé €500+ pour
un plugin single en 2026 (public data). Top server Runeteria = 29 CCU
peak, €200-800/mois gross revenue ceiling. 70-80% du top 30 serveurs
= volunteer/owner-coded, zéro budget externe.
**Nouvelle grille adaptée à la réalité du marché Hytale** :
- Plugin Essentiel 149€ (1 feature, ≤8h, livraison 3-5j)
- Système Sur-Mesure 349€ (GUI in-game, ≤20h, 1-2 sem) [featured]
- Module Flagship 790€ (quote-based, top-30 tier only)
- Retainer Mensuel 450€/mois (~12h/mo)
- Site Gaming 500€
**Ajout** : pricingNote avec mention 45€/h (spot fixes) et flagship CTA.
Ancienne grille (400€/1500€/5000€) filtrait 95% du marché — non viable.
Nouvelle grille capture ~85% de la demande Hytale observée tout en
laissant room upsell pour les 5-8 flagship servers réels.
RESEARCH/Hytale/3 ajouté (rapport complet avec top 30 audit, BBB
scatter analysis, WTP evidence par segment, 3 scénarios projetés).
2026-04-24 13:51:41 +02:00
kayjaydee
133f7fdaa3
feat(rebrand): pricing market-calibrated + remove /fiverr entirely
...
PRICING (/hytale) calibrated from market research (RESEARCH/Hytale/):
- Plugin Express: from 400€ (1-2j, petit système scopé)
- Projet Sur-Mesure: from 1 500€ (2-6 sem, featured popular)
- Système MMO Complet: from 5 000€ (4-8 sem, stack complet)
- Retainer Mensuel: from 800€/mois (4-8h/sem)
- Site Gaming/Serveur: from 1 000€ (Nuxt SSR + vote-rewards)
Source: TJM défensif senior Java FR 7ans = €450-650/jour (Freelance.com,
Arc.dev, Portage360). Segments cibles : small network (2-5 staff) +
mid-tier RPG/MMO (5-15 staff). Hobbyistes redirigés vers plugins
productisés BBB $15-25 (phase 10 future).
REMOVED /fiverr page entirely:
- Deleted app/pages/fiverr.vue (page removed from build + SEO)
- Removed from AppHeader navLinks + AppFooter quickLinks + socialLinks
- Removed nav.fiverr + a11y.fiverr + seo.fiverr + full fiverr.* block
from fr.json + en.json (~75 clés chacun)
- Removed fiverr + FiverrConfig + FiverrService from site.ts + shared types
- Removed /fiverr internal links priority (redirected to /hytale)
- JSON-LD index.vue sameAs cleaned (LinkedIn + Gitea only, no Fiverr)
- reviewsLink testimonials redirected to /contact
Rationale: analyse de marché explicite "Fiverr destroys senior
positioning faster than it generates revenue"
RESEARCH/Hytale/ added (3 deep reports on pricing + prospection).
2026-04-24 13:32:23 +02:00
kayjaydee
0994260641
docs: audit plugins vs dominants gratuits (baseline top 10 CurseForge)
...
PLUGINS.md:
- FireballStaff → ChainLightning Sceptre (évite conflit Wan's Wonder
Weapons 342K free). Chaînage BFS 5 targets max radius 8, damage
dégressif 8/6/4/3/2, particles ELECTRIC_SPARK+END_ROD. Toujours 1j.
- Note "Audit concurrence" ajoutée listant les 6 dominants évités
IDEAS-BACKLOG.md:
- #12 TreasureHunt Map → EchoLocation Sonar (conflit BetterMap 502K).
Crystal sonar burst qui reveal + aggro mobs radius 15. Unique.
- #30 StatBoost Food → Storm Seal Talisman (conflit Wan's + RPG
Leveling). Weather interaction rare : charge pendant orages, décharge
AoE foudre au clic.
- Section Notes mise à jour avec audit complet des dominants
Principe conservé : wow + dev rapide 1-2j, mais différenciation
sémantique vs Wan's Wonder Weapons / BetterMap / Spellbook / RPG
Leveling. Catégories sous-servies (magie, quêtes, anti-triche) toujours
prioritaires selon analyse marché.
2026-04-22 23:19:51 +02:00
kayjaydee
1810e3ed3d
docs: rebalance plugins + backlog after Hytale market analysis (avril 2026)
...
PLUGINS.md (Phase 10 actifs):
- GravityFlip conservé (teaser gif-ready, 1j)
- FireballStaff (magie, catégorie 1-seul-payant, 1j)
- ShadowClone Decoy (combat unique, gameplay-saving, 1j)
- GrapplingHook (mouvement classique wow, 1.5j)
- EarthquakeSlam (combat AoE visuel max, 1j)
Total: ~6.5j (vs 10j avant). Tous "wow + dev rapide" mais rééquilibrés
vers catégories moins saturées quand possible.
IDEAS-BACKLOG.md (pipeline long terme):
- 30 concepts réécrits, priorité aux catégories vides:
* Magie (8 ideas) - catégorie 1-seul-payant
* Quêtes & NPCs (4) - quasi vide
* Anti-triche light (3) - seulement 2 gratuits
* Discord intégrations (3) - seulement 6 payants
* Mini-bibliothèques (3) - catégorie 6 payants
* Combat counter-play (5) - différenciant dans 120 RPG
* MMO mechanics (4) - serveurs flagship demande
- Bundles pipeline suggérés (Spell Pack, MMO Essentials, Admin Suite, Combat)
- Frameworks long terme (myth_lib, Quest Framework, MythGuard, MythArena)
renvoyés en Phase 12+ (planning séparé)
Source: rapport analyse marché Hytale interne (BuiltByBit 235 créateurs,
295 plugins payants, 1221 serveurs, catégories sous-servies identifiées).
2026-04-22 23:16:01 +02:00
kayjaydee
7ce378a419
docs(11): mark Phase 11 shipped — rebranding + cocon complete
...
- REBRAND-01/02/03 commited in f72170b (JSON-LD + 14 i18n keys FR/EN)
- COCON-01 already shipped with M1.1 carry-over (HytaleRecentArticles
live sur /hytale.vue:38, bilingue FR/EN avec filter tag hytale)
M1.2 progress: 4/6 plans (67%). Seule Phase 10 (5 demo plugins Hytale)
reste — user code les plugins en side, Plan 10-03 (HytaleDemoGrid) à
attaquer quand ≥1 plugin shippé sur GitHub.
2026-04-22 22:57:15 +02:00
kayjaydee
72e25d9406
feat(rebrand): align jobTitle + meta + i18n on Hytale Plugin Developer (REBRAND-01/02/03)
...
- app/pages/index.vue: JSON-LD utilise siteConfig.jobTitle (Hytale Plugin Developer)
+ siteConfig.contact.email au lieu de hardcode "Developpeur Full Stack"
- nuxt.config.ts: site.name "Developpeur Full Stack" → "Hytale Plugin Developer"
- app/data/site.ts: description "Professional Full Stack Developer..." →
"Hytale Plugin Developer & Web Developer..."
- i18n/fr.json + en.json: refonte positionnement sur 14 clés
- a11y.logoLabel, seo.home/about/contact, about.title/intro/approach/cta,
home.cta2, contact.title/subtitle/faq.projectTypes, projects.subtitle
- Le titre principal "Hytale Plugin Developer & [Freelance] Web Dev"
- Les 2 occurrences "full stack" restantes sont contextuelles (skills)
Laisse les projets web/bot existants (virtual-tour, flowboard, xinko...) visibles,
mentionne Hytale plugins car Phase 10 (5 démos) est planifiée.
2026-04-22 22:55:37 +02:00
kayjaydee
4e7c84912a
docs(10): plan Phase 10 — 5 demo plugins Hytale
...
- 10-CONTEXT: specs des 5 plugins (GravityFlip, MagneticHand, TimeRewind,
BlackHoleGrenade, Paintball) avec core mechanics, wow factor, complexité
- 10-01-PLAN: brainstorm done (concepts locked)
- 10-02-PLAN: 5 waves de code (1 plugin par wave, complexité ascendante)
Java + Gradle Kotlin DSL + JDK 17 + MIT license, repos kayjaydee/hytale-*
- 10-03-PLAN: composant HytaleDemoGrid.vue + intégration /hytale +
i18n hytale.demos.* + data source app/data/hytaleDemos.ts
- IDEAS-BACKLOG.md (root): 30 concepts supplémentaires pour v1.3+
classés par mouvement/combat/monde/social/économie
Effort estimé Phase 10: ~10 jours code + 1-2 jours frontend intégration.
2026-04-22 22:49:59 +02:00
kayjaydee
29f4a47ace
docs(09): mark Phase 9 shipped — M1.1 live sur killiandalcin.fr
...
DEPLOY-02 + DEPLOY-03 validés. Build hang résolu via hook close dans
nuxt.config.ts (nuxt/nuxt#33987 ). Next: Phase 10 (démos plugins).
2026-04-22 22:40:49 +02:00
kayjaydee
237e7c06af
fix(nuxt.config): add hook to prevent Docker build hangs due to esbuild zombie process
2026-04-22 22:36:50 +02:00
kayjaydee
b424a2deed
docs(m1.2): bootstrap milestone — ship to prod + credibility gap
...
- PROJECT.md: v1.2 active, why-now, scope resserré (deploy + demos + rebrand)
- REQUIREMENTS.md: v1.2 section (DEPLOY-02/03, DEMO-01/02/03, REBRAND-01/02/03, COCON-01)
- ROADMAP.md: phases 9 (Deploy), 10 (Demo Plugins), 11 (Rebranding + Cocon) — 6 plans
- STATE.md: reset progress 0/6, focus Phase 9, context gotchas M1.1 conservé
- MILESTONES.md: M1.1 partielle (Phase 8 carried), M1.2 active
Prochaine étape: /gsd-plan-phase 9
2026-04-22 22:24:00 +02:00
kayjaydee
e44175b9e4
chore: archive v1.1 milestone — SEO Hytale Autorité & Contenu shipped
...
M1.1 complete (phases 5-8, 13 plans):
- @nuxt/content v3 + Shiki syntax highlighting
- Blog listing + article pages SSR bilingue (TOC + prev/next)
- JSON-LD Article/Breadcrumb/CollectionPage + sitemap hreflang x-default
- 2 articles seed Hytale FR+EN (API Java réelle)
- Cocon sémantique /blog ↔ /hytale
2026-04-22 22:08:00 +02:00
kayjaydee
37b87b4b54
docs(08): capture API correction — Kotlin→Java rewrite based on hytalemodding.dev
2026-04-22 22:03:44 +02:00
kayjaydee
a4fd4e78d2
refactor(08-03): rewrite EN article with real Hytale Java API
2026-04-22 22:02:59 +02:00
kayjaydee
eb3553753a
refactor(08-03): rewrite FR article with real Hytale Java API
2026-04-22 22:01:56 +02:00
kayjaydee
fc7392ee1a
refactor(08-02): rewrite EN article with real Hytale Java API
2026-04-22 22:00:42 +02:00
kayjaydee
1d30828a6f
refactor(08-02): rewrite FR article with real Hytale Java API
2026-04-22 22:00:37 +02:00
kayjaydee
b8ddd8e14e
docs(08): mark Phase 8 complete — M1.1 milestone shipped .planning/ROADMAP.md .planning/phases/08-content-cocon-semantique/08-VERIFICATION.md
2026-04-22 21:55:24 +02:00
kayjaydee
6eb81b1f5b
docs(08-03): article seed 2 positionnement Hytale 2026 SUMMARY
...
- 2 articles markdown FR+EN (même slug) 1148/1009 mots, draft: false
- Tags ['hytale', 'industry', 'analysis'], date 2026-04-21 (ordering test)
- Coroutines Kotlin lifecycle-aware (SupervisorJob + cancel onDisable)
- Cocon sémantique bidirectionnel fermé avec l'article 08-02
2026-04-22 21:53:25 +02:00
kayjaydee
078e1a8a5f
docs(08-02): capture summary — first Hytale plugin tutorial (FR+EN seed article)
2026-04-22 21:52:53 +02:00
kayjaydee
5c10c275b1
feat(08-03): add EN blog article 'Hytale plugin development in 2026'
...
- Positioning/authority article 1009 words, draft: false, same slug as FR
- Tags ['hytale', 'industry', 'analysis'], date 2026-04-21
- 6 sections mirroring FR structure (idiomatic EN, not literal translation)
- Same Kotlin coroutines code block (code not translated)
- 2 inline links to /en/hytale (intro + outlook section)
2026-04-22 21:52:21 +02:00
kayjaydee
bb0ddcfa38
feat(08-03): add FR blog article 'Développement de plugins Hytale en 2026'
...
- Article positionnement/autorité 1148 mots, draft: false
- Tags ['hytale', 'industry', 'analysis'], date 2026-04-21
- 6 sections (intro, stack, patterns, écosystème, outlook, conclusion)
- 1 bloc Kotlin coroutines moderne (SupervisorJob + Dispatchers.IO + cancel lifecycle)
- 2 liens inline vers /hytale (intro + section outlook)
2026-04-22 21:52:16 +02:00
kayjaydee
0ba23acd1b
feat(08-02): add EN article how-to-build-your-first-hytale-plugin
...
- Equivalent EN version (970 mots), same slug
- 3 Kotlin code blocks (build.gradle.kts, event listener, command)
- 2 inline links to /en/hytale (intro + build section)
- Frontmatter Zod-valid : draft false, tags [hytale, tutorial, kotlin], date 2026-04-22
2026-04-22 21:52:00 +02:00
kayjaydee
7acea07812
feat(08-02): add FR article how-to-build-your-first-hytale-plugin
...
- Tutorial debutant plugin Hytale en Kotlin (1049 mots)
- 3 blocs code Kotlin realistes (build.gradle.kts, event listener, command)
- 2 liens inline vers /hytale (intro + build section)
- Frontmatter Zod-valide : draft false, tags [hytale, tutorial, kotlin], date 2026-04-22
2026-04-22 21:50:57 +02:00
kayjaydee
c0308edc2d
docs(08-01): scaffold HytaleRecentArticles SUMMARY — component bilingue + i18n FR/EN + injection /hytale
2026-04-22 21:48:48 +02:00
kayjaydee
2d004b15a7
feat(08-01): inject HytaleRecentArticles in /hytale + add i18n keys FR/EN
...
- app/pages/hytale.vue: <HytaleRecentArticles /> inserted after TestimonialsSection wrapper, before closing root div
- i18n/locales/fr.json: hytale.recentArticles {title, subtitle, viewAll} accentue style (aligned with blog.* 2026)
- i18n/locales/en.json: mirror keys
- No script changes (auto-import Nuxt)
2026-04-22 21:47:57 +02:00
kayjaydee
5eb494278d
feat(08-01): add HytaleRecentArticles component (queryCollection bilingual + JS tag filter)
...
- Bilingual literal branches queryCollection('blog_fr'|'blog_en') (Phase 5 Pitfall D-03)
- JS post-filter tags.includes('hytale') + slice(0,2) (D-11 — SQLite LIKE unreliable on JSON array)
- v-if=articles.length hides section when no hytale-tagged articles (D-12)
- BlogCard variant=compact in grid 2 col desktop / 1 col mobile
- NuxtLink localePath('/blog') viewAll CTA
- useAsyncData key hytale-recent-${locale.value} + watch:[locale]
2026-04-22 21:47:23 +02:00
kayjaydee
9cc1dbec5d
docs(08): create phase plan — content & cocon sémantique (3 plans, 2 waves)
...
- 08-01 (W1): HytaleRecentArticles.vue scaffold + injection hytale.vue + i18n
- 08-02 (W2): article tutorial how-to-build-your-first-hytale-plugin FR+EN
- 08-03 (W2): article positionnement hytale-plugin-development-2026 FR+EN
2026-04-22 18:38:13 +02:00
kayjaydee
9d6ed1780b
docs(08): map analogs for seed articles + HytaleRecentArticles component .planning/phases/08-content-cocon-semantique/08-PATTERNS.md
2026-04-22 18:32:43 +02:00
kayjaydee
32609a9843
docs(08): capture phase context — 2 articles seed Hytale + HytaleRecentArticles section (cocon sémantique blog↔hytale) .planning/phases/08-content-cocon-semantique/08-CONTEXT.md
2026-04-22 12:19:00 +02:00
kayjaydee
110c2dff86
docs(07): mark Phase 7 complete in ROADMAP (4/4 plans) .planning/ROADMAP.md .planning/phases/07-seo-blog/07-VERIFICATION.md
2026-04-22 11:25:57 +02:00
kayjaydee
6956155ce9
docs(07-04): complete sitemap dynamic feed plan
...
- 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/)
2026-04-22 11:22:57 +02:00
kayjaydee
ae274e77ca
docs(07-02): complete blog article SEO plan summary + state update
...
Plan 07-02 shipped: useSeoMeta D-15 + useSchemaOrg Article/Breadcrumb on /blog/[slug],
resolveOgImage helper + og-blog-default.jpg fallback. Curl SSR validated,
typecheck green. Requirements satisfied: SEO-10, SEO-11, SEO-13, SEO-15.
2026-04-22 11:21:46 +02:00
kayjaydee
306e7bb12f
feat(07-04): add dynamic sitemap URL feed for bilingual blog articles
...
- Nitro route server/api/__sitemap__/urls.ts via defineSitemapEventHandler
- Queries blog_fr + blog_en with literal strings and event first-arg (Pitfalls 1 & 2)
- Filters draft=false (D-10, T-07-06 mitigation)
- lastmod = updated ?? date (D-09)
- Emits hreflang alternates fr/en/x-default for bilingual pairs, none for single-language (D-11)
- Feeds @nuxtjs/sitemap via sitemap.sources declared in 07-01
2026-04-22 11:20:09 +02:00
kayjaydee
2582c87df4
feat(07-02): enrich blog article page with full SEO meta + Article/Breadcrumb JSON-LD
...
- D-15: useSeoMeta extended with ogImage (absolute via resolveOgImage),
ogUrl (canonical), ogLocale + ogLocaleAlternate (emitted only when bilingual
pair exists), twitterCard + twitterImage, article:published_time,
article:modified_time (fallback to date when updated absent — D-13),
articleAuthor
- SEO-11/SEO-15: useSchemaOrg([defineArticle, defineBreadcrumb])
— Article author/publisher reference global Person via @id=#killian
(from app/utils/seo-person.ts KILLIAN_PERSON_ID), image mirrors ogImage,
mainEntityOfPage = canonical; BreadcrumbList emits Accueil → Blog → title
- Pitfall 7: altExists query via queryCollection('blog_en'|'blog_fr') with
literal collection names (Vite extractor constraint)
- inLanguageTag computed cast to satisfy overly narrow defineArticle typings
without changing runtime emission
- Validated SSR: curl /fr/blog/test-kotlin-syntax returns og:image absolute,
article:published_time, Article JSON-LD (author @id=#killian), BreadcrumbList 3 items
2026-04-22 11:19:58 +02:00
kayjaydee
d37f870f49
docs(07-03): blog listing SEO enrichment SUMMARY — D-16 + CollectionPage/Breadcrumb JSON-LD
2026-04-22 11:17:55 +02:00
kayjaydee
d2ab5681da
feat(07-03): enrich blog listing with D-16 useSeoMeta + CollectionPage/Breadcrumb JSON-LD
...
- Add SITE_URL + OG_FALLBACK constants (fallback hardcoded, resolveOgImage helper owned by 07-02)
- Extend useSeoMeta: ogImage (absolute /og-blog-default.jpg), ogUrl, ogLocale, ogLocaleAlternate, twitterCard, twitterImage
- Add useSchemaOrg([defineWebPage CollectionPage, defineBreadcrumb(Accueil -> Blog)])
- inLanguage resolved at setup (type constraint: literal union, not ComputedRef)
- Requirements: SEO-10, SEO-13, SEO-15
2026-04-22 11:17:10 +02:00
kayjaydee
b69252c556
feat(07-02): add resolveOgImage helper + og-blog-default.jpg fallback asset
...
- app/utils/resolve-og-image.ts: absolutises frontmatter image or falls back to /og-blog-default.jpg
- public/og-blog-default.jpg: placeholder (copied from og-image.png) — branded 1200x630 design follow-up pending
2026-04-22 11:16:37 +02:00
kayjaydee
44fcca6345
docs(07-01): capture plan summary
...
Foundation SEO Blog shipped — nuxt-schema-org installed, blog schema extended
with updated field, global Person/WebSite schema.org emitted SSR, sitemap.sources
wired to future Nitro endpoint (07-04).
2026-04-22 11:14:46 +02:00
kayjaydee
1a2cfc360b
feat(07-01): wire global schema.org Person + WebSite and sitemap sources
...
- nuxt.config.ts: register 'nuxt-schema-org' module + sitemap.sources=['/api/__sitemap__/urls']
- app/utils/seo-person.ts: KILLIAN_PERSON_ID + killianPerson (derived from siteConfig, email excluded)
- app/app.vue: useSchemaOrg([definePerson(killianPerson), defineWebSite({name, inLanguage})]) appended (D-12)
- Verified SSR: /fr emits JSON-LD Person @id=#killian + WebSite (curl, pas d'hydratation)
2026-04-22 11:13:51 +02:00
kayjaydee
2ec6a213f0
chore(07-01): install nuxt-schema-org + add updated field to blog schema
...
- pnpm add -D nuxt-schema-org@^6.0.4 (D-01, D-04)
- content.config.ts blogSchema: updated: z.string().optional() (D-13, D-14)
- Caches content/.nuxt vidés (Pitfall 8)
2026-04-22 11:10:39 +02:00
kayjaydee
543bcb00fb
docs(roadmap): mark Phase 6 plans 03-04 complete (summaries present since 2026-04-22) .planning/ROADMAP.md
2026-04-22 11:09:26 +02:00
kayjaydee
43d52a42e9
docs(07): plan SEO blog — 4 plans (schema-org, useSeoMeta enrich, sitemap Nitro) .planning/phases/07-seo-blog/07-01-PLAN.md .planning/phases/07-seo-blog/07-02-PLAN.md .planning/phases/07-seo-blog/07-03-PLAN.md .planning/phases/07-seo-blog/07-04-PLAN.md .planning/ROADMAP.md
2026-04-22 10:40:12 +02:00
kayjaydee
0577cc4041
docs(07): map analogs for new SEO files (schema-org + sitemap Nitro) .planning/phases/07-seo-blog/07-PATTERNS.md
2026-04-22 10:34:19 +02:00
kayjaydee
a9c9aef9b8
docs(07): capture phase research — nuxt-schema-org + sitemap Nitro endpoint .planning/phases/07-seo-blog/07-RESEARCH.md
2026-04-22 10:32:18 +02:00
kayjaydee
275d8f268c
docs(07): capture phase context — SEO blog (JSON-LD via nuxt-schema-org, og:image hybride, sitemap Nitro endpoint, hreflang alternates)
2026-04-22 10:25:39 +02:00
kayjaydee
71ab4f29d0
docs(06-04): article chrome SUMMARY — BlogToc + BlogPrevNext + enriched [slug].vue
2026-04-22 10:10:41 +02:00