Image d'illustration de Goodbye Framer, Hello React !

Goodbye Framer, Hello React !

14 avril 2024

Tadaaaaaa ! đŸ€©

Alors, t’en penses quoi ?! Perso, je suis pas fan du light mode. Je sais pas comment faire moins blanc, mais que ça reste joli. J’y travaillerai à l’occasion. Par contre, le dark mode, je l’adore 😍

COMMENT J’AI CREE MON BLOG

Alors au risque de te dĂ©cevoir, j’ai commencĂ© par suivre un tuto
 oui, je sais ce que tu penses : “trop nul, en fait elle a rien fait quoi ! “

Mais dĂ©trompe toi ^^ Oui, j’ai suivi un tuto trĂšs bien fait sur la chaĂźne de Jolly Coding. Pendant 4 soirĂ©es, j’ai suivi pas Ă  pas les instructions, en prenant soin de comprendre un minimum ce que je faisais. Eh oui, le blog est en React et Next, et je ne suis pas encore formĂ©e. Pour autant, grĂące Ă  la formation BeginJavaScript que j’ai suivie, et Ă  sa petite introduction Ă  React, j’étais pas totalement perdue.

Si j’ai choisi ce tuto, c’est parce qu’on m’avait parlĂ© d’utiliser des fichiers Markdown pour gĂ©rer les posts et j’ai tout de suite accrochĂ© Ă  l’idĂ©e. Simple mais efficace, on peut crĂ©er un article en quelques secondes, faire la mise en forme Ă  la volĂ©e, et publier avec un simple “commit”. Ca faisait quelques temps que je cherchais comment crĂ©er mon propre CMS, et voilĂ  que la personne me donne le lien vers le repo github de Jolly Coding. J'ouvre la vidĂ©o YouTube et ni une ni deux, je me lance ! 🚀

Mettre en application tout ce que j’ai vu dans ce tuto, m’a permis de comprendre comment crĂ©er et utiliser un composant React. Et suite Ă  ces 4 sessions de copie pure et simple, j’ai pu crĂ©er moi-mĂȘme plusieurs autres composants et les intĂ©grer Ă  mon blog. J’ai pu customiser le thĂšme dark, les polices, etc


Mais c’est pas tout ! J’ai appris Ă  utiliser shadcnUi et Zod pour crĂ©er le formulaire d’abonnement Ă  mon blog (que tu n’oublieras pas de remplir bien sĂ»r 😉) et valider les champs avant l’envoi. PlutĂŽt easy cette partie.

Mais ensuite, je me suis cassĂ© les dents toute une aprĂšs-midi sur Resend ! pour configurer l’envoi d’un mail lors d’un nouvel abonnement ! 4 heures !! juste pour ça ! Parce que les documentations, c’est bien hein
 mais alors c’est vraiment pas explicite pour les dĂ©butants ! đŸ˜Č

Etape 1 : installer resend

pnpm add resend
 

Easy !

Etape 2 : crĂ©er le composant “email template”

import * as React from "react";
 
interface EmailTemplateProps {
  firstName: string;
}
 
export const EmailTemplate: React.FC<Readonly<EmailTemplateProps>> = ({
  firstName,
}) => (
  <div>
    <h1>Welcome, {firstName}!</h1>
  </div>
);

Easy aussi, j’ai juste à personnaliser mon texte et c’est good !

Etape 3 : envoyer l’email

C’est lĂ  que ça se corse ! DĂ©jĂ , il faut choisir entre deux mĂ©thodes selon si on utilise Pages Router ou App Router
 heeuuu
 nanni ??! đŸ€”

Tu cliques sur Pages Router pour voir ce que c’est :

_API routes provide a solution to build a public API with Next.js. Any file inside the folder pages/api is mapped to /api/_ and will be treated as an API endpoint instead of a page. They are server-side only bundles and won't increase your client-side bundle size.*

heu ok ? 😅

Puis tu cliques sur App Router :

Route Handlers allow you to create custom request handlers for a given route using the Web Request and Response APIs.

Me voilĂ  bien avancĂ©e
 😂

En regardant la structure de mon blog, je vois que j’ai un dossier app, mais pas de dossier pages. J’en conclus donc que je dois utiliser la 2e solution ?! đŸ€·â€â™€ïž

Je me pĂšte les dents plusieurs heures sur cette solution, sans succĂšs, je baisse les bras
 Je tente la seconde solution. En suivant uniquement la doc de Resend, aucune chance que je rĂ©ussisse Ă  mettre en place l’envoi des mails. J’ai dĂ» m’aider de mon fidĂšle mentor et assistant, mon customGPT spĂ©cialisĂ© :

code-mentor-gpt

Et enfin, 4 heures et 1 million de tests plus tard, ça FONCTIONNE !! đŸ€Ż đŸ„ł Et cette sensation d’accomplissement, c’est juste ULTIME 😄 Je pense que les devs sont droguĂ©s Ă  cette sensation et que c'est pour ça qu'ils acceptent de passer des heures Ă  galĂ©rer sur de nouveaux dĂ©fis đŸ€Ł

AprĂšs ça, j’ai passĂ© quelques heures Ă  customiser mes mails, recrĂ©er tous mes anciens articles dans des fichiers Markdown, et enfin mon blog Ă©tait prĂȘt 😍

Et comme je suis un peu “fadade” comme on dit par chez moi, j’ai tenu Ă  crĂ©er une petite “animation” de fondu au noir pour la transition entre l’ancien et le nouveau blog et ça m’a pris
 une aprĂšs-midi de plus 😂

Ce qui a Ă©tĂ© compliquĂ©, ce n’est pas spĂ©cialement la mise en place, mais de trouver quelle solution utiliser ! Encore une fois, il semble qu’il y ait pas mal de façons de faire (utiliser <style> dans le HTML du composant, utiliser useEffect/useState, etc
) mais je n’ai rĂ©ussi Ă  implĂ©menter aucune de ces solutions
 Je ne suis clairement pas assez expĂ©rimentĂ©e pour utiliser les useState et/ou mon Code Mentor me dit parfois de la merde ?! Toutes mes recherches Google n’ont rien donné 

Jusqu’à ce que je rĂ©alise que je pouvais utiliser des variables dans le HTML en utilisant des accolades (je le savais dĂ©jĂ  mais j’avais oubliĂ© lol) Et donc, un simple script en JavaScript a fait le cafĂ© en quelques minutes
. HĂ© oui, c’est aussi ça ĂȘtre dev ! Trouver quelle solution implĂ©menter, en fonction du contexte, des possibilitĂ©s, des compĂ©tences, etc.

Donc OUI, j’ai suivi un tuto pour crĂ©er mon blog, mais je n’ai pas fait que ça !

J’ai appris à :

  • crĂ©er et utiliser un composant React
  • utiliser Velite pour gĂ©rer mes posts au format Markdown
  • utiliser Next pour le SEO, les routes

  • utiliser shadcnUi et Zod pour crĂ©er un formulaire sĂ»r
  • utiliser Resend avec son API

Il y a tout juste 3 mois, je ne connaissais pas tout ça, et je ne connaissais pas non plus HTML, CSS, JavaScript, le DOM, Tailwind, les API, VSCode, Github, 
.

Et c’est pour tout ça que je suis fiĂšre de ce que j’ai rĂ©alisĂ© ^^ C’est pas grand chose pour certains, mais pour moi, c’est beaucoup de choses supplĂ©mentaires apprises en une semaine ! Et toutes ces choses que j’ai galĂ©rĂ© Ă  faire, vont me servir lors de la formation BeginReact que je vais bientĂŽt pouvoir commencer đŸ€©

L’objectif de la semaine prochaine est de revenir analyser la structure de mon blog pour bien comprendre tout ce qu’il a fallu mettre en place et crĂ©er un article dĂ©taillĂ© sur le sujet ! Savoir expliquer quelque chose prouve qu’on a bien assimilĂ© le concept, c’est un trĂšs bon exercice ^^

VoilĂ , n’hĂ©sites pas Ă  me dire ce que tu penses de cet article et de ce nouveau blog en m’envoyant un mail sur ma vieille adresse mail qu’il faudra que je change Ă  l’occasion ^^

paperstreet.notion@gmail.com

En attendant, je te dis Ă  trĂšs bientĂŽt et prend soin de toi ! đŸ’«


Inscris-toi pour ne pas rater les prochains articles !


Tu recevras un e-mail de ma part uniquement lorsque je publierai un nouvel article :)