diff --git a/src/lib/components/ObfuscatedEmail.svelte b/src/lib/components/ObfuscatedEmail.svelte
new file mode 100644
index 0000000..b69d930
--- /dev/null
+++ b/src/lib/components/ObfuscatedEmail.svelte
@@ -0,0 +1,32 @@
+
+
+
+
+
diff --git a/src/lib/components/SocialsCloud.svelte b/src/lib/components/SocialsCloud.svelte
index 049264f..5631f3c 100644
--- a/src/lib/components/SocialsCloud.svelte
+++ b/src/lib/components/SocialsCloud.svelte
@@ -1,25 +1,36 @@
diff --git a/src/lib/components/home/QuickLinks.svelte b/src/lib/components/home/QuickLinks.svelte
index c2759ed..0b78ab0 100644
--- a/src/lib/components/home/QuickLinks.svelte
+++ b/src/lib/components/home/QuickLinks.svelte
@@ -1,28 +1,27 @@
+
diff --git a/src/lib/config.ts b/src/lib/config.ts
index 5beaec4..072161d 100644
--- a/src/lib/config.ts
+++ b/src/lib/config.ts
@@ -1,30 +1,51 @@
import { dev } from '$app/environment';
-export const title = "Matt's Portfolio";
-export const description =
+/* Website config */
+const siteTitle = 'The portfolio and blog of Matt Morin, projects, thoughts and ideas.';
+const siteShortTitle = "Matt's Portfolio";
+const description =
'I code, I think, I write. My thoughts go into the world of Free & Open Source Software, AI and philosophy of mind, Climate Change, Cybersecurity.';
-export const url = dev ? 'http://localhost:5174' : 'https://mattmor.in';
-export const author = 'Matt Morin';
-export const backgroundColor = '#111827';
-export const themeColor = '#3b82f6';
-export const logo = '/Logo.png';
-export const keywords = 'Dev, FOSS, Nix, Philosopher, DevOps, Climate';
-export const ogLanguage = 'en_US';
-export const siteLanguage = 'en-US';
+const siteUrl = dev ? 'http://localhost:5174' : 'https://mattmor.in';
+const author = 'Matt Morin';
+const backgroundColor = '#111827';
+const themeColor = '#3b82f6';
+const logo = '/Logo.png';
+const keywords = 'Dev, FOSS, Nix, Philosopher, DevOps, Climate';
+const ogLanguage = 'en_US';
+const siteLanguage = 'en-US';
+const defaultOgImage = '';
+const defaultOgSquareImage = '';
+const defaultTwitterImage = '';
// prettier-ignore
-export const socialLinks = [
- { title: 'LinkedIn', href: 'https://linkedin.com/in/mattmor-in', icon: 'fa-brands fa-linkedin'},
- { title: 'Matrix', href: '', icon: './MatrixLogo' },
- { title: 'Gitea', href: 'https://git.mattmor.in', icon: './GiteaLogo' },
- { title: 'Mastodon', href: 'https://mastodon.social/@matt_mor', icon: 'fa-brands fa-mastodon'},
- { title: 'RSS feed', href: '/blog/feed', icon: 'fa-regular fa-square-rss' },
- { title: 'email', href: 'matt.b.morin@protonmail.com', icon: 'fa-regular mail'}
-];
+const website = { siteTitle, siteShortTitle, description, siteUrl, author, backgroundColor, themeColor, logo, keywords, ogLanguage, siteLanguage, defaultOgImage, defaultOgSquareImage, defaultTwitterImage };
+
+/* Social Nicknames */
+const GHNick = 'matthieu42morin';
+const LINick = 'mattmor-in';
+const MatrixServer = '';
+const MatrixNick = '';
+const MastodonServer = 'mastodon.social';
+const MastodonNick = '@matt_mor';
+
+const socialNicks = { GHNick, LINick, MatrixNick, MastodonNick };
+
+/* Social links */
+const Email = 'matt.b.morin@protonmail.com';
+const Github = `https://github.com/${GHNick}`;
+const LinkedIn = `https://linkedin.com/in/${LINick}`;
+const Matrix = `https://${MatrixServer}/${MatrixNick}`;
+const Gitea = 'https://git.mattmor.in';
+const Mastodon = `https://${MastodonServer}/${MastodonNick}`;
+const RSS = '/blog/feed';
+
+const socialLinks = { Email, Github, LinkedIn, Matrix, Gitea, Mastodon, RSS };
// Routes
-export const NavRoutes = [
+const NavRoutes = [
{ title: 'Home', href: '/' },
{ title: 'Blog', href: '/blog' },
{ title: 'Projects', href: '/projects' }
];
+
+export { website, socialNicks, socialLinks, NavRoutes };
diff --git a/src/lib/constants.ts b/src/lib/constants.ts
new file mode 100644
index 0000000..c9db6d8
--- /dev/null
+++ b/src/lib/constants.ts
@@ -0,0 +1,9 @@
+export const cookies = {
+ NECESSARY: 'mattmor-necessary',
+ ANALYTICAL: 'mattmor-analytical',
+ TARGETING: 'mattmor-targeting',
+ VISITED: 'mattmor-marketing-website-visited'
+};
+export const COPYRIGHT_ENTITY = '\u00a9'; // (c)
+export const H_ELLIPSIS_ENTITY = '\u2026'; // ...
+export const VERTICAL_LINE_ENTITY = '\u007c'; // |
diff --git a/src/lib/socialsObjects.ts b/src/lib/socialsObjects.ts
new file mode 100644
index 0000000..1b0e5da
--- /dev/null
+++ b/src/lib/socialsObjects.ts
@@ -0,0 +1,12 @@
+import { socialLinks } from './config';
+
+const socials = [
+ { title: 'Email', href: socialLinks.Email, icon: 'fa-solid fa-envelope' },
+ { title: 'LinkedIn', href: socialLinks.LinkedIn, icon: 'fa-brands fa-linkedin' },
+ { title: 'Matrix', href: socialLinks.Matrix, icon: 'MatrixLogo' },
+ { title: 'Gitea', href: socialLinks.Gitea, icon: 'GiteaLogo' },
+ { title: 'Mastodon', href: socialLinks.Mastodon, icon: 'fa-brands fa-mastodon' },
+ { title: 'RSS feed', href: socialLinks.RSS, icon: 'fa-solid fa-square-rss' }
+];
+
+export default socials;