+
+
+
diff --git a/content/en/blog/gravity-flip-process-client.md b/content/en/blog/gravity-flip-process-client.md
new file mode 100644
index 0000000..7f0ec5d
--- /dev/null
+++ b/content/en/blog/gravity-flip-process-client.md
@@ -0,0 +1,138 @@
+---
+title: "GravityFlip: from client brief to a production-grade Hytale plugin"
+description: "Lessons learned shipping GravityFlip — how a vague request (\"I want to flip gravity\") became an architected, configurable Hytale plugin that builders can use without touching code."
+date: "2026-04-25"
+tags: ["hytale", "case-study", "gravity-flip", "consulting"]
+draft: false
+---
+
+> **TL;DR** — A client pinged me to "invert gravity in part of my map". Five questions later we were building a **multi-region plugin** with an in-game wand, JSON persistence, and three visualization modes. It's now live in production: [GravityFlip on Modtale](https://modtale.net/mod/gravity-flip).
+
+## The original brief
+
+The Discord message ran two sentences long:
+
+> *"Hi, I'd like a plugin that flips gravity on a zone of my server. It's for an event this weekend, I can pay."*
+
+This is exactly the most dangerous brief shape. Read fast, it sounds clear (*"flip gravity"* + *"zone"* — that's enough to start coding, right?). Read carefully, it says **nothing** specific:
+
+- *"a zone"* — how many? one, configured via YAML? several, managed in-game? server-wide?
+- *"flip gravity"* — for whom? players only? falling items? mobs? projectiles?
+- *"for an event this weekend"* — one-off, or a reusable tool for the server's builders later?
+- *"I can pay"* — what scope, what budget? Essential plugin at €149 or full system at €349?
+
+I've made it a rule to **never write code until I've exhausted ambiguity**. It feels counter-intuitive when the client is in a hurry, but 30 minutes of questions saves 10 hours of rewrites.
+
+## The five questions that changed everything
+
+### 1. "How many zones, and who defines them?"
+
+Answer: *"At first I thought just one, but actually I'd like my builders to create more without asking me each time."*
+
+Immediate decision: **multi-region system** with persistence. Hardcoded YAML is out (too much friction). We pivot to an **in-game wand** plus `/gravityflip define ` commands. Classic Bukkit/Spigot community pattern, ported to Hytale.
+
+### 2. "Who flips? Players only, or everything?"
+
+Answer: *"Players for sure, but flipping dropped items would be sweet too. Mobs I'm not sure."*
+
+Decision: **three booleans per region** — `AffectPlayers`, `AffectItems`, `AffectNpcs`. Default: all on, but the builder can disable mobs on a "jump arena" zone if floating mobs ruin the gameplay. The marginal cost of those three toggles in the JSON codec was zero — optionality offered for free.
+
+### 3. "What happens when a player enters the zone at full free-fall speed?"
+
+Answer (after a pause): *"Uhh... I hadn't thought about it. They shouldn't take fall damage, right?"*
+
+Decision: **configurable `GracePeriodMs` (default 2500ms)**. During the transition, we smooth the gravity flip instead of an instant binary swap that produces brutal acceleration and absurd fall damage. Bonus: a `FallDamage` toggle (default false) for zones where falling should still cost something gameplay-wise.
+
+That's the kind of detail **a written brief never surfaces**. A real conversation does.
+
+### 4. "Do you want to see the zones when you're inside one?"
+
+Answer: *"Yeah in build mode I have to, otherwise I lose track. But in player mode nothing should show."*
+
+Decision: **three visualization modes**.
+- `Outline` — configurable wireframe color (`VisualColor`, default `#00FFFF`) — build mode
+- `Particles` — edge-emitting particles (`Torch_Fire` default), more subtle but visible
+- `None` — invisible, production mode
+
+Per-region toggle via the `/gravityflip toggle` command. Build and live mode coexist on the same map without re-deploying the plugin.
+
+### 5. "Is this one-shot or are you reusing it?"
+
+Answer: *"One-shot for the event, but if it's well done I'll keep it."*
+
+Pivotal decision: we treat this project as **a production plugin**, not a script. Concretely:
+- JSON persistence in `Server/mods/Mythlane_GravityFlip/regions.json` (not memory-only)
+- 10 Hz tick loop with concurrent snapshots (lock-free reads)
+- Unit tests on pure logic (codec, AABB geometry)
+- Auto-seeded demo region on first run for instant onboarding
+- Polished EN README, distributable
+
+**Cost vs "quick & dirty"** : about 30 % more time. **Benefit** : the client moved from "I need it by Saturday" to "I still use it, my builders love it". The plugin is now publishable, monetizable, and so it became a shared asset.
+
+## The architecture that emerged
+
+```
+Player / NPC / Item
+ │
+ ▼ (each tick, 10 Hz)
+ RegionTickLoop ◄─── snapshots from regions.json
+ │
+ ▼
+ GravityApplier + FallDamageGuard
+ │
+ ▼
+ per-region effect
+```
+
+The wand follows its own cycle:
+
+```
+Player click → WandSelectionStore
+ │
+ ▼
+ /gravityflip define
+ │
+ ▼
+ Region registry → regions.json (auto-save)
+```
+
+Stack: **Java 25**, official Hytale Plugin API (`com.hypixel.hytale.plugin`), Gradle Shadow to relocate Gson (avoiding stdlib conflicts), JUnit 5 for tests. Source ~2,500 lines, 30 % of which is tests.
+
+### The piece of code that took the most thinking
+
+The **GracePeriodMs**. Not the code itself but the idea behind it: instead of a binary flip, we interpolate the vertical velocity component over a sliding window. Naively:
+
+```java
+// naive version — produces absurd fall damage
+if (region.contains(entity)) {
+ entity.velocity.y = -entity.velocity.y; // instant flip
+}
+```
+
+With a grace period, smooth transition:
+
+```java
+// production version — gradual entry
+final long timeInRegion = now - entry.enteredAt();
+final double gracePct = Math.min(1.0, timeInRegion / region.gracePeriodMs());
+final double targetVy = -region.verticalForce(); // antigrav
+entity.velocity.y = lerp(entity.velocity.y, targetVy, gracePct);
+```
+
+Three extra lines, but that's what makes the difference between a plugin that's "fun for 30 seconds" and a plugin that players actually use without rage-quitting.
+
+## What this project taught me (or reminded me)
+
+**First**: senior dev value isn't in code-typing speed. It's in the **series of questions** that turn a vague brief into an actionable spec. Without question 3 (free-fall), the client would have shipped the event with absurd fall damage, and the plugin would've been dropped after the weekend.
+
+**Second**: a Hytale plugin that sells isn't a script. It's a **production-grade Java codebase** with persistence, tests, docs, and sub-5-minute onboarding. The client paid €349 (the "Custom System" tier), not €50 Fiverr — and the premium is justified by the quality the client will exploit for months.
+
+**Third**: every plugin I write ends up published. GravityFlip is freely available on [Modtale](https://modtale.net/mod/gravity-flip) and soon on CurseForge. This doesn't dilute the value of paid commissions — it **boosts** my credibility to future prospects looking for a developer who can ship clean code, not just glue StackOverflow snippets.
+
+## Got a Hytale project in mind?
+
+The pattern is always the same: we talk for 30 minutes, I ask the 5-10 questions that kill ambiguity, I send a firm quote, I deliver. Pricing is public on [/hytale](/hytale) — €149 for an essential plugin, €349 for a custom system, €790+ for custom MMO infrastructure.
+
+No Fiverr, no race-to-the-bottom. Just a senior dev shipping code you'll still use six months later.
+
+[Request a quote](/contact) · [See GravityFlip in action](https://modtale.net/mod/gravity-flip) · [See my other plugins](/projects)
diff --git a/content/fr/blog/gravity-flip-process-client.md b/content/fr/blog/gravity-flip-process-client.md
new file mode 100644
index 0000000..7c02201
--- /dev/null
+++ b/content/fr/blog/gravity-flip-process-client.md
@@ -0,0 +1,138 @@
+---
+title: "GravityFlip : du brief client au plugin Hytale en production"
+description: "Retour d'expérience sur le développement de GravityFlip — comment une demande floue (\"je veux inverser la gravité\") devient un plugin Hytale architecturé, configurable, et utilisable par des builders sans toucher au code."
+date: "2026-04-25"
+tags: ["hytale", "case-study", "gravity-flip", "consulting"]
+draft: false
+---
+
+> **TL;DR** — Un client m'a contacté pour "inverser la gravité dans une partie de la map". Cinq questions plus tard, on était sur un plugin de **régions paramétrables** avec wand in-game, persistence JSON, et trois modes de visualisation. Le résultat tourne aujourd'hui en production : [GravityFlip sur Modtale](https://modtale.net/mod/gravity-flip).
+
+## Le brief initial
+
+Le message Discord d'origine tient en deux phrases :
+
+> *"Salut, j'aimerais un plugin qui inverse la gravité sur une zone de mon serveur. C'est pour un event ce week-end, je peux payer."*
+
+C'est exactement la forme de brief la plus dangereuse. Lue rapidement, elle donne l'illusion d'être claire (*"inverser la gravité"* + *"zone"* = ça suffit pour coder, non ?). Lue posément, elle ne dit **rien** de précis :
+
+- *"une zone"* — combien ? une seule, configurée par YAML ? plusieurs, gérées en jeu ? globale au serveur ?
+- *"inverser la gravité"* — pour qui ? les joueurs uniquement ? les items qui tombent ? les mobs ? les projectiles ?
+- *"pour un event ce week-end"* — usage one-shot ou outil réutilisable par les builders du serveur après ?
+- *"je peux payer"* — quel scope, quel budget ? Plugin essentiel à 149€ ou système complet à 349€ ?
+
+J'ai pris l'habitude de **ne jamais coder avant d'avoir épuisé les ambiguïtés**. Ça paraît contre-intuitif quand le client est pressé, mais 30 minutes de questions économisent 10 heures de réécriture.
+
+## Les cinq questions qui ont tout changé
+
+### 1. "Combien de zones, et qui les définit ?"
+
+Réponse : *"Au début je pensais une seule, mais en fait j'aimerais que mes builders puissent en créer plusieurs sans me demander à chaque fois."*
+
+Décision immédiate : **système multi-régions** avec persistence. On exclut le YAML hardcodé (trop friction) et on s'oriente vers un **wand in-game** + commandes `/gravityflip define `. Pattern classique de la communauté Bukkit/Spigot, repris pour Hytale.
+
+### 2. "Pour qui la gravité s'inverse ? Joueurs uniquement, ou tout ?"
+
+Réponse : *"Les joueurs ouais, mais aussi les items dropés ce serait stylé. Les mobs je sais pas."*
+
+Décision : **trois booleans configurables par région** — `AffectPlayers`, `AffectItems`, `AffectNpcs`. Default = tout activé, mais le builder peut désactiver les mobs sur une zone "salle de saut" si les mobs flottants gâchent le gameplay. Le coût marginal de ces 3 toggles dans le codec JSON était nul, l'optionalité a été offerte.
+
+### 3. "Que se passe-t-il quand un joueur entre dans la zone à pleine vitesse en chute libre ?"
+
+Réponse (après une pause) : *"Heu... j'avais pas pensé. Il devrait pas se prendre les dégâts de chute non ?"*
+
+Décision : **`GracePeriodMs` configurable (default 2500ms)**. Pendant la transition, on lisse l'inversion de gravité au lieu d'un flip instantané qui produit une accélération brutale et des dégâts de chute aberrants. En bonus : un toggle `FallDamage` (default false) pour les zones où on veut quand même que tomber ait un coût gameplay.
+
+C'est le genre de détail qu'**un brief écrit ne fait jamais émerger**. Une vraie discussion, oui.
+
+### 4. "Tu veux voir les zones quand tu es dedans ?"
+
+Réponse : *"Oui en build c'est obligé sinon je sais plus où elles sont. Mais en live joueur faut rien voir."*
+
+Décision : **trois modes de visualisation**.
+- `Outline` — wireframe couleur configurable (`VisualColor`, default `#00FFFF`), pour le mode build
+- `Particles` — bordures émettrices de particules (`Torch_Fire` par défaut), plus discret mais visible
+- `None` — invisible, mode production
+
+Toggle par région via la commande `/gravityflip toggle`. Build mode et live mode sur la même map sans rebuild du plugin.
+
+### 5. "C'est un one-shot ou tu réutilises ?"
+
+Réponse : *"One-shot pour l'event, mais si c'est bien fait je le garde."*
+
+Décision déterminante : on traite ce projet comme **un plugin de production**, pas comme un script. Concrètement :
+- Persistance JSON dans `Server/mods/Mythlane_GravityFlip/regions.json` (pas mémoire seule)
+- Tick loop 10x/sec avec snapshots concurrents (lecture lock-free)
+- Tests unitaires sur la logique pure (codec, géométrie AABB)
+- Demo region auto-seed au premier démarrage pour onboarding instantané
+- Documentation README EN pro, distribuable
+
+**Surcoût vs version "quick & dirty"** : environ 30 % de temps en plus. **Bénéfice** : le client est passé de "j'ai besoin pour samedi" à "je l'utilise toujours, mes builders l'adorent". Le plugin est désormais publiable, monétisable, et donc devenu un actif partagé.
+
+## L'architecture qui en est sortie
+
+```
+Player / NPC / Item
+ │
+ ▼ (chaque tick, 10 Hz)
+ RegionTickLoop ◄─── snapshots de regions.json
+ │
+ ▼
+ GravityApplier + FallDamageGuard
+ │
+ ▼
+ effet par région
+```
+
+Le wand suit son propre cycle :
+
+```
+Player click → WandSelectionStore
+ │
+ ▼
+ /gravityflip define
+ │
+ ▼
+ Region registry → regions.json (auto-save)
+```
+
+Stack technique : **Java 25**, Hytale Plugin API officielle (`com.hypixel.hytale.plugin`), Gradle Shadow pour relocalisation Gson (évite les conflits stdlib), JUnit 5 pour les tests. Code source ~2 500 lignes, dont 30 % de tests.
+
+### Le bout de code qui m'a coûté le plus de réflexion
+
+Le **GracePeriodMs**. Pas du code, mais l'idée derrière : au lieu d'un flip binaire, on interpole la composante verticale de la vélocité sur une fenêtre glissante. Naïvement on écrit :
+
+```java
+// version naïve — produit des dégâts de chute aberrants
+if (region.contains(entity)) {
+ entity.velocity.y = -entity.velocity.y; // flip instantané
+}
+```
+
+Avec grace period, on lisse la transition :
+
+```java
+// version production — entrée progressive
+final long timeInRegion = now - entry.enteredAt();
+final double gracePct = Math.min(1.0, timeInRegion / region.gracePeriodMs());
+final double targetVy = -region.verticalForce(); // antigrav
+entity.velocity.y = lerp(entity.velocity.y, targetVy, gracePct);
+```
+
+Trois lignes de plus, mais c'est ce qui fait la différence entre un plugin "marrant 30 secondes" et un plugin que les joueurs utilisent sans rage-quit.
+
+## Ce que ce projet m'a appris (ou rappelé)
+
+**Premièrement** : la valeur du dev senior n'est pas dans la rapidité de code. C'est dans la **série de questions** qui transforme un brief flou en spec actionnable. Si je n'avais pas posé la question 3 (chute libre), le client aurait livré l'event avec des dégâts de chute aberrants, et le plugin aurait été abandonné après le week-end.
+
+**Deuxièmement** : un plugin Hytale qui se vend, ce n'est pas un script. C'est une **codebase Java production-grade** avec persistence, tests, doc, et un onboarding sub-5 minutes. Le client a payé 349€ (tier "Système Sur-Mesure"), pas 50€ Fiverr — et le surcoût est justifié par la qualité que le client va exploiter pendant des mois.
+
+**Troisièmement** : chaque plugin que je code finit publié. GravityFlip est dispo gratuitement sur [Modtale](https://modtale.net/mod/gravity-flip) et bientôt sur CurseForge. Ça ne dilue pas la valeur de la commande client — ça **augmente** ma crédibilité auprès des futurs prospects qui cherchent un dev capable de livrer du code propre, et pas juste de coller des snippets StackOverflow.
+
+## Tu as un projet Hytale en tête ?
+
+Le pattern est toujours le même : on parle 30 minutes, je pose les 5-10 questions qui tuent les ambiguïtés, je te donne un devis ferme, et je livre. Les tarifs sont publics sur [/hytale](/hytale) — entre 149€ pour un plugin essentiel, 349€ pour un système complet, et 790€+ pour une infrastructure MMO custom.
+
+Pas de Fiverr, pas de race-to-the-bottom. Juste un dev senior qui livre du code que tu utilises encore six mois plus tard.
+
+[Demander un devis](/contact) · [Voir GravityFlip en action](https://modtale.net/mod/gravity-flip) · [Voir mes autres plugins](/projects)
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index 4907229..0d2d880 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -9,14 +9,15 @@
},
"footer": {
"copyright": "© 2026 Killian' DAL-CIN",
+ "tagline": "Hytale Plugin Developer & Freelance Web Dev. Custom Java plugins, gaming server websites, production-grade Vue/Nuxt apps.",
"navigation": "Quick Links",
"services": "Services",
"legalNotices": "Legal Notices",
"privacyPolicy": "Privacy Policy",
"servicesList": {
- "webDev": "Web Development",
- "mobileApps": "Mobile Apps",
- "apiBackend": "API Development",
+ "hytalePlugins": "Hytale Plugins (Java)",
+ "webDev": "Web Sites & Apps",
+ "retainer": "Monthly Retainer",
"consulting": "Tech Consulting"
}
},
@@ -66,20 +67,20 @@
"contact": "Contact me"
},
"featuredProjects": {
- "title": "Web Applications That Deliver Results",
- "subtitle": "Portfolio of real projects that transformed ideas into success. Lightning-fast Vue.js apps, scalable React platforms, robust Node.js APIs.",
+ "title": "Hytale plugins & web apps running in production",
+ "subtitle": "Portfolio of real projects, in production, used by real players and clients. Java 25 Hytale plugins, Vue/Nuxt apps, SaaS, Discord bots — not proofs-of-concept, actual shipping.",
"viewAll": "Explore All Projects"
},
"services": {
- "title": "Premium Web Development Services",
- "subtitle": "Turnkey solutions that boost your growth. Cutting-edge technologies + proven methodology = guaranteed success for your digital project.",
- "webDev": {
- "title": "Custom Vue.js/React Web Applications",
- "description": "Lightning-fast web apps that convert visitors into customers. Modern SPAs, offline-first PWAs, high-conversion e-commerce. SEO-friendly from day one."
+ "title": "Premium Hytale & Web Services",
+ "subtitle": "Custom Hytale plugins, high-performance web apps, gaming SaaS. Stack: Java 25 + Vue/Nuxt + Node.js. Transparent pricing (€149-€790), quote within 24h.",
+ "hytalePlugins": {
+ "title": "Custom Hytale Plugins (Java)",
+ "description": "From essential plugin to full MMO system. Wand-based regions, votes & rewards, economy, quests, mini-games. Stack: Java 25 + Hytale Plugin API + Gradle Shadow."
},
- "mobileApps": {
- "title": "Cost-Effective Cross-Platform Mobile Apps",
- "description": "One codebase = iOS + Android + Web. React Native for performant native apps. 60% cost savings vs native development."
+ "webDev": {
+ "title": "Vue.js / Nuxt / React Web Apps",
+ "description": "Gaming server websites, SaaS platforms, e-commerce. SEO-optimized Nuxt 4 SSR, admin dashboards, Tebex/Discord integrations. Lighthouse 95+, <2s load times."
},
"optimization": {
"title": "Performance & Technical SEO Optimization",
@@ -112,6 +113,8 @@
"subtitle": "Browse my work: custom Hytale plugins, Vue.js applications, React websites, Node.js APIs, Discord bots, and enterprise software.",
"categories": {
"all": "All Projects",
+ "hytaleplugin": "Hytale Plugin",
+ "minecraftmod": "Minecraft Mod",
"webdevelopment": "Web Development",
"botdevelopment": "Bot Development",
"opensource": "Open Source",
@@ -249,6 +252,35 @@
}
},
"projectData": {
+ "votepipe": {
+ "title": "VotePipe — Hytale Vote Rewards SaaS",
+ "description": "Unified SaaS platform that combines Webhook (V1 RSA, V2 HMAC) and Votifier to handle votes from all 7 major Hytale server lists in a single plugin. Visual reward builder, automatic delivery, no port forwarding needed.",
+ "longDescription": "The only Hytale plugin that runs Webhook and Votifier through one unified pipeline. Free / Pro / Network tiers with web dashboard (app.votepipe.com), visual reward builder, streaks, milestones, lucky tiers. Stack: Java 25 plugin + TypeScript backend + SaaS dashboard. Outbound-only secure cloud architecture.",
+ "buttons": {
+ "website": "Official Site",
+ "modtale": "Modtale",
+ "curseforge": "CurseForge",
+ "documentation": "Documentation"
+ }
+ },
+ "gravity-flip": {
+ "title": "GravityFlip — Hytale Anti-Gravity Regions",
+ "description": "Hytale plugin that creates custom anti-gravity zones with an in-game wand. Walk on ceilings, floating items, drifting mobs — all configurable without touching files.",
+ "longDescription": "Wand-based region builder for Hytale servers. Corners are set with left/right click, JSON persistence is automatic, 10x/sec tick loop, configurable vertical force and grace period. Visual modes: outline / particles / hidden. Built on Hytale Plugin API + Java 25 + Gradle Shadow.",
+ "buttons": {
+ "modtale": "Modtale",
+ "curseforge": "CurseForge"
+ }
+ },
+ "playhours": {
+ "title": "PlayHours — Forge Server Hours Enforcement",
+ "description": "Forge 1.20.1 mod that enforces per-day open windows, blocks logins outside hours, warns at 15/10/5/1 min, auto-kicks at close, handles holidays, whitelist/blacklist, force modes, LuckPerms integration.",
+ "longDescription": "Minecraft server mod for time-gated access: per-day schedules, midnight-spanning, date exceptions, dynamic MOTD, multi-language (EN/FR), LuckPerms or vanilla ops permissions. Perfect for educational servers, family servers, or maintenance windows.",
+ "buttons": {
+ "curseforge": "CurseForge",
+ "repository": "Repository"
+ }
+ },
"virtual-tour": {
"title": "Virtual Tour - Interactive 360° Experience",
"description": "My high school teacher and me had an idea to create a Virtual tour with 360° videos to allow everyone to visit the school from the web.",
@@ -471,6 +503,22 @@
"hourly": "Outside packages: €45/h excl. VAT, 1h minimum (spot fixes, audits).",
"flagshipCta": "Flagship: custom quote after a 30-minute scoping call."
},
+ "demos": {
+ "label": "// live-demos",
+ "title": "Live plugins, production-grade code",
+ "subtitle": "No marketing promises. These are the Hytale plugins I publicly maintain — usable today on any Hytale server.",
+ "featured": "Featured",
+ "viewSite": "View site",
+ "footnote": "Every plugin is built in-house, production-tested, and ships with full documentation.",
+ "votepipe": {
+ "title": "VotePipe — Vote Rewards SaaS",
+ "tagline": "Hytale plugin + SaaS dashboard that unifies Webhook and Votifier across the 7 major vote lists. No port forwarding, automatic delivery, visual reward builder."
+ },
+ "gravity-flip": {
+ "title": "GravityFlip Region",
+ "tagline": "Drop a wand, set 2 corners, gravity flips inside the zone. Ceiling-walking and floating items live in 5 minutes of setup."
+ }
+ },
"recentArticles": {
"title": "Recent articles",
"subtitle": "Latest writing on Hytale plugin development",
diff --git a/i18n/locales/fr.json b/i18n/locales/fr.json
index ba62058..1c54f16 100644
--- a/i18n/locales/fr.json
+++ b/i18n/locales/fr.json
@@ -9,15 +9,16 @@
},
"footer": {
"copyright": "© 2026 Killian' DAL-CIN",
+ "tagline": "Hytale Plugin Developer & Dev Web Freelance. Plugins Java sur-mesure, sites pour serveurs gaming, applications Vue/Nuxt en production.",
"navigation": "Liens Rapides",
"services": "Services",
"legalNotices": "Mentions Légales",
"privacyPolicy": "Politique de Confidentialité",
"servicesList": {
- "webDev": "Développement Web",
- "mobileApps": "Applications Mobiles",
- "apiBackend": "Développement API",
- "consulting": "Consulting Tech"
+ "hytalePlugins": "Plugins Hytale (Java)",
+ "webDev": "Sites & Apps Web",
+ "retainer": "Retainer Mensuel",
+ "consulting": "Conseil Tech"
}
},
"a11y": {
@@ -66,20 +67,20 @@
"contact": "Me contacter"
},
"featuredProjects": {
- "title": "Applications Web Qui Cartonnent",
- "subtitle": "Portfolio de projets réels qui ont transformé des idées en succès. Applications Vue.js ultra-rapides, plateformes React scalables, API Node.js robustes.",
+ "title": "Plugins Hytale & Apps Web qui tournent en prod",
+ "subtitle": "Portfolio de projets réels, en production, utilisés par de vrais joueurs et clients. Plugins Hytale Java 25, applications Vue.js/Nuxt, SaaS, bots Discord — pas du proof-of-concept, du shipping.",
"viewAll": "Explorer Tous les Projets"
},
"services": {
- "title": "Services Premium de Développement Web",
- "subtitle": "Solutions clés en main qui boostent votre croissance. Technologies de pointe + méthodologie éprouvée = succès garanti pour votre projet digital.",
- "webDev": {
- "title": "Applications Web Vue.js/React Sur-Mesure",
- "description": "Création d'applications web lightning-fast qui convertissent. SPA modernes, PWA offline-first, e-commerce haute conversion. SEO-friendly dès la conception."
+ "title": "Services Premium Hytale & Web",
+ "subtitle": "Plugins Hytale custom, applications web haute performance, SaaS gaming. Stack Java 25 + Vue/Nuxt + Node.js. Tarifs transparents (149€-790€), devis sous 24h.",
+ "hytalePlugins": {
+ "title": "Plugins Hytale Custom (Java)",
+ "description": "Du plugin essentiel au système MMO complet. Wand-based regions, votes & rewards, économie, quêtes, mini-jeux. Stack Java 25 + Hytale Plugin API + Gradle Shadow."
},
- "mobileApps": {
- "title": "Apps Mobiles Cross-Platform Rentables",
- "description": "Une seule codebase = iOS + Android + Web. React Native pour des apps natives performantes. 60% d'économie vs développement natif."
+ "webDev": {
+ "title": "Applications Web Vue.js / Nuxt / React",
+ "description": "Sites pour serveurs gaming, SaaS, e-commerce. SSR Nuxt 4 SEO-optimisé, dashboards admin, intégrations Tebex/Discord. Lighthouse 95+, chargement <2s."
},
"optimization": {
"title": "Optimisation Performance & SEO Technique",
@@ -112,6 +113,8 @@
"subtitle": "Parcourez mes projets : plugins Hytale, applications Vue.js, sites React, API Node.js, bots Discord et solutions d'entreprise.",
"categories": {
"all": "Tous les Projets",
+ "hytaleplugin": "Plugin Hytale",
+ "minecraftmod": "Mod Minecraft",
"webdevelopment": "Développement Web",
"botdevelopment": "Développement de Bot",
"opensource": "Open Source",
@@ -249,6 +252,35 @@
}
},
"projectData": {
+ "votepipe": {
+ "title": "VotePipe — SaaS Vote Rewards Hytale",
+ "description": "Plateforme SaaS unifiée qui combine Webhook (V1 RSA, V2 HMAC) et Votifier pour récupérer les votes des 7 grandes listes Hytale en un seul plugin. Visual reward builder, livraison automatique, aucun port à ouvrir.",
+ "longDescription": "Le seul plugin Hytale qui fait passer Webhook et Votifier dans un pipeline unifié. Tarifs Free / Pro / Network avec dashboard web (app.votepipe.com), reward builder visuel, streaks, milestones, lucky tiers. Stack : Java 25 plugin + backend TypeScript + dashboard SaaS. Architecture cloud sécurisée — outbound-only.",
+ "buttons": {
+ "website": "Site Officiel",
+ "modtale": "Modtale",
+ "curseforge": "CurseForge",
+ "documentation": "Documentation"
+ }
+ },
+ "gravity-flip": {
+ "title": "GravityFlip — Régions Anti-Gravité Hytale",
+ "description": "Plugin Hytale qui crée des zones d'anti-gravité custom avec un wand in-game. Marche sur le plafond, items qui flottent, mobs flottants — tout configurable sans toucher aux fichiers.",
+ "longDescription": "Wand-based region builder pour serveurs Hytale. Les corners se définissent en clic gauche/droit, persistance JSON automatique, tick loop 10x/sec, force verticale et grace period configurables. Mode visuel outline / particles / hidden. Construit sur Hytale Plugin API + Java 25 + Gradle Shadow.",
+ "buttons": {
+ "modtale": "Modtale",
+ "curseforge": "CurseForge"
+ }
+ },
+ "playhours": {
+ "title": "PlayHours — Forge Server Hours Enforcement",
+ "description": "Mod Forge 1.20.1 qui force des horaires d'ouverture par jour, blocage de connexion hors heures, warns 15/10/5/1 min, auto-kick à la fermeture, gestion des jours fériés, whitelist/blacklist, force modes, intégration LuckPerms.",
+ "longDescription": "Mod serveur Minecraft pour gérer l'accès aux horaires : schedules per-day, midnight-spanning, exceptions de dates, MOTD dynamique, multi-langues (EN/FR), permissions LuckPerms ou ops vanilla. Parfait pour serveurs scolaires, familiaux, ou avec maintenance windows.",
+ "buttons": {
+ "curseforge": "CurseForge",
+ "repository": "Dépôt"
+ }
+ },
"virtual-tour": {
"title": "Visite Virtuelle - Expérience 360° Interactive",
"description": "Mon professeur de lycée et moi avons eu l'idée de créer une visite virtuelle avec des vidéos 360° pour permettre à tous de visiter l'école depuis le web.",
@@ -471,6 +503,22 @@
"hourly": "Hors packages : 45€/h HT, minimum 1h (spot fixes, audits).",
"flagshipCta": "Flagship : sur devis après cadrage de 30 minutes."
},
+ "demos": {
+ "label": "// live-demos",
+ "title": "Plugins live, code en production",
+ "subtitle": "Pas de promesses marketing. Voici les plugins Hytale que je maintiens publiquement, utilisables aujourd'hui sur n'importe quel serveur Hytale.",
+ "featured": "À la une",
+ "viewSite": "Voir le site",
+ "footnote": "Chaque plugin est build maison, testé en production, et livré avec sa documentation.",
+ "votepipe": {
+ "title": "VotePipe — SaaS Vote Rewards",
+ "tagline": "Plugin Hytale + dashboard SaaS qui unifie Webhook et Votifier sur les 7 grandes listes de votes. Sans port à ouvrir, livraison automatique, reward builder visuel."
+ },
+ "gravity-flip": {
+ "title": "GravityFlip Region",
+ "tagline": "Pose un wand, définis 2 corners, gravité inversée dans la zone. Marche-au-plafond et items qui flottent en 5 minutes de setup."
+ }
+ },
"recentArticles": {
"title": "Articles récents",
"subtitle": "Les dernières publications sur le développement de plugins Hytale",
diff --git a/public/images/projects/gravityflip.png b/public/images/projects/gravityflip.png
new file mode 100644
index 0000000..3fe5221
Binary files /dev/null and b/public/images/projects/gravityflip.png differ
diff --git a/public/images/projects/playhours.png b/public/images/projects/playhours.png
new file mode 100644
index 0000000..bd29164
Binary files /dev/null and b/public/images/projects/playhours.png differ
diff --git a/public/images/projects/votepipe.svg b/public/images/projects/votepipe.svg
new file mode 100644
index 0000000..6d4c974
--- /dev/null
+++ b/public/images/projects/votepipe.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file