fixing link style and writing english version of the first article

This commit is contained in:
2026-04-17 19:18:46 +02:00
parent 061eeea00f
commit b0a3dd0377
4 changed files with 171 additions and 36 deletions
+30
View File
@@ -4,6 +4,7 @@ import { getArticleBySlug, getArticleSlugs } from "@/lib/blog/get-articles";
import { ArticleHero } from "@/components/sections/ArticleHero";
import { ArticleSummary } from "@/components/sections/ArticleSummary";
import { locales } from "@/middleware";
import Link from "next/link";
type props = {
params: Promise<{
@@ -24,6 +25,31 @@ export function generateStaticParams() {
return paths;
}
const mdxComponents = {
a: (props: any) => {
const href = props.href;
const isInternalLink = href && (href.startsWith('/') || href.startsWith('#'));
if (isInternalLink) {
return (
<Link href={href} {...props}>
{props.children}
</Link>
);
}
return (
<a
target="_blank"
rel="noopener noreferrer"
{...props}
>
{props.children}
</a>
);
},
};
export default async function ArticlePage({ params }: props) {
const { locale, slug } = await params;
const article = getArticleBySlug(slug, locale);
@@ -65,11 +91,15 @@ export default async function ArticlePage({ params }: props) {
[&_h2]:font-serif [&_h2]:text-[clamp(40px,5vw,64px)] [&_h2]:text-brand-brown [&_h2]:leading-none [&_h2]:mb-6 [&_h2]:mt-2
[&_p]:font-sans [&_p]:text-sm [&_p]:text-brand-brown/70 [&_p]:leading-[1.9]
[&_strong]:font-semibold [&_strong]:text-brand-brown/85
[&_a]:text-brand-brown [&_a]:underline
[&_ul]:font-sans [&_ul]:text-sm [&_ul]:text-brand-brown/70 [&_ul]:leading-[1.9] [&_ul]:list-disc [&_ul]:pl-5 [&_ul]:space-y-1
[&_li]:font-sans [&_li]:text-sm [&_li]:text-brand-brown/70 [&_li]:leading-[1.9]
"
>
<MDXRemote
source={article.content}
options={{ blockJS: false, blockDangerousJS: true }}
components={mdxComponents}
/>
</article>
</div>
@@ -0,0 +1,70 @@
---
ready: true
title: "How I built my new website, and why ?"
description: "Discover how I built my website, the origin of this need, and the steps I went through."
date: "2026-04-17"
category: "Web Development"
tags:
- "Portfolio"
- "Design"
- "Learning"
readTime: "5 min"
summary:
- "Why now and not years earlier ?"
- "The longest part: Figma mockup"
- "How and with what ? The dream stack"
- "My personal playground"
---
<div>
<h2>Why now and not years earlier ?</h2>
You should know that I already had a website. It was outdated, in rather bad taste in terms of design (in my opinion), and above all, it was no longer up to date. I haven't touched it since it went online (which is 4 years ago at the time this article is published).
<br />
I intentionally keep it available on [GitHub Pages](https://pages.github.com/) so you can see the evolution since that time: [https://maethik.github.io/matheoguilbert.fr_v1/](https://maethik.github.io/matheoguilbert.fr_v1/)
<br />
I made that site in high school, during my senior year, with the aim of supporting my [Parcoursup](https://www.parcoursup.gouv.fr/) applications. And it must have been useful since I was accepted everywhere. In reality, I can't be sure my site was effective, or even if anyone visited it, because I didn't use a traffic analyzer like [Google Analytics](https://developers.google.com/analytics) or [Ackee](https://ackee.electerious.com/). I didn't even know what that was at the time.
<br />
Moreover, this is an important moment in my professional life: I am officially launching myself as an independent developer, and I wouldn't want to mess up this start. Since all indie developers or other freelancers have their portfolio, I also needed a site that allows me to say loud and clear: <strong>Look at what I can do ! Hire me !</strong>
</div>
<div>
<h2>The longest part: Figma mockup</h2>
This is by far the longest part of the creation process for this site. Writing lines of code, I know how to do that, and I even enjoy doing it. But spending time exclusively on design, even if I know [Figma](https://www.figma.com/) from using it so much, takes a long time. And between two flashes of genius on how to place this or that element, time passes.
<br />
By spending about 4 hours a week on it (that's an arbitrary estimate, I have no metrics to back it up), it took me about 2 months in total, from early February to early April. It was only after getting a version of the mockup that satisfied me enough that I moved on to development. That took me a little less than a week to code. You quickly realize the difference between my affinity for design and for development. In the time it took me to make the mockup, I could develop this site <strong>8 times</strong>.
<br />
To be more realistic, we should take into account that during those two months of design, I had the time to really think through the project's structure and visualize exactly what I was going to do, and how. Which speeds up development enormously. So this site preparation phase wasn't useless, just too long for my taste. It would become really interesting to push the mockup this far if I spent half the time on it, for the same development time.
</div>
<div>
<h2>How and with what ? The dream stack</h2>
I developed this site with [Next.JS](https://nextjs.org/). I didn't know this framework, so it allowed me to learn it. However, I had a solid background with [React](https://react.dev/) (I developed [EverEast Solutions](https://evereast-solutions.com/) with it). And since Next.JS is a React framework, it made my job easier. I had already acquired the basic knowledge. In fact, the NextJS documentation clearly states that it's better to learn React before starting Next.JS.
<br />
I talk about a "dream stack" for the following reason, you'll quickly understand.
<br />
<ul>
<li>NextJS is developed by [Vercel](https://vercel.com/)</li>
<li>To deploy the site, I used Vercel</li>
<li>For the newsletter and mailing in general (not fully implemented yet), I use [Resend](https://resend.com/)</li>
<li>Resend is developed by Vercel</li>
</ul>
<br />
It's an ecosystem of tools, usable independently of each other, tools that are very well made individually, and when you use them together it becomes super practical and fast to set up, precisely because they are part of the same ecosystem.
</div>
<div>
<h2>My personal playground</h2>
This site has another advantage in my eyes: allowing me to test and learn things.
<br />
I'm not trying to make it the site of the year on [Awwwards](https://www.awwwards.com/), I'm trying to challenge myself. I gave two examples in this article. I didn't know Next.JS and the Vercel ecosystem, I learned it. I'm not comfortable with design, I improved by working on this weak point and challenging myself.
<br />
I am a proponent of a well-known philosophy: you learn by falling. If I rephrase it with my mediocre poetic mind: "hit the wall, you'll stand tall".
<br />
On that note, thanks for reading this far and see you next time, I hope, in another article.
<br />
<strong>Mathéo G</strong>
</div>
@@ -0,0 +1,71 @@
---
ready: true
title: "Comment j'ai construit mon nouveau site internet, et pourquoi ?"
description: "Découvrez comment j'ai contruit mon, l'origine de ce besoin et les étapes par lesquelles je suis passé."
date: "2026-04-17"
category: "Développement Web"
tags:
- "Portfolio"
- "Design"
- "Apprentissage"
readTime: "5 min"
summary:
- "Pourquoi maintenant et pas des années plus tôt ?"
- "Le plus long : maquette Figma"
- "Comment et avec quoi ? La stack de rêve"
- "Mon terrain de jeu personnel"
---
<div>
<h2>Pourquoi maintenant et pas des années plus tôt ?</h2>
Il faut savoir qu'un site internet, j'en avais déjà un. Il était dépassé, d'un assez mauvais goût en termes de design (je trouve), et surtout, il n'était plus à jour. Je n'y ai jamais retouché depuis qu'il est en ligne (soit il y a 4 ans au moment où cet article est publié)
<br />
Je le garde volontairement disponible dans [GitHub Pages](https://pages.github.com/) pour que vous puissiez voir l'évolution depuis cette époque : [https://maethik.github.io/matheoguilbert.fr_v1/](https://maethik.github.io/matheoguilbert.fr_v1/)
<br />
Ce site, je l'avais fait au lycée, en Terminale, dans l'optique d'appuyer mes candidatures [Parcoursup](https://www.parcoursup.gouv.fr/). Et ça aura été utile puisque j'ai été pris partout. En réalité, je ne peux pas être sûr que mon site a été efficace, ni même que qui que ce soit l'ai visiter, car je n'avais pas utilisé d'analyseur de trafic comme [Google Analytics](https://developers.google.com/analytics) ou [Ackee](https://ackee.electerious.com/). Je ne savais même pas ce que c'était à ce moment.
<br />
De plus, c'est un moment important dans ma vie professionnelle, je me lance en tant que développeur indépendant officiellement, et je ne voudrais pas rater ce départ.
Étant donné que tout les développeurs indé, ou autre freelance ont leur portfolio, il me fallait à moi aussi un site qui me permette de dire haut et fort : <strong>Regardez ce que je sais faire ! Missionnez-moi !</strong>
</div>
<div>
<h2>Le plus long : maquette Figma</h2>
C'est de loin la partie du process de création de ce site la plus longue. Écrire des lignes de code, je sais faire, et je prends même du plaisir à le faire. Mais passer du temps exclusivement sur du design, même si je connais [Figma](https://www.figma.com/) à force de l'utiliser, c'est long. Et entre 2 éclairs de génie sur comment placer tel ou tel élément, le temps passe.
<br />
En y passant environ 4h par semaine (c'est une estimation arbitraire, je n'ai aucune métrique pour appuyer cela), j'ai mis au total environ 2 mois, de début février à début avril. Ce n'est qu'après avoir obtenu une version de la maquette qui me satisfaisait suffisamment que je suis passé au développement. Ça m'a pris un peu moins d'une semaine à coder. On se rend vite compte de la différence entre mon niveau d'appétence pour le design et celui pour le développement. Dans le temps ou j'ai fait la maquette, je peux développer <strong>8 fois</strong> ce site.
<br />
Pour être plus réaliste, il faudrait prendre en compte le fait que pendant ces deux mois de design, j'ai eu le temps de beaucoup réfléchir la structure du projet et de visualiser exactement ce que j'allais faire, et comment. Ce qui accélère énormément le développement. Comme quoi cette phase de préparation du site n'était pas inutile, juste trop longue à mon goût. Ça deviendrait vraiment intéressant de pousser la maquette à ce point si j'y passais 2 fois moins de temps, pour le même temps de développement.
</div>
<div>
<h2>Comment et avec quoi ? La stack de rêve</h2>
J'ai développé ce site avec [Next.JS](https://nextjs.org/). Je ne connaissais pas ce framework, cela m'a permis de l'apprendre. J'avais néanmoins un background conséquent avec [React](https://react.dev/) (j'ai développé [EverEast Solutions](https://evereast-solutions.com/) avec). Et Next.JS étant un framework React, ça m'a facilité la tâche, j'avais déjà acquis les connaissances de base. D'ailleurs, la documentation de NextJS indique clairement qu'il est préférable d'apprendre React avant de commencer Next.JS.
<br />
Je parle de "stack de rêve" pour la raison suivante, vous allez vite comprendre.
<br />
<ul>
<li>NextJS est développé par [Vercel](https://vercel.com/)</li>
<li>Pour déployé le site, j'ai utilisé Vercel</li>
<li>Pour la newsletter et le mailling d'une manière générale (pas encore fini d'implémenté), j'utilise [Resend](https://resend.com/)</li>
<li>Resend est développé par Vercel</li>
</ul>
<br />
C'est un écosystème d'outils, utilisables indépendamment les uns des autres, des outils très bien fais individuellement, et quand on les utilise ensemble ça devient super pratique et rapide à mettre en place, parce qu'ils font partie du même écosystème justement.
</div>
<div>
<h2>Mon terrain de jeu personnel</h2>
Ce site à un autre avantage à mes yeux : me permettre de tester et d'apprendre des trucs.
<br />
Je ne cherche pas à ce que ce soit le site de l'année sur [Awwwards](https://www.awwwards.com/), je cherche à me mettre en difficulté. J'ai donné deux exemples dans cet article. Je ne connaissais pas Next.JS et l'écosystème Vercel, je l'ai appris. Je ne suis pas à l'aise avec le design, je me suis amélioré en travaillant sur ce point faible et en me mettant au défi.
<br />
Je suis partisan d'une philosophie bien connue : c'est en tombant qu'on apprend. Si je le reformule avec mon esprit poétique médiocre : "heurte-toi au mur, tu seras plus mûr".
<br />
Sur ce, merci d'avoir lu jusqu'ici et a la prochaine, j'espère, dans un autre article.
<br />
<strong>Mathéo G</strong>
</div>
-36
View File
@@ -1436,9 +1436,6 @@
"cpu": [
"arm"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1459,9 +1456,6 @@
"cpu": [
"arm"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1482,9 +1476,6 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1505,9 +1496,6 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1528,9 +1516,6 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1551,9 +1536,6 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1707,9 +1689,6 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@@ -1726,9 +1705,6 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@@ -1745,9 +1721,6 @@
"cpu": [
"ppc64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@@ -1764,9 +1737,6 @@
"cpu": [
"s390x"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@@ -1783,9 +1753,6 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@@ -1802,9 +1769,6 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [