diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..db0666f
Binary files /dev/null and b/.DS_Store differ
diff --git a/README.md b/README.md
index d6afe58..d77d16d 100644
--- a/README.md
+++ b/README.md
@@ -1,72 +1,44 @@
-
- Hello there ! 
-
- I'm Lucà s, a passionate developer from
-
- Rodez, France.
-
-
-
- I code with
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+# Hi, I'm Lucà s! 👋
-
+## 🚀 About Me
+I'm a passionate developer from 🇫🇷 **Albi, France**.
-
\ No newline at end of file
+## 🔗 Links
+[](https://lucasvbr.github.io/Portfolio)
+[](https://www.linkedin.com/in/lucasvbr)
+[](https://www.freecodecamp.org/LucasVbr)
+
+
+## 🛠Skills
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+---
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/compile.sh b/compile.sh
new file mode 100644
index 0000000..2c5e4c4
--- /dev/null
+++ b/compile.sh
@@ -0,0 +1 @@
+deno run --allow-write --allow-read src/core.ts
\ No newline at end of file
diff --git a/img/Hi.gif b/img/Hi.gif
deleted file mode 100644
index 721db8d..0000000
Binary files a/img/Hi.gif and /dev/null differ
diff --git a/model/data.json b/model/data.json
new file mode 100644
index 0000000..91abd4b
--- /dev/null
+++ b/model/data.json
@@ -0,0 +1,119 @@
+{
+ "name": "Lucà s",
+ "about": "I'm a passionate developer from 🇫🇷 **Albi, France**.",
+ "links": [
+ {
+ "href": "https://lucasvbr.github.io/Portfolio",
+ "img": {
+ "src": "https://img.shields.io/badge/my_portfolio-000?style=for-the-badge&logo=ko-fi&logoColor=white",
+ "alt": "portfolio"
+ }
+ },
+ {
+ "href": "https://www.linkedin.com/in/lucasvbr",
+ "img": {
+ "src": "https://img.shields.io/badge/linkedin-0e76a8?style=for-the-badge&logo=linkedin&logoColor=white",
+ "alt": "linkedin"
+ }
+ },
+ {
+ "href": "https://www.freecodecamp.org/LucasVbr",
+ "img": {
+ "src": "https://img.shields.io/badge/freecodecamp-0a0a23?style=for-the-badge&logo=freecodecamp&logoColor=white",
+ "alt": "freecodecamp"
+ }
+ }
+ ],
+ "skills": [
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Angular&color=%23df204a&logo=angular&logoColor=white",
+ "alt": "Angular"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Symfony&color=%23df2020&logo=symfony&logoColor=white",
+ "alt": "Symfony"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Git&color=%23df3e20&logo=git&logoColor=white",
+ "alt": "Git"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=HTML5&color=%23df4920&logo=html5&logoColor=white",
+ "alt": "HTML5"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Figma&color=%23df4b20&logo=figma&logoColor=white",
+ "alt": "Figma"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=JavaScript&color=%23dfca20&logo=javascript&logoColor=white",
+ "alt": "JavaScript"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=GNU+Bash&color=%235bdf20&logo=gnubash&logoColor=white",
+ "alt": "Bash"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Android&color=%2320df75&logo=android&logoColor=white",
+ "alt": "Android"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Bulma&color=%2320dfc3&logo=bulma&logoColor=white",
+ "alt": "Bulma"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=MariaDB&color=%2320b3df&logo=mariadb&logoColor=white",
+ "alt": "MariaDB"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Java&color=%2320b2df&logo=java&logoColor=white",
+ "alt": "Java"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=SQLite&color=%2320a2df&logo=sqlite&logoColor=white",
+ "alt": "SQLite"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=CSS3&color=%23208edf&logo=css3&logoColor=white",
+ "alt": "CSS3"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=MySQL&color=%23208ddf&logo=mysql&logoColor=white",
+ "alt": "MySQL"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Python&color=%232088df&logo=python&logoColor=white",
+ "alt": "Python"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=C&color=%23207adf&logo=c&logoColor=white",
+ "alt": "C"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=PostgreSQL&color=%232050df&logo=postgresql&logoColor=white",
+ "alt": "PostgreSQL"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=PHP&color=%23202cdf&logo=php&logoColor=white",
+ "alt": "PHP"
+ },
+ {
+ "src": "https://img.shields.io/static/v1?label=&message=Bootstrap&color=%236d20df&logo=bootstrap&logoColor=white",
+ "alt": "Bootstrap"
+ }
+ ],
+ "badges": [
+ {
+ "src": "https://komarev.com/ghpvc/?username=lucasvbr&label=Profile%20views&color=0e75b6&style=flat",
+ "alt": "Profile views"
+ },
+ {
+ "src": "https://img.shields.io/freecodecamp/points/lucasvbr?label=FreeCodeCamp%20points",
+ "alt": "FreeCodeCamp Points"
+ },
+ {
+ "src": "https://img.shields.io/badge/-made%20with%20%E2%9D%A4%EF%B8%8F-red",
+ "alt": "Made with love"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/model/macro.njk b/model/macro.njk
new file mode 100644
index 0000000..63a3944
--- /dev/null
+++ b/model/macro.njk
@@ -0,0 +1,8 @@
+{% macro a(src, alt) -%}
+ [{{ alt }}]({{ src }})
+{%- endmacro %}
+
+{% macro img(src, alt) -%}
+ !{{ a(src, alt) }}
+{%- endmacro %}
+
diff --git a/model/template.njk b/model/template.njk
new file mode 100644
index 0000000..3368c4f
--- /dev/null
+++ b/model/template.njk
@@ -0,0 +1,25 @@
+{% from "model/macro.njk" import a, img with context %}
+
+# Hi, I'm {{ name }}! 👋
+
+## 🚀 About Me
+{{ about }}
+
+## 🔗 Links
+{% for link in links -%}
+ {{ a(link.href, img(link.img.src, link.img.alt)) }}
+{% endfor %}
+
+## 🛠Skills
+{% for skill in skills -%}
+ {{ img(skill.src, skill.alt) }}
+{% endfor %}
+
+---
+
+
+
+{% for badge in badges -%}
+ {{ img(badge.src, badge.alt) }}
+{% endfor %}
+
\ No newline at end of file
diff --git a/src/config.json b/src/config.json
new file mode 100644
index 0000000..8de3499
--- /dev/null
+++ b/src/config.json
@@ -0,0 +1,5 @@
+{
+ "template": "model/template.njk",
+ "data": "model/data.json",
+ "output": "README.md"
+}
\ No newline at end of file
diff --git a/src/core.ts b/src/core.ts
new file mode 100644
index 0000000..fc54c19
--- /dev/null
+++ b/src/core.ts
@@ -0,0 +1,9 @@
+import denjucks from "https://deno.land/x/denjucks/mod.js";
+
+let { template, data, output } = JSON.parse(await Deno.readTextFile("src/config.json"));
+
+template = await Deno.readTextFile(template);
+data = JSON.parse(await Deno.readTextFile(data));
+
+const result = denjucks.renderString(template, data);
+await Deno.writeTextFile(output, result);
\ No newline at end of file