diff --git a/.env.example b/.env.example
index 7d4f160..8a6a391 100644
--- a/.env.example
+++ b/.env.example
@@ -1,6 +1,4 @@
# Generated by Shelve CLI
-NUXT_PUBLIC_STUDIO_TOKENS=your_value
-NUXT_PUBLIC_MEETING_LINK=your_value
NUXT_PRIVATE_RESEND_API_KEY=your_value
NUXT_PRIVATE_GITHUB_TOKEN=your_value
-NUXT_PRIVATE_NOTES_PASSWORD=your_value
\ No newline at end of file
+NUXT_PRIVATE_NOTES_PASSWORD=your_value
diff --git a/app/app.config.ts b/app/app.config.ts
index 451259c..6bc681d 100644
--- a/app/app.config.ts
+++ b/app/app.config.ts
@@ -1,7 +1,10 @@
export default defineAppConfig({
+ global: {
+ meetingLink: 'https://cal.com/hugorcd/15min',
+ },
profile: {
name: 'Hugo Richard',
- job: 'Frontend Architect and Designer',
+ job: '[Frontend Engineer at [Nuxtlabs](https://nuxtlabs.com)]{.text-accent}',
email: 'contact@hrcd.fr',
phone: '(+33) 6 21 56 22 18',
picture: 'https://avatars.githubusercontent.com/u/71938701?v=4'
diff --git a/app/components/content/Hero.vue b/app/components/content/Hero.vue
index 5dde7e8..0fe3a5c 100644
--- a/app/components/content/Hero.vue
+++ b/app/components/content/Hero.vue
@@ -17,9 +17,7 @@ const { profile } = useAppConfig()
{{ profile.name }}
-
- {{ profile.job }}
-
+
diff --git a/content/1.works/canvas.json b/content/1.works/canvas.json
index a2c0300..b47dbbd 100644
--- a/content/1.works/canvas.json
+++ b/content/1.works/canvas.json
@@ -1,8 +1,8 @@
{
"name": "Canvas",
- "category": "personal",
+ "category": "featured",
"description": "A premium portfolio template, with a minimal and clean design",
"link": "https://canvas.hrcd.fr/",
"release": "2024",
- "date": "2024"
+ "date": "10/01/2024"
}
diff --git a/content/1.works/eslint-config.json b/content/1.works/eslint-config.json
new file mode 100644
index 0000000..c15755b
--- /dev/null
+++ b/content/1.works/eslint-config.json
@@ -0,0 +1,8 @@
+{
+ "name": "@hrcd/eslint-config",
+ "category": "personal",
+ "description": "My personal ESLint Flat Config, crafted for TS, Vue, and Nuxt development.",
+ "link": "https://github.com/HugoRCD/eslint-config",
+ "release": "2024",
+ "date": "23/03/2024"
+}
diff --git a/content/1.works/inkly.json b/content/1.works/inkly.json
new file mode 100644
index 0000000..b7c4194
--- /dev/null
+++ b/content/1.works/inkly.json
@@ -0,0 +1,8 @@
+{
+ "name": "Inkly",
+ "category": "personal",
+ "description": "The most simple open-source email signature generator",
+ "link": "https://inkly.hrcd.fr/",
+ "release": "2024",
+ "date": "20/06/2024"
+}
diff --git a/content/1.works/mockline.json b/content/1.works/mockline.json
index c595a24..7f8b73d 100644
--- a/content/1.works/mockline.json
+++ b/content/1.works/mockline.json
@@ -6,5 +6,5 @@
"description": "The most customizable opinionated UI library for Nuxt and Vue",
"link": "https://mockline.dev/",
"release": "Soon",
- "date": "2025"
+ "date": "Soon"
}
diff --git a/content/1.works/nuppets.json b/content/1.works/nuppets.json
index 5a5f365..5d381d3 100644
--- a/content/1.works/nuppets.json
+++ b/content/1.works/nuppets.json
@@ -4,5 +4,5 @@
"description": "A universal hub for Nuxt and Vue snippets - Available for Raycast, VS Code, and more",
"link": "https://nuppets.dev",
"release": "2025",
- "date": "2025"
+ "date": "08/02/2025"
}
diff --git a/content/1.works/nuxt-visitors.json b/content/1.works/nuxt-visitors.json
new file mode 100644
index 0000000..c57031b
--- /dev/null
+++ b/content/1.works/nuxt-visitors.json
@@ -0,0 +1,8 @@
+{
+ "name": "Nuxt Visitors",
+ "category": "personal",
+ "description": "Add real-time visitor tracking to your Nuxt app with one line of code. WebSocket made easy",
+ "link": "https://nuxt-visitors.nuxt.dev/",
+ "release": "2025",
+ "date": "28/01/2025"
+}
diff --git a/content/1.works/shelve.json b/content/1.works/shelve.json
index 2db31ea..c6230a2 100644
--- a/content/1.works/shelve.json
+++ b/content/1.works/shelve.json
@@ -1,8 +1,8 @@
{
"name": "Shelve",
- "category": "personal",
+ "category": "featured",
"description": "Easily kick off and oversee team projects with just a few clicks!",
"link": "https://shelve.cloud/",
"release": "2024",
- "date": "2025"
+ "date": "29/02/2024"
}
diff --git a/content/index.md b/content/index.md
index aa3fe92..a785552 100644
--- a/content/index.md
+++ b/content/index.md
@@ -3,7 +3,7 @@ They say the devil is in the details. I say that's where the magic happens. Want
::
::section-item{:number='1' title="Works"}
-Currently building two tools I'm proud of: :icon{name="custom:shelve"} [***Shelve***](https://shelve.cloud){.link}, simplifying how teams share and manage environment variables, and :icon{name="custom:mockline"} [***Mockline***](https://mockline.dev){.link}, a component library that makes beautiful development effortless. Explore my work: [***/works***](/works){.link}
+Working on [**Nuxt UI**](https://ui3.nuxt.dev/getting-started) and [**UI Pro**](https://ui3.nuxt.dev/getting-started), while building :icon{name="custom:shelve"} [***Shelve***](https://shelve.cloud){.link}, an all-in-one workspace for modern development collaboration. Deeply engaged in the Nuxt ecosystem, creating the next generation of developer tools. Explore my work: [***/works***](/works){.link}
::
::section-item{:number='2' title="Writing"}
diff --git a/content/works.md b/content/works.md
index 15c7731..bbde220 100644
--- a/content/works.md
+++ b/content/works.md
@@ -3,14 +3,21 @@ title: Works
description: List of all my works, projects, and contributions.
---
-::section-item{:number='1' size="w-full" title="Nuxt Ecosystem"}
-:::works{category="ecosystem"}
-:::
+::section-item{:number='1' size="w-full" title="Featured"}
+ :::works{category="featured"}
+ :::
+::
+
+---
+
+::section-item{:number='2' size="w-full" title="Nuxt Ecosystem"}
+ :::works{category="ecosystem"}
+ :::
::
---
-::section-item{:number='2' size="w-full" title="Personal Projects"}
+::section-item{:number='3' size="w-full" title="Personal Projects"}
:::works{category="personal"}
:::
::
diff --git a/nuxt.schema.ts b/nuxt.schema.ts
index ece56e1..acb5433 100644
--- a/nuxt.schema.ts
+++ b/nuxt.schema.ts
@@ -2,6 +2,20 @@ import { field, group } from '@nuxt/content/preview'
export default defineNuxtSchema({
appConfig: {
+ global: group({
+ title: 'Website',
+ description: 'Global website configuration',
+ icon: 'lucide:settings',
+ fields: {
+ meetingLink: field({
+ type: 'string',
+ title: 'Meeting link',
+ description: 'Your meeting link.',
+ icon: 'lucide:calendar',
+ default: 'https://schedule.rdv.fr',
+ }),
+ },
+ }),
profile: group({
title: 'Personal information',
description: 'Personal information configuration',