From f54d241357f31c71da3d1891c1877adc24ca4018 Mon Sep 17 00:00:00 2001 From: David Dias Date: Wed, 2 Aug 2023 20:16:05 -0400 Subject: [PATCH] fix: add SEO to app --- apps/blog/locales/en/common.json | 4 +- apps/blog/next-seo.config.ts | 96 +++++ apps/blog/package.json | 2 +- apps/blog/public/rss/feed.json | 34 +- apps/blog/public/rss/feed.xml | 195 +++++----- apps/blog/public/rss/fr/feed.json | 8 +- apps/blog/public/rss/fr/feed.xml | 24 +- .../components/BuyMeACoffee/BuyMeACoffee.tsx | 15 +- .../blog/src/components/BuyMeACoffee/index.ts | 1 + .../src/components/CustomLink/CustomLink.tsx | 6 +- apps/blog/src/components/Footer/Footer.tsx | 10 +- .../MdxComponents/responsive-image.tsx | 4 +- .../blog/src/components/Projects/Projects.tsx | 2 +- apps/blog/src/config/seo.ts | 95 +---- apps/blog/src/pages/_app.tsx | 4 + apps/blog/src/pages/articles/[slug].tsx | 22 +- apps/blog/src/pages/notes/[slug].tsx | 10 +- apps/blog/src/pages/projects/[slug].tsx | 2 +- apps/blog/src/utils/check-page-exists.ts | 0 ...testing-leveraging-frontend-experience.mdx | 2 - ...e-checklist-speeds-up-web-developments.mdx | 7 - ...js-app-on-netlify-using-github-actions.mdx | 8 +- package.json | 4 +- pnpm-lock.yaml | 338 ++++++++++++++---- 24 files changed, 548 insertions(+), 345 deletions(-) create mode 100644 apps/blog/next-seo.config.ts create mode 100644 apps/blog/src/utils/check-page-exists.ts diff --git a/apps/blog/locales/en/common.json b/apps/blog/locales/en/common.json index 0cd2f685..e30bced0 100644 --- a/apps/blog/locales/en/common.json +++ b/apps/blog/locales/en/common.json @@ -155,7 +155,7 @@ "tags": { "path": "/tags", "seo": { - "title": "{{name}} Related Notes", + "title": "{{name}} Notes", "url": "tags", "title_all": "Tags Overview", "description": "Posts linked to {{name}}.", @@ -179,7 +179,7 @@ "path": "/categories", "seo": { "title": "{{name}} Articles", - "description": "Explore my posts related to {{name}}." + "description": "Explore posts related to {{name}}." }, "h1": "Category: {{name}}" }, diff --git a/apps/blog/next-seo.config.ts b/apps/blog/next-seo.config.ts new file mode 100644 index 00000000..d12e8ce0 --- /dev/null +++ b/apps/blog/next-seo.config.ts @@ -0,0 +1,96 @@ +import { DefaultSeoProps } from 'next-seo' + +const config: DefaultSeoProps = { + titleTemplate: '%s | The David Dias', + defaultTitle: 'The David Dias', + openGraph: { + type: 'website', + url: 'https://thedaviddias.dev', + profile: { + firstName: 'David', + lastName: 'Dias', + gender: 'male', + }, + images: [ + { + url: `/og/default.png`, + alt: 'The David Dias', + }, + ], + }, + twitter: { + handle: '@thedaviddias', + site: '@thedaviddias', + cardType: 'summary_large_image', + }, + additionalMetaTags: [ + { + name: 'theme-color', + content: '#ffffff', + }, + { + name: 'application-name', + content: 'The David Dias', + }, + { + name: 'apple-mobile-web-app-capable', + content: 'yes', + }, + { + name: 'msapplication-config', + content: `/favicons/browserconfig.xml`, + }, + ], + additionalLinkTags: [ + { + rel: 'alternate', + type: 'application/rss+xml', + href: '/rss/feed.xml', + }, + { + rel: 'alternate', + type: 'application/rss+xml', + href: '/rss/fr/feed.xml', + }, + { + rel: 'icon', + href: `/favicon.ico`, + }, + { + rel: 'apple-touch-icon', + href: `/favicons/apple-touch-icon.png`, + sizes: '76x76', + }, + { + rel: 'manifest', + href: `/favicons/site.webmanifest`, + }, + { + rel: 'mask-icon', + href: `/favicons/safari-pinned-tab.svg`, + color: '#000000', + }, + { + rel: 'icon', + type: 'image/png', + sizes: '32x32', + href: `/favicons/favicon-32x32.png`, + }, + { + rel: 'icon', + type: 'image/png', + sizes: '16x16', + href: `/favicons/favicon-16x16.png`, + }, + { + rel: `webmention`, + href: `https://webmention.io/thedaviddias.dev/webmention`, + }, + { + rel: `pingback`, + href: `https://webmention.io/thedaviddias.dev/xmlrpc`, + }, + ], +} + +export default config diff --git a/apps/blog/package.json b/apps/blog/package.json index 25d07047..f9007ff1 100644 --- a/apps/blog/package.json +++ b/apps/blog/package.json @@ -37,7 +37,7 @@ "next-compose-plugins": "^2.2.1", "next-mdx-remote": "^4.4.1", "next-plausible": "^3.7.2", - "next-seo": "^5.5.0", + "next-seo": "^6.1.0", "next-themes": "0.2.1", "postcss": "^8.4.24", "prettier": "^2.8.8", diff --git a/apps/blog/public/rss/feed.json b/apps/blog/public/rss/feed.json index 5a18f1e9..dd52de5a 100644 --- a/apps/blog/public/rss/feed.json +++ b/apps/blog/public/rss/feed.json @@ -24,7 +24,7 @@ }, { "id": "https://thedaviddias.dev/notes/how-to-convert-mp3-to-m4b-for-audiobooks", - "content_html": "

Depending on the platform, sometimes you may get audiobooks in MP3 format. However, MP3 is not the best format for audiobooks. It doesn't support chapters, and it's not bookmarkable. M4B is the best format for audiobooks. It supports chapters and is bookmarkable. It's also the format used by Apple for audiobooks.

\n

Last year, I discovered the only MacOS that simply convert multiple MP3 files into one M4B file. It's called AudioBookBinder App Store page and can be found on the App Store for free!

\n

How to use AudioBookBinder?

\n

AudioBook Binder is a simple app that does one thing and does it well. It converts MP3 files into M4B files. You drag your MP3 files into the app, and the cover, and it will convert them into one M4B file.

\n

\"AudioBookBinder
AudioBookBinder Files View
\n
\"AudioBookBinder
AudioBookBinder Cover View

\n

The options are limited but sufficient. You can set the cover, the title, the author, and the genre. I usually leave it to "Audiobook" for the genre.

\n

I hope you find this app useful as I did.

\n

And in case you store some audiobooks on your own server, you take a look at audiobookshelf. It's a Google and Apple app that allows you to listen to your audiobooks from your own server. It's open-source and free. You're welcome!

\n

\"Audiobookshelf\"
Home page of Audiobookshelf

", + "content_html": "

Depending on the platform, sometimes you may get audiobooks in MP3 format. However, MP3 is not the best format for audiobooks. It doesn't support chapters, and it's not bookmarkable. M4B is the best format for audiobooks. It supports chapters and is bookmarkable. It's also the format used by Apple for audiobooks.

\n

Last year, I discovered the only MacOS that simply convert multiple MP3 files into one M4B file. It's called AudioBookBinder App Store page and can be found on the App Store for free!

\n

How to use AudioBookBinder?

\n

AudioBook Binder is a simple app that does one thing and does it well. It converts MP3 files into M4B files. You drag your MP3 files into the app, and the cover, and it will convert them into one M4B file.

\n

\"AudioBookBinder

AudioBookBinder Files View
\n\"AudioBookBinder
AudioBookBinder Cover View

\n

The options are limited but sufficient. You can set the cover, the title, the author, and the genre. I usually leave it to "Audiobook" for the genre.

\n

I hope you find this app useful as I did.

\n

And in case you store some audiobooks on your own server, you take a look at audiobookshelf. It's a Google and Apple app that allows you to listen to your audiobooks from your own server. It's open-source and free. You're welcome!

\n

\"Audiobookshelf\"

Home page of Audiobookshelf

", "url": "https://thedaviddias.dev/notes/how-to-convert-mp3-to-m4b-for-audiobooks", "title": "How to Convert MP3 to M4B for Audiobooks lovers, on MacOS?", "summary": "Explore \"AudioBookBinder\", a handy MacOS app designed for making audiobooks. It quickly turns MP3 files into M4B format, making audiobook creation a breeze.", @@ -48,7 +48,7 @@ }, { "id": "https://thedaviddias.dev/notes/how-to-fix-set-output-nvmrc-github-actions", - "content_html": "

You may be getting the issue "The set-output command is deprecated and will be disabled soon. Please upgrade to using Environment Files." from your Github workflow.

\n

\"Screenshot

\n

Few months ago, I choose to update some of my Github workflows to read from my .nvmrc file instead of manually specifying my node version.

\n
on: push\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Detect Node version\n        run: echo ::set-output name=NODE_VERSION::$(cat .nvmrc)\n        id: nvmrc\n\n      - name: Use Node.js ${{ steps.nvmrc.outputs.NODE_VERSION }}\n        uses: actions/setup-node@v3\n        with:\n          node-version: ${{ steps.nvmrc.outputs.NODE_VERSION }}\n
\n

But since October 2022 and the runner version 2.298.2, Github shows a warning regarding a future depreciation of the set-output command.

\n

After few trials, I figured out how to update using the $GITHUB_OUTPUT instead:

\n
on: push\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Detect Node version\n        run: echo "NODE_VERSION=$(cat .nvmrc)" >> $GITHUB_OUTPUT\n        id: nvmrc\n        # shell: bash (to be added if you use composite actions)\n\n      - name: Use Node.js ${{ steps.nvmrc.outputs.NODE_VERSION }}\n        uses: actions/setup-node@v3\n        with:\n          node-version: '${{ steps.nvmrc.outputs.NODE_VERSION }}'\n
\n

And "voilà", the warning should have disappeared and you should see the number of the version right after Use Node.js XXXX in your workflow.

", + "content_html": "

You may be getting the issue "The set-output command is deprecated and will be disabled soon. Please upgrade to using Environment Files." from your Github workflow.

\n

\"Screenshot

\n

Few months ago, I choose to update some of my Github workflows to read from my .nvmrc file instead of manually specifying my node version.

\n
on: push\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Detect Node version\n        run: echo ::set-output name=NODE_VERSION::$(cat .nvmrc)\n        id: nvmrc\n\n      - name: Use Node.js ${{ steps.nvmrc.outputs.NODE_VERSION }}\n        uses: actions/setup-node@v3\n        with:\n          node-version: ${{ steps.nvmrc.outputs.NODE_VERSION }}\n
\n

But since October 2022 and the runner version 2.298.2, Github shows a warning regarding a future depreciation of the set-output command.

\n

After few trials, I figured out how to update using the $GITHUB_OUTPUT instead:

\n
on: push\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Detect Node version\n        run: echo "NODE_VERSION=$(cat .nvmrc)" >> $GITHUB_OUTPUT\n        id: nvmrc\n        # shell: bash (to be added if you use composite actions)\n\n      - name: Use Node.js ${{ steps.nvmrc.outputs.NODE_VERSION }}\n        uses: actions/setup-node@v3\n        with:\n          node-version: '${{ steps.nvmrc.outputs.NODE_VERSION }}'\n
\n

And "voilà", the warning should have disappeared and you should see the number of the version right after Use Node.js XXXX in your workflow.

", "url": "https://thedaviddias.dev/notes/how-to-fix-set-output-nvmrc-github-actions", "title": "How to fix \"set-output\" when reading nvmrc from the GitHub Actions?", "summary": "Find out how to fix the deprecated set-output when you read the Nodejs version from your .nvmrc file in Github workflows.", @@ -72,7 +72,7 @@ }, { "id": "https://thedaviddias.dev/notes/finally-received-steam-deck-confirmation-email", - "content_html": "

This was a long wait! After months of lurking on Youtube watching others playing with their Deck, I finally got my purchase confirmation email for the Steam Deck!

\n

\"\"

\n

What kept me sane during this time was probably this tool created by Labidou51. I was able to get a sense of when I would receive the email confirmation.

\n
View post on Twitter
\n

Some more days to wait and I hope to get this new amazing piece of tech (it's a computer) in my own hands! Maybe I can find a nice skin on Dbrand in the meantime 😜?!

", + "content_html": "

This was a long wait! After months of lurking on Youtube watching others playing with their Deck, I finally got my purchase confirmation email for the Steam Deck!

\n

\"\"

\n

What kept me sane during this time was probably this tool created by Labidou51. I was able to get a sense of when I would receive the email confirmation.

\n
View post on Twitter
\n

Some more days to wait and I hope to get this new amazing piece of tech (it's a computer) in my own hands! Maybe I can find a nice skin on Dbrand in the meantime 😜?!

", "url": "https://thedaviddias.dev/notes/finally-received-steam-deck-confirmation-email", "title": "Finally received my Steam Deck confirmation email!", "summary": "After months of waiting, I finally received my Steam Deck confirmation email!", @@ -84,7 +84,7 @@ }, { "id": "https://thedaviddias.dev/articles/ideal-desk-setup-personal-journey", - "content_html": "

I first embarked on my journey to create the perfect desk setup in 2018, when I made the big move from Mauritius to Canada.

\n

The notion of an ideal setup has always been a tantalizing dream of mine. But when can we honestly say, "This is it, this is the setup I always wanted."? Well, there's no definitive answer to that. However, after a few years of relentless experimentation, I can confidently say that I'm truly happy with what I have.

\n

(Check out the list of all the gear I use at https://kit.co/thedaviddias)

\n

Daily desk setup

\n

Yes, my desk is usually that clean! No kidding! Almost every morning or night, I make a habit of removing from my desk what I don't need, like a cup of tea or the last letter that came in the mail.

\n

\"\"

\n

What makes a desk setup almost perfect? It just has to be a place where you feel comfortable and productive! I don't like having a space cluttered with things I don't really need. I am always trying to figure out how I can replace a specific function with a smaller or more minimalistic piece of gear. It's sometimes hard to strike a balance between minimalism and productivity, but I think I am getting there.

\n

My main computers (both personal and professional) are Macs. My personal one is a MacBook M1 Max, 14-inch from 2021 with 32 GB of RAM and a 2 TB hard drive. And of course, I added a DBrand skin called "Top Skin Hyperblack Titanium" for the top and Matte Black for the bottom.

\n

As you can see in the picture above, I work with two screens instead of one. Many people I know are fans of wide, curved screens. I've tried it, but I constantly put my apps in full screen and you can't do that without a window management app.

\n

I love mechanical keyboards! I have multiple ones, but the one I chose for my setup is the Keychron K3 Ultra-Slim 75%. It's thin and wireless. The keys don't make too much noise, which is important when you are in a meeting. I use it in combination with the Logitech MX Master 3S.

\n

Music desk setup

\n

I have studied and played music for more than 10 years. But for many years, I didn't touch a single instrument. 2-3 years ago, I decided to get back to it. I initially bought the Novation Mini [MK3]. It was nice creating some songs in Ableton with it, but I quickly felt that I needed normal keys. After weeks of research and comparison, I chose the Novation Launchkey 49 MK3.

\n

\"\"

\n

I'm fortunate enough to afford access to Kontakt and Komplete Standard edition from Native Instruments. They have so many instruments, I'm still exploring them all!

\n

Electronics desk setup

\n

I started tinkering with electronics in 2011. I have left many electronic gears in every country and place I lived in! I have built a lot of unfinished projects. These days, time is the only thing that is missing to finish them. But I still love playing with electronics. I have the amazing Weller Digital Soldering Station (WE1010NA) and a few boxes filled with tools and components. I might write an article exclusively about my tools!

\n

\"\"

\n

Ironically, what took me a long time to find was the magnifying glass. I had a specific idea in mind. I finally found one that seems to be using exactly the same arm as Rode. Funny.

\n

Maybe one day I will have a dedicated desk for electronics. But for now, I'm happy with what I have.

\n

Craft desk setup

\n

I wish I was a better artist! At least, I've been trying! I have a lot of respect for people who can draw, paint, etc... But whenever I can, I try to learn something new. Doing something with my hands is a great way to relax and forget about the computer and coding. I wish I could spend more time doing that.

\n

A few years ago, when I was living in Paris, I would spend a fortune at Aroma Zone. I would make products based on essential oils. I would make my own shampoo, shower gel, etc... I also made my own candles. It was amazing! Unfortunately, in Canada, I've never found a similar shop.

\n

\"\"

\n

And you, what is your ideal desk setup?

\n

Everyone is different, and our needs and aspirations are different. I am curious to know - what is your ideal desk setup? What do you like to have on your desk? What do you enjoy doing? What is your dream setup?

", + "content_html": "

I first embarked on my journey to create the perfect desk setup in 2018, when I made the big move from Mauritius to Canada.

\n

The notion of an ideal setup has always been a tantalizing dream of mine. But when can we honestly say, "This is it, this is the setup I always wanted."? Well, there's no definitive answer to that. However, after a few years of relentless experimentation, I can confidently say that I'm truly happy with what I have.

\n

(Check out the list of all the gear I use at https://kit.co/thedaviddias)

\n

Daily desk setup

\n

Yes, my desk is usually that clean! No kidding! Almost every morning or night, I make a habit of removing from my desk what I don't need, like a cup of tea or the last letter that came in the mail.

\n

\"\"

\n

What makes a desk setup almost perfect? It just has to be a place where you feel comfortable and productive! I don't like having a space cluttered with things I don't really need. I am always trying to figure out how I can replace a specific function with a smaller or more minimalistic piece of gear. It's sometimes hard to strike a balance between minimalism and productivity, but I think I am getting there.

\n

My main computers (both personal and professional) are Macs. My personal one is a MacBook M1 Max, 14-inch from 2021 with 32 GB of RAM and a 2 TB hard drive. And of course, I added a DBrand skin called "Top Skin Hyperblack Titanium" for the top and Matte Black for the bottom.

\n

As you can see in the picture above, I work with two screens instead of one. Many people I know are fans of wide, curved screens. I've tried it, but I constantly put my apps in full screen and you can't do that without a window management app.

\n

I love mechanical keyboards! I have multiple ones, but the one I chose for my setup is the Keychron K3 Ultra-Slim 75%. It's thin and wireless. The keys don't make too much noise, which is important when you are in a meeting. I use it in combination with the Logitech MX Master 3S.

\n

Music desk setup

\n

I have studied and played music for more than 10 years. But for many years, I didn't touch a single instrument. 2-3 years ago, I decided to get back to it. I initially bought the Novation Mini [MK3]. It was nice creating some songs in Ableton with it, but I quickly felt that I needed normal keys. After weeks of research and comparison, I chose the Novation Launchkey 49 MK3.

\n

\"\"

\n

I'm fortunate enough to afford access to Kontakt and Komplete Standard edition from Native Instruments. They have so many instruments, I'm still exploring them all!

\n

Electronics desk setup

\n

I started tinkering with electronics in 2011. I have left many electronic gears in every country and place I lived in! I have built a lot of unfinished projects. These days, time is the only thing that is missing to finish them. But I still love playing with electronics. I have the amazing Weller Digital Soldering Station (WE1010NA) and a few boxes filled with tools and components. I might write an article exclusively about my tools!

\n

\"\"

\n

Ironically, what took me a long time to find was the magnifying glass. I had a specific idea in mind. I finally found one that seems to be using exactly the same arm as Rode. Funny.

\n

Maybe one day I will have a dedicated desk for electronics. But for now, I'm happy with what I have.

\n

Craft desk setup

\n

I wish I was a better artist! At least, I've been trying! I have a lot of respect for people who can draw, paint, etc... But whenever I can, I try to learn something new. Doing something with my hands is a great way to relax and forget about the computer and coding. I wish I could spend more time doing that.

\n

A few years ago, when I was living in Paris, I would spend a fortune at Aroma Zone. I would make products based on essential oils. I would make my own shampoo, shower gel, etc... I also made my own candles. It was amazing! Unfortunately, in Canada, I've never found a similar shop.

\n

\"\"

\n

And you, what is your ideal desk setup?

\n

Everyone is different, and our needs and aspirations are different. I am curious to know - what is your ideal desk setup? What do you like to have on your desk? What do you enjoy doing? What is your dream setup?

", "url": "https://thedaviddias.dev/articles/ideal-desk-setup-personal-journey", "title": "The Ideal Desk Setup: A Personal Journey", "summary": "Join me as I take you on a tour of my desk setup, showing how it has evolved over the years, and how it enhances my productivity and creative pursuits. Let's discuss and share our ideal desk setups!", @@ -97,7 +97,7 @@ }, { "id": "https://thedaviddias.dev/articles/decade-web-development-personal-journey-showcase", - "content_html": "

I published my first website around 2001. Probably before that. Almost 20 years ago. Unfortunately, the exact date I started doing web development is probably lost by now.

\n

Everything began when my dear friend, Christophe Raimbault, a priest in the Diocese of Tours, asked if I was interested in managing and building a website for the "Notre-Dame La Riche" parish. If you are not too familiar with what a parish is, it's mostly a local community of different churches. At the time, this sounded like an amazing challenge but I had no idea what I was getting into. I had never touch a line of code before, I was only 15 years old. I never stopped coding since then.

\n

The following list of websites are the ones that had the most impact on my life. I build a lot more websites but smaller and less important. I'm not including them here.

\n

"Notre-Dame La Riche" parish website (2000-2005)

\n

"Notre-Dame La Riche" parish website was my first website. At the time, no blogs, no Google, no Github... most of my time was dedicated in studying code source of other websites, reading books about HTML, CSS, PHP. It was definitelly a fun time. I was learning a lot, things seemed to be a lot more simple than nowadays.

\n

\"\"
Me presenting the website in 2005

\n

I still have some code source and I can't bear looking at it just for few seconds 🤣: CSS mixed with HTML, no version control, layouts build with tables... as I said, it was fun but I'm glad things have changed. The website had multiple refactoring along the years. I remember having some animated banners build with Flash.

\n

\"\"
Notre-Dame La Riche parish website in 2004

\n

\"\"
Notre-Dame La Riche parish website in 2005

\n\n

WikiKto (2005-2006)

\n

Wikipedia was launched in 2001. At this time, wikis were popular and Wikipedia was just beginning. I remember how much criticism this community project received. For many reasons that I have somewhat forgotten, I decided to create a dedicated wiki related to Catholic knowledge. I named it WikiKto (Kto is the French abbreviation for Catholic).

\n

To my great surprise, the project gained a lot of contributors. I was no longer alone. I was not the only one who thought that a wiki about Catholic knowledge was a good idea. I was not the only one who believed that Catholic knowledge should be shared and made accessible to everyone.

\n

The project was officially launched on May 13, 2005. I had to shut it down a little over a year later when I moved to Brazil and could no longer manage it.

\n

\"\"
WikiKto homepage in French
\n
\"\"
WikiKto homepage in English

\n\n

WikiKtosource (2005-2006)

\n

WikiKtosource was launched few weeks after WikiKto and was the equivalent to Wikimedia. It was a wiki dedicated to offer open source resources for the catholic community. It was a place to share and download resources like images mainly.

\n

\"\"

\n\n

David Dias Blog (2010 to today)

\n

I created a first version of my personal blog in 2010. Few months before I started my first job as a web developer. For many years, creating new content and maintaining a blog has been a challenge for me with so many things and ideas to create. The current version of my blog (2022-2023) is probably the one that finally got the most attention to me.

\n

\"\"
David Dias Blog in 2012
\n
\"\"
David Dias Blog in 2015
\n
\"\"
David Dias Blog in 2020

\n\n

França Brasileira (2009-2011)

\n

\"\"

\n

Back from Brazil, I decided to create a forum to help Brazilians to move to France and to connect to other Brazilians living in France. Thanks to all my contacts made in Brazil, I was able to get a lot of exposure and the forum and blog got very popular.

\n\n

Frontenddeveloper (2013-2014)

\n

frontenddeveloper.fr was another trial to create a blog about front-end development. I was not very active on it and I decided to close it after few months.

\n

\"\"

\n\n

Front-End Checklist (2017 to today)

\n

The Front-End Checklist is an open-source project I created just few month before leaving Mauritius. Initially build for my frontend team, it became a worlwide and very popular project around the globe. I have been meaning to build a V2, more modern and with a better user experience. Not sure if and when I will have time to do it.

\n

\"\"

\n\n

World Web Stories (2021 to today)

\n

I officially start the podcast World Web Stories when I was living in Mauritus, in 2016. I was not very active, only had 5 episodes and it was in French. In 2021, unemployed for few weeks, I decided to relaunch the podcast in English with a new format and with the goal to interview one person from each country in the world.

\n

Unfortunately, I choose to spend more time on my other podcast "Erreur 200". I still want to continue this project, but I'm not sure when I will.

\n

\"\"

\n\n

Erreur 200 (2021 to today)

\n

Erreur 200 is a French podcast I co-host with Jean-Rémy Duboc about web development. We talk about our experience, our mistakes, our successes, our tips and tricks. We also interview people from the web development community.

\n

\"\"

\n\n

Conclusion

\n

Looking back more than 10 years, I'm very proud and grateful for all the opportunities and projects I had the chance to work on. I'm also very grateful for all the people I met along the way. Those projects shaped in a way my career and life and I'm not even mentionning all the professional projects I've worked on.

", + "content_html": "

I published my first website around 2001. Probably before that. Almost 20 years ago. Unfortunately, the exact date I started doing web development is probably lost by now.

\n

Everything began when my dear friend, Christophe Raimbault, a priest in the Diocese of Tours, asked if I was interested in managing and building a website for the "Notre-Dame La Riche" parish. If you are not too familiar with what a parish is, it's mostly a local community of different churches. At the time, this sounded like an amazing challenge but I had no idea what I was getting into. I had never touch a line of code before, I was only 15 years old. I never stopped coding since then.

\n

The following list of websites are the ones that had the most impact on my life. I build a lot more websites but smaller and less important. I'm not including them here.

\n

"Notre-Dame La Riche" parish website (2000-2005)

\n

"Notre-Dame La Riche" parish website was my first website. At the time, no blogs, no Google, no Github... most of my time was dedicated in studying code source of other websites, reading books about HTML, CSS, PHP. It was definitelly a fun time. I was learning a lot, things seemed to be a lot more simple than nowadays.

\n

\"\"

Me presenting the website in 2005

\n

I still have some code source and I can't bear looking at it just for few seconds 🤣: CSS mixed with HTML, no version control, layouts build with tables... as I said, it was fun but I'm glad things have changed. The website had multiple refactoring along the years. I remember having some animated banners build with Flash.

\n

\"\"

Notre-Dame La Riche parish website in 2004

\n

\"\"

Notre-Dame La Riche parish website in 2005

\n\n

WikiKto (2005-2006)

\n

Wikipedia was launched in 2001. At this time, wikis were popular and Wikipedia was just beginning. I remember how much criticism this community project received. For many reasons that I have somewhat forgotten, I decided to create a dedicated wiki related to Catholic knowledge. I named it WikiKto (Kto is the French abbreviation for Catholic).

\n

To my great surprise, the project gained a lot of contributors. I was no longer alone. I was not the only one who thought that a wiki about Catholic knowledge was a good idea. I was not the only one who believed that Catholic knowledge should be shared and made accessible to everyone.

\n

The project was officially launched on May 13, 2005. I had to shut it down a little over a year later when I moved to Brazil and could no longer manage it.

\n

\"\"

WikiKto homepage in French
\n\"\"
WikiKto homepage in English

\n\n

WikiKtosource (2005-2006)

\n

WikiKtosource was launched few weeks after WikiKto and was the equivalent to Wikimedia. It was a wiki dedicated to offer open source resources for the catholic community. It was a place to share and download resources like images mainly.

\n

\"\"

\n\n

David Dias Blog (2010 to today)

\n

I created a first version of my personal blog in 2010. Few months before I started my first job as a web developer. For many years, creating new content and maintaining a blog has been a challenge for me with so many things and ideas to create. The current version of my blog (2022-2023) is probably the one that finally got the most attention to me.

\n

\"\"

David Dias Blog in 2012
\n\"\"
David Dias Blog in 2015
\n\"\"
David Dias Blog in 2020

\n\n

França Brasileira (2009-2011)

\n

\"\"

\n

Back from Brazil, I decided to create a forum to help Brazilians to move to France and to connect to other Brazilians living in France. Thanks to all my contacts made in Brazil, I was able to get a lot of exposure and the forum and blog got very popular.

\n\n

Frontenddeveloper (2013-2014)

\n

frontenddeveloper.fr was another trial to create a blog about front-end development. I was not very active on it and I decided to close it after few months.

\n

\"\"

\n\n

Front-End Checklist (2017 to today)

\n

The Front-End Checklist is an open-source project I created just few month before leaving Mauritius. Initially build for my frontend team, it became a worlwide and very popular project around the globe. I have been meaning to build a V2, more modern and with a better user experience. Not sure if and when I will have time to do it.

\n

\"\"

\n\n

World Web Stories (2021 to today)

\n

I officially start the podcast World Web Stories when I was living in Mauritus, in 2016. I was not very active, only had 5 episodes and it was in French. In 2021, unemployed for few weeks, I decided to relaunch the podcast in English with a new format and with the goal to interview one person from each country in the world.

\n

Unfortunately, I choose to spend more time on my other podcast "Erreur 200". I still want to continue this project, but I'm not sure when I will.

\n

\"\"

\n\n

Erreur 200 (2021 to today)

\n

Erreur 200 is a French podcast I co-host with Jean-Rémy Duboc about web development. We talk about our experience, our mistakes, our successes, our tips and tricks. We also interview people from the web development community.

\n

\"\"

\n\n

Conclusion

\n

Looking back more than 10 years, I'm very proud and grateful for all the opportunities and projects I had the chance to work on. I'm also very grateful for all the people I met along the way. Those projects shaped in a way my career and life and I'm not even mentionning all the professional projects I've worked on.

", "url": "https://thedaviddias.dev/articles/decade-web-development-personal-journey-showcase", "title": "My Decade in Web Development: A Personal Journey and Showcase", "summary": "Dive into my decade-long journey in web development, chronicling key projects that have shaped my career.", @@ -110,7 +110,7 @@ }, { "id": "https://thedaviddias.dev/articles/raycast-applications-super-developer", - "content_html": "

Spolight on Mac is great, but it always lacked the possibility to add custom commands and third party access. And that's where Alfred comes in. It's a great application that allows you to do just that. I have been a big fan of "Alfred" at least since 2015. I would recommend this application to anyone who wants to be more productive on their Mac. I was a big fan!

\n

But few months ago, one of my colleague talked to me about Raycast. Eager to always find better tools and expand my productivity, I decided to give it a try. The first thing I noticed was the speed. Not that "Alfred" is slow, but Raycast was just blazing fast!

\n

I was hooked! And when I found out that all the applications were build in TypeScript, this was the cherry on the cake! After a few weeks now using it, I don't see myself going back.

\n

And today, I wanted to share with you the 10 applications I use the most in Raycast, on a daily basis. Those applications are more towards developers but I highly recommend you to check Raycast out (it's free)

\n

One Password

\n

\"\"

\n

1Password has been my password manager for many years. I can search, copy username or password, open the website. The only annoying part is the fact that 1Password always ask me to give access to the application. Annoying but still useful.

\n

TailwindCSS Docs

\n

\"\"

\n

I use TailwindCSS and nothing better than opening the TailwindCSS documentation directly from Raycast. I could search directly on the website but this saves me some clicks.

\n

Github

\n

\"\"

\n

Open pull requests, notifications, discussions from Github... I can also search directly repositories from Raycast.

\n

Spotify

\n

\"\"

\n

Play, pause, stop, next... I can control Spotify directly from Raycast. This is something I was always using on Alfred, couldn't approve Raycast if I didn't have this option.

\n

Raindrop

\n

\"\"

\n

Raindrops is my favourite bookmark manager. The kind of tool that constantly adds new features. I can search, open, add new bookmarks directly from Raycast with the Raindrop application.

\n

Vercel

\n

\"\"

\n

I love seeing the status of my deployment on Vercel from Raycast. Can directly open my projects too.

\n

Visual Studio Code

\n

\"\"

\n

I use "Visual Studio Code" Raycast App in combinaison with "Project Manager" to quickly access all my projects in an instant.

\n

Bonus: Clipboard History

\n

\"\"

\n

This is not an application, but a feature I loved on Alfred and actually exists on Raycast, even it's slighly less powerful.

\n

"Clipboard History" give you access to your last copied items. I've assign the double (action) key to open the clipboard history. This is a feature I use constantly, and I'm glad it's available on Raycast.

", + "content_html": "

Spolight on Mac is great, but it always lacked the possibility to add custom commands and third party access. And that's where Alfred comes in. It's a great application that allows you to do just that. I have been a big fan of "Alfred" at least since 2015. I would recommend this application to anyone who wants to be more productive on their Mac. I was a big fan!

\n

But few months ago, one of my colleague talked to me about Raycast. Eager to always find better tools and expand my productivity, I decided to give it a try. The first thing I noticed was the speed. Not that "Alfred" is slow, but Raycast was just blazing fast!

\n

I was hooked! And when I found out that all the applications were build in TypeScript, this was the cherry on the cake! After a few weeks now using it, I don't see myself going back.

\n

And today, I wanted to share with you the 10 applications I use the most in Raycast, on a daily basis. Those applications are more towards developers but I highly recommend you to check Raycast out (it's free)

\n

One Password

\n

\"\"

\n

1Password has been my password manager for many years. I can search, copy username or password, open the website. The only annoying part is the fact that 1Password always ask me to give access to the application. Annoying but still useful.

\n

TailwindCSS Docs

\n

\"\"

\n

I use TailwindCSS and nothing better than opening the TailwindCSS documentation directly from Raycast. I could search directly on the website but this saves me some clicks.

\n

Github

\n

\"\"

\n

Open pull requests, notifications, discussions from Github... I can also search directly repositories from Raycast.

\n

Spotify

\n

\"\"

\n

Play, pause, stop, next... I can control Spotify directly from Raycast. This is something I was always using on Alfred, couldn't approve Raycast if I didn't have this option.

\n

Raindrop

\n

\"\"

\n

Raindrops is my favourite bookmark manager. The kind of tool that constantly adds new features. I can search, open, add new bookmarks directly from Raycast with the Raindrop application.

\n

Vercel

\n

\"\"

\n

I love seeing the status of my deployment on Vercel from Raycast. Can directly open my projects too.

\n

Visual Studio Code

\n

\"\"

\n

I use "Visual Studio Code" Raycast App in combinaison with "Project Manager" to quickly access all my projects in an instant.

\n

Bonus: Clipboard History

\n

\"\"

\n

This is not an application, but a feature I loved on Alfred and actually exists on Raycast, even it's slighly less powerful.

\n

"Clipboard History" give you access to your last copied items. I've assign the double (action) key to open the clipboard history. This is a feature I use constantly, and I'm glad it's available on Raycast.

", "url": "https://thedaviddias.dev/articles/raycast-applications-super-developer", "title": "Raycast Applications That Will Make You a Super Developer!", "summary": "Raycast is one of the best tool if you want to speed up your productivity on Mac. Here are the 10 applications I use the most in Raycast, on a daily basis.", @@ -123,7 +123,7 @@ }, { "id": "https://thedaviddias.dev/articles/beyond-user-testing-leveraging-frontend-experience", - "content_html": "

User testing is a crucial tool for gathering feedback on a product, but it's not enough to truly understand and improve user engagement. For the past 13 years, I have been building multi-language platforms for international brands and for a wide variety of users. Even in a space that constantly changes, where users have evolving needs, it's important to also acknowledge the role that experience plays in understanding them.

\n

\"\"
Photo by Marvin Meyer on Unsplash

\n

Being a Front-End Developer gave me and all my colleagues around the world a unique perspective on user experience. We understand how small design decisions can have a big impact on the user experience, and we have a deep understanding of how users interact with products. By leveraging our experience in front-end development, we can help create products that are not only effective but also enjoyable to use, leading to increased user satisfaction and loyalty.

\n

The limits of user testing

\n

User testing is a critical component of product development that can help identify usability issues and gather feedback from real users. By testing products with representative users, product teams can gain valuable insights in how users interact with their interfaces and what their pain points are. Whatever you use services like User Testing, or your own user testing directly with regular users, user testing also possess some limits that can’t be overlooked.

\n

For example, users may not always be able to articulate their needs and preferences accurately, or identify more obvious usability issues that sometimes are more subtle or hidden. User testing is also typically conducted in a controlled environment, which may not always accurately reflect real-wold usage scenarios.

\n

What about people that don’t use technology in a daily basis?

\n

Usually user testing is done by a certain user group or demographics and don’t include 100% of all users. From my point of view, user testing can’t be really complete without testing with people with disabilities. For people with experience in doing accessibility testing with real users, I’m sure you will agree that.

\n

User testing can lead to success or failure

\n

Through Internet history, user testing had lead to create successful products:

\n\n

But user testing can also fail to uncover critical usability issues which can contribute to the failure of some projects:

\n\n

Building a successful project is not an easy task, a lot of factors can influence the success or the failure of a new product. Nowadays, users have different needs. Users switch faster to competitor then before, we have daily examples of that.

\n

User testing is one tool in companies belt that should be used as often as possible, but shouldn’t be the only one.

\n

Leveraging Front-End experience

\n

Front-End Developers (FED) are not just coders. Usually seen as the ones that “just” integrate designs into HTML, CSS and JavaScript, their t-shape personalities is often times overlooked (not all FES have t-shape skills though).

\n

A FED can play a critical role in creating engaging user experiences.

\n

Collaboration and communication for better user engagement

\n

As I said in my previous article about Front-End Developers, Web and UX/UI Designers collaboration, collaboration and communication is key in building a successful product.

\n

This collaborative approach allows different perspectives to merge and create a more holistic vision of the product. As Front-End Developers, we have the unique position of working at the intersection of design and technology. We are often the ones who bring the designers' visions to life while ensuring that the product remains functional and user-friendly.

\n

Front-end development is about more than just making things look good. It's about creating a seamless and intuitive interface that guides users through a product. Every button, every transition, every piece of interactive content is a chance to engage users and keep them invested in the product.

\n

The Benefits of Leveraging Front-End Experience

\n

Front-end developers have a deep understanding of user behavior, as they are responsible for creating the interactive elements that users engage with. They can use this knowledge to create more engaging user interfaces and to guide user testing to focus on areas of the product that are most likely to affect user engagement.

\n

Beyond just implementing designs, a seasoned FED can provide insights and suggest improvements to the UX/UI designs based on their knowledge of what is technically feasible and what would create a smoother user journey. They can spot potential pitfalls in the designs that might be overlooked during user testing.

\n

For example, a developer might notice that a particular design element could cause issues on certain devices or browsers. They might also suggest an alternative way of implementing a feature that enhances the user's experience. I have been advocating about accessibility for years now. Last year, I became CPACC certified and I continue to advocate for accessibility in my daily work. Not everyone understand what web accessibility is and how it impacts users. It takes time and effort to educate people about it.

\n

The Future of User Engagement

\n

As technology advances, users' expectations also rise. They demand faster, smoother, and more intuitive interfaces. User testing will always be a vital tool for gathering feedback, but to meet these evolving demands, we need to go beyond testing.

\n

Incorporating the front-end developer's expertise into the design process and user testing can help create a product that not only meets the users' needs but also provides an engaging and satisfying experience.

\n

We must continue to push the boundaries, experiment with new technologies, and constantly seek ways to better understand and improve user engagement. Only by doing this can we hope to create products that users will love to use.

\n

Front-End Developers bring a valuable perspective to the product development process. Let's use it to its fullest potential to create engaging, user-friendly products. After all, the success of any product lies in the satisfaction of its users.

\n
\n

At the end, user engagement is not just about the single experience of a product but the entire journey. It's about creating an engaging, intuitive, and satisfying journey that users want to return to again and again. And Front-End Developers play a crucial role in crafting this journey.

\n

Remember, user testing is a part of the journey, not the destination. We must use all the tools at our disposal, and that includes leveraging the front-end development experience to truly understand and improve user engagement.

\n

Let's continue to build with the user in mind, always striving to enhance their journey, their experience, and ultimately, their engagement.

\n

Resources

\n", + "content_html": "

User testing is a crucial tool for gathering feedback on a product, but it's not enough to truly understand and improve user engagement. For the past 13 years, I have been building multi-language platforms for international brands and for a wide variety of users. Even in a space that constantly changes, where users have evolving needs, it's important to also acknowledge the role that experience plays in understanding them.

\n

\"\"

Photo by Marvin Meyer on Unsplash

\n

Being a Front-End Developer gave me and all my colleagues around the world a unique perspective on user experience. We understand how small design decisions can have a big impact on the user experience, and we have a deep understanding of how users interact with products. By leveraging our experience in front-end development, we can help create products that are not only effective but also enjoyable to use, leading to increased user satisfaction and loyalty.

\n

The limits of user testing

\n

User testing is a critical component of product development that can help identify usability issues and gather feedback from real users. By testing products with representative users, product teams can gain valuable insights in how users interact with their interfaces and what their pain points are. Whatever you use services like User Testing, or your own user testing directly with regular users, user testing also possess some limits that can’t be overlooked.

\n

For example, users may not always be able to articulate their needs and preferences accurately, or identify more obvious usability issues that sometimes are more subtle or hidden. User testing is also typically conducted in a controlled environment, which may not always accurately reflect real-wold usage scenarios.

\n

What about people that don’t use technology in a daily basis?

\n

Usually user testing is done by a certain user group or demographics and don’t include 100% of all users. From my point of view, user testing can’t be really complete without testing with people with disabilities. For people with experience in doing accessibility testing with real users, I’m sure you will agree that.

\n

User testing can lead to success or failure

\n

Through Internet history, user testing had lead to create successful products:

\n\n

But user testing can also fail to uncover critical usability issues which can contribute to the failure of some projects:

\n\n

Building a successful project is not an easy task, a lot of factors can influence the success or the failure of a new product. Nowadays, users have different needs. Users switch faster to competitor then before, we have daily examples of that.

\n

User testing is one tool in companies belt that should be used as often as possible, but shouldn’t be the only one.

\n

Leveraging Front-End experience

\n

Front-End Developers (FED) are not just coders. Usually seen as the ones that “just” integrate designs into HTML, CSS and JavaScript, their t-shape personalities is often times overlooked (not all FES have t-shape skills though).

\n

A FED can play a critical role in creating engaging user experiences.

\n

Collaboration and communication for better user engagement

\n

As I said in my previous article about Front-End Developers, Web and UX/UI Designers collaboration, collaboration and communication is key in building a successful product.

\n

This collaborative approach allows different perspectives to merge and create a more holistic vision of the product. As Front-End Developers, we have the unique position of working at the intersection of design and technology. We are often the ones who bring the designers' visions to life while ensuring that the product remains functional and user-friendly.

\n

Front-end development is about more than just making things look good. It's about creating a seamless and intuitive interface that guides users through a product. Every button, every transition, every piece of interactive content is a chance to engage users and keep them invested in the product.

\n

The Benefits of Leveraging Front-End Experience

\n

Front-end developers have a deep understanding of user behavior, as they are responsible for creating the interactive elements that users engage with. They can use this knowledge to create more engaging user interfaces and to guide user testing to focus on areas of the product that are most likely to affect user engagement.

\n

Beyond just implementing designs, a seasoned FED can provide insights and suggest improvements to the UX/UI designs based on their knowledge of what is technically feasible and what would create a smoother user journey. They can spot potential pitfalls in the designs that might be overlooked during user testing.

\n

For example, a developer might notice that a particular design element could cause issues on certain devices or browsers. They might also suggest an alternative way of implementing a feature that enhances the user's experience. I have been advocating about accessibility for years now. Last year, I became CPACC certified and I continue to advocate for accessibility in my daily work. Not everyone understand what web accessibility is and how it impacts users. It takes time and effort to educate people about it.

\n

The Future of User Engagement

\n

As technology advances, users' expectations also rise. They demand faster, smoother, and more intuitive interfaces. User testing will always be a vital tool for gathering feedback, but to meet these evolving demands, we need to go beyond testing.

\n

Incorporating the front-end developer's expertise into the design process and user testing can help create a product that not only meets the users' needs but also provides an engaging and satisfying experience.

\n

We must continue to push the boundaries, experiment with new technologies, and constantly seek ways to better understand and improve user engagement. Only by doing this can we hope to create products that users will love to use.

\n

Front-End Developers bring a valuable perspective to the product development process. Let's use it to its fullest potential to create engaging, user-friendly products. After all, the success of any product lies in the satisfaction of its users.

\n
\n

At the end, user engagement is not just about the single experience of a product but the entire journey. It's about creating an engaging, intuitive, and satisfying journey that users want to return to again and again. And Front-End Developers play a crucial role in crafting this journey.

\n

Remember, user testing is a part of the journey, not the destination. We must use all the tools at our disposal, and that includes leveraging the front-end development experience to truly understand and improve user engagement.

\n

Let's continue to build with the user in mind, always striving to enhance their journey, their experience, and ultimately, their engagement.

\n

Resources

\n", "url": "https://thedaviddias.dev/articles/beyond-user-testing-leveraging-frontend-experience", "title": "Beyond User Testing: Leveraging Frontend Experience", "summary": "For over a decade, I've been collaborating with web designers, and it's clear that we sometimes have differing perspectives. 'User testing' often takes center stage in decision-making, with the rich insights of frontend experience taking a backseat. But here's the thing - collaboration is pivotal. Recognizing the value that frontend developers bring is crucial for any team aiming to succeed in our fast-paced digital age.", @@ -136,7 +136,7 @@ }, { "id": "https://thedaviddias.dev/articles/how-front-end-developers-ui-ux-could-better-collaborate-together", - "content_html": "

The web has changed so much in the past 10 years. Technology has enabled new usages, new ways of communication, new ways of seeing the world. Web Design trends are also constantly changing, every year we see new trends that sometimes stick for few years, sometimes they don’t. The same happened in web development: we’ve seen new JavaScript frameworks, new ways to build components, new ways to code CSS, using pre or post-processors. The list is almost infinite. But something that has not changed is the need for collaboration between people working on the same web project.

\n

\"\"
Photo by Josh Calabrese on Unsplash

\n

As a Front-End Developer, I had the chance to work with numerous Web Designers and UX/UI designers over my career. No matter if I was in Brazil, France, Mauritius or Canada, I have observed the same challenges over and over again. And one unique solution doesn’t always apply to similar situations. You need to find what works best for you.

\n

In this article, I want to share some topics I believe should be discussed. From my point of view, we, as web professionals want the same thing: build accessible and performant products that will provide the best user experience possible.

\n

If you want your product to work, to get revenues, then you should start with the above goal first, not the other way around.

\n

But let’s start with some definitions.

\n

What is a Web Designer?

\n

\"\"
Photo by Eftakher Alam on Unsplash

\n

A lot of people could probably define what is a Web Designer better than I. But from my perspective, as a Front-End Developer, a Web Designer is someone with extensive skills in design that understands the constraints and the possibilities given by the web. I’ve seen a lot of really good “designers” but who were not always able to fully understand the “web” part of their title. Designing for the web is far from being straightforward. Be familiar with how to use Sketch or Figma is surely part of being a Web Designer, but it’s unfortunately not enough. And honestly, for me it’s totally fine: you learn as you progress.

\n

Probably, from my point of view, a Web Designers shouldn’t just rely on his knowledge and put pressure on himself to know everything about the web. That’s where a Front-End Developer can come into play. Front-End Developers are the ones that spend their time on the web, scrolling, studying code, finding new ways of building components… They are the perfect buddies of Web Designers, and both should be pairing regularly.

\n

What is a UX/UI Designer?

\n

\"\"
Photo by Kelly Sikkema on Unsplash

\n

A UX/UI Designer is someone where focus lays on users. Nothing should be more important than the user, the person, the human. A UX Designer needs to spend a lot of his time doing researches. I’ve always considered that a good UX/UI Designer should be passionate about people, what they want, how they want things… Of course, you also have the word “designer” in the title, because in the context we are talking about, a UX/UI Designer has the task to understand the user and also know what works the best in terms of UI. Something that works for a website dedicate to moms may not work for a website which main users are teens.

\n
\n

I’ve always considered that a good UX/UI Designer should be passionate about people, what they want, how they want things.

\n
\n

But he is not the only one who has developed an understanding of what users prefer and are used to when they browse the Internet. When a Front-End Developer wants to create a piece of code, a component, he usually dives into his structured memory of patterns. When someone says “button”, it triggers in his brain all the times (thousands of) he clicked on a button, but also snippets of CSS code that can be used to create a button or the long hours he spent analyzing CSS framework documentation…

\n

Front-End Developers can be a huge asset for any UX/UI Designer because they’ve learned so much about the web and usual patterns from a different perspective.

\n

What is a Front-End Developer?

\n

\"\"
Photo by Nubelson Fernandes on Unsplash

\n

I know a lot of people that could potentially disagree with my definition. For me, a Front-End Developer is a builder, someone that loves building web content using a combination of multiple skills. Because a Front-End Developer is not just a coder. To be a Front-End Developer you need to learn HTML, CSS, JavaScript but these are just the basics. You need to understand how to make a website accessible, how to use CSS to create an amazing layout, how to translate a design file to CSS, how to keep your application performant, how to build a UI/pattern library… the list is long but I’m sure you get my point.

\n

A Front-End Developer is the backbone of any web content. Without a Front-End Developer, the website couldn’t be created (even if you use a no-code generator, a Front-End Developer had to create the UI).

\n

Does that mean that a Front-End Developer is more important than other people in their team? Absolutely not, but his role requires him to be a facilitator, to understand what he can provide for the rest of his team.

\n

A Web Designer, UX/UI and Front-End Dev enter together in a bar…

\n

Now that we have a better idea of what these roles represent, how do we make them work together in a way that they feel empowered and enjoying the collaboration?

\n

It’s about mindset

\n

Any athlete will tell you that mindset is everything to achieve their goals, to win championships, to perform better. This is not that different when it’s about working as a team. Everyone’s mindset is important within a team. But it’s something that the group itself doesn’t have any control. Only individuals can decide to have an open mind, a true relationship with the other member of the team, visualize solutions instead of problems…

\n

We often forget that we all have a common goal. Sure, we can also have multiple goals for ourselves but if you are part of a team, it’s only to achieve a common goal.

\n

Differences are what make this specific group worth existing. EVERYONE has a role to play in any team.

\n

It’s about culture

\n

But it’s not only about individual mindsets. A team with a Web Designer, UX/UI and developers are usually part of a corporation. All over the world, numerous companies understand and value their culture. This is an essential part to guide employees towards common goals and achieve specific tasks.

\n

If companies provide the tools and the support to create trust and equality between the members of a team, then it makes it easier for people to collaborate together and learn from each other.

\n

It’s about ego

\n

Aaah the ego! Some people say that a bad reputation can hurt any company, I believe ego can hurt sometimes even more. The ego is one of the biggest enemies of any company, team or leadership group. I had the displeasure to work with 1–2 people during my career with a pretty big ego.

\n

I will always feel the pain these people have caused, it’s important to make peace with any related event but also with them. After all, we are all humans.

\n

Ego shouldn’t exist in a team. Period.

\n

It’s about collaboration

\n

Collaboration is knowing that people are better than you in certain areas. It’s knowing that you can learn from them. It’s knowing that you can also give something to them. Collaboration is finding the balance and putting everything and everyone at the center of the group.

\n

And no, collaboration is not something you implement once and it’s done, everything will always work perfectly. Collaboration is an equilibrist performance that could go wrong at any time. But you have to keep going because it’s so rewarding when you succeed!

\n

How to get your team to work together?

\n

Before giving you some answers, I want to tell you about two of the best experiences I had during my career with Web / UX / UI Designers.

\n

\"\"
Photo by Kaleidico on Unsplash

\n

My two best experiences with Designers

\n

My first best experience was in August 2014, in Cincinnati, USA. I’ve worked for a month with Barefoot Proximity to build a new platform. Julie Tran, which was leading the project in terms of design would create pieces of design, sent them to me for prototyping and we would discuss around that. What made the experience amazing was the level of exchange and collaboration.

\n

It wasn’t just about, “Hey, here is the design”, it would be more “hey, here is the design, can you do a quick prototype to see if that works. Let me know if you see any problems that may occur for mobile, accessibility etc…”.

\n

I was able to give my feedback based on my knowledge and experience, Julie would also push back when I would be hesitant to test a particular approach. Combining our visions, being open with each other was what made this project successful. Even with my English being pretty basic at this time, we both enjoyed our work and I kept only good memories from that collaboration.

\n

My second best experience was in 2015, with Julia Bruyneel, who was working in Paris as a Web/UX Designer freelancer. I was in Mauritius for a month and we had to collaborate for few weeks on new designs for an existing project.

\n

Even with the distance, and not knowing each other before, Julia would contact me and exchange about designs she would have made. That simple communication and regular exchange were reassuring for me (was lead on that project for 3 years) but also a manifestation of maturity and professionalism from Julia. It was short but I kept good memories of that collaboration.

\n

Mindset, culture and processes

\n

The three main keys, from my unique point of view, to have successful teams rely on mindset, culture and processes.

\n

\"\"
Mindset, culture and processes are the 3 keys for better collaboration

\n

Mindset: If you want to have people working together, in collaboration, using each other experience and vision, they need to have a similar mindset. I’m not saying an “identical mindset” or “same personalities”, I’m saying “similar mindset”. When everyone understands the goal of the team and is open to see each human behind his title, then you have more probabilities to have a successful team.

\n

Culture: Sometimes, having a similar mindset is not possible or challenging. In that case, is the responsibility of the structure or company to influence a specific mindset. Companies can decide who should be part of the “family”. That’s why the recruitment process is important.

\n

Processes: a lot of people I know, hate the word processes. For me, processes have always mean freedom. When you have a defined and clear process, you don’t have to stress or be hesitant or afraid. A process should exist to guide you in a process where people can predict what will come next. It’s reassuring to know that everyone has the same process in mind. Sometimes, when people's mindsets are not similar or the culture is lacking, processes should help people to visualize the direction they need to take.

\n

You could take these 3 points separated or combine them to maximize your chances to build successful teams.

\n

What Web / UX / UI Designers should know about Front-End Developers (letter dedicated to designers)?

\n
\n

“We love the web and we love being part of the creation process! We decided to become Front-End Developers because we love building! And it’s not just about converting designs to CSS, we love understanding the why, the how of the creation.\nAnd we understand that this may be scary at times because why the heck a Front-End Developer will tell a designer that his design is not accessible? Or tell the designers that he is not sure, this is gonna work for the user? It’s not about competing, it’s about putting energies in sync.\nThe problem sometimes is that we see patterns and code examples in our minds that we don’t always translate for other people to understand. But we’re working on that! I promise!\nWe have more to share than just our “title”, we have more to give than just lines of code. We are here to help!”

\n
\n

The main takeaways from this article

\n

If you are still reading, I hope you also share some common ideas exposed in this article. I have dedicated a portion of my career to try to be a facilitator and share all the knowledge I accumulated to build awesome products.

\n\n
\n

What about your experience? How do you like to work with others? What would you like to see happening more often within your team?

", + "content_html": "

The web has changed so much in the past 10 years. Technology has enabled new usages, new ways of communication, new ways of seeing the world. Web Design trends are also constantly changing, every year we see new trends that sometimes stick for few years, sometimes they don’t. The same happened in web development: we’ve seen new JavaScript frameworks, new ways to build components, new ways to code CSS, using pre or post-processors. The list is almost infinite. But something that has not changed is the need for collaboration between people working on the same web project.

\n

\"\"

Photo by Josh Calabrese on Unsplash

\n

As a Front-End Developer, I had the chance to work with numerous Web Designers and UX/UI designers over my career. No matter if I was in Brazil, France, Mauritius or Canada, I have observed the same challenges over and over again. And one unique solution doesn’t always apply to similar situations. You need to find what works best for you.

\n

In this article, I want to share some topics I believe should be discussed. From my point of view, we, as web professionals want the same thing: build accessible and performant products that will provide the best user experience possible.

\n

If you want your product to work, to get revenues, then you should start with the above goal first, not the other way around.

\n

But let’s start with some definitions.

\n

What is a Web Designer?

\n

\"\"

Photo by Eftakher Alam on Unsplash

\n

A lot of people could probably define what is a Web Designer better than I. But from my perspective, as a Front-End Developer, a Web Designer is someone with extensive skills in design that understands the constraints and the possibilities given by the web. I’ve seen a lot of really good “designers” but who were not always able to fully understand the “web” part of their title. Designing for the web is far from being straightforward. Be familiar with how to use Sketch or Figma is surely part of being a Web Designer, but it’s unfortunately not enough. And honestly, for me it’s totally fine: you learn as you progress.

\n

Probably, from my point of view, a Web Designers shouldn’t just rely on his knowledge and put pressure on himself to know everything about the web. That’s where a Front-End Developer can come into play. Front-End Developers are the ones that spend their time on the web, scrolling, studying code, finding new ways of building components… They are the perfect buddies of Web Designers, and both should be pairing regularly.

\n

What is a UX/UI Designer?

\n

\"\"

Photo by Kelly Sikkema on Unsplash

\n

A UX/UI Designer is someone where focus lays on users. Nothing should be more important than the user, the person, the human. A UX Designer needs to spend a lot of his time doing researches. I’ve always considered that a good UX/UI Designer should be passionate about people, what they want, how they want things… Of course, you also have the word “designer” in the title, because in the context we are talking about, a UX/UI Designer has the task to understand the user and also know what works the best in terms of UI. Something that works for a website dedicate to moms may not work for a website which main users are teens.

\n
\n

I’ve always considered that a good UX/UI Designer should be passionate about people, what they want, how they want things.

\n
\n

But he is not the only one who has developed an understanding of what users prefer and are used to when they browse the Internet. When a Front-End Developer wants to create a piece of code, a component, he usually dives into his structured memory of patterns. When someone says “button”, it triggers in his brain all the times (thousands of) he clicked on a button, but also snippets of CSS code that can be used to create a button or the long hours he spent analyzing CSS framework documentation…

\n

Front-End Developers can be a huge asset for any UX/UI Designer because they’ve learned so much about the web and usual patterns from a different perspective.

\n

What is a Front-End Developer?

\n

\"\"

Photo by Nubelson Fernandes on Unsplash

\n

I know a lot of people that could potentially disagree with my definition. For me, a Front-End Developer is a builder, someone that loves building web content using a combination of multiple skills. Because a Front-End Developer is not just a coder. To be a Front-End Developer you need to learn HTML, CSS, JavaScript but these are just the basics. You need to understand how to make a website accessible, how to use CSS to create an amazing layout, how to translate a design file to CSS, how to keep your application performant, how to build a UI/pattern library… the list is long but I’m sure you get my point.

\n

A Front-End Developer is the backbone of any web content. Without a Front-End Developer, the website couldn’t be created (even if you use a no-code generator, a Front-End Developer had to create the UI).

\n

Does that mean that a Front-End Developer is more important than other people in their team? Absolutely not, but his role requires him to be a facilitator, to understand what he can provide for the rest of his team.

\n

A Web Designer, UX/UI and Front-End Dev enter together in a bar…

\n

Now that we have a better idea of what these roles represent, how do we make them work together in a way that they feel empowered and enjoying the collaboration?

\n

It’s about mindset

\n

Any athlete will tell you that mindset is everything to achieve their goals, to win championships, to perform better. This is not that different when it’s about working as a team. Everyone’s mindset is important within a team. But it’s something that the group itself doesn’t have any control. Only individuals can decide to have an open mind, a true relationship with the other member of the team, visualize solutions instead of problems…

\n

We often forget that we all have a common goal. Sure, we can also have multiple goals for ourselves but if you are part of a team, it’s only to achieve a common goal.

\n

Differences are what make this specific group worth existing. EVERYONE has a role to play in any team.

\n

It’s about culture

\n

But it’s not only about individual mindsets. A team with a Web Designer, UX/UI and developers are usually part of a corporation. All over the world, numerous companies understand and value their culture. This is an essential part to guide employees towards common goals and achieve specific tasks.

\n

If companies provide the tools and the support to create trust and equality between the members of a team, then it makes it easier for people to collaborate together and learn from each other.

\n

It’s about ego

\n

Aaah the ego! Some people say that a bad reputation can hurt any company, I believe ego can hurt sometimes even more. The ego is one of the biggest enemies of any company, team or leadership group. I had the displeasure to work with 1–2 people during my career with a pretty big ego.

\n

I will always feel the pain these people have caused, it’s important to make peace with any related event but also with them. After all, we are all humans.

\n

Ego shouldn’t exist in a team. Period.

\n

It’s about collaboration

\n

Collaboration is knowing that people are better than you in certain areas. It’s knowing that you can learn from them. It’s knowing that you can also give something to them. Collaboration is finding the balance and putting everything and everyone at the center of the group.

\n

And no, collaboration is not something you implement once and it’s done, everything will always work perfectly. Collaboration is an equilibrist performance that could go wrong at any time. But you have to keep going because it’s so rewarding when you succeed!

\n

How to get your team to work together?

\n

Before giving you some answers, I want to tell you about two of the best experiences I had during my career with Web / UX / UI Designers.

\n

\"\"

Photo by Kaleidico on Unsplash

\n

My two best experiences with Designers

\n

My first best experience was in August 2014, in Cincinnati, USA. I’ve worked for a month with Barefoot Proximity to build a new platform. Julie Tran, which was leading the project in terms of design would create pieces of design, sent them to me for prototyping and we would discuss around that. What made the experience amazing was the level of exchange and collaboration.

\n

It wasn’t just about, “Hey, here is the design”, it would be more “hey, here is the design, can you do a quick prototype to see if that works. Let me know if you see any problems that may occur for mobile, accessibility etc…”.

\n

I was able to give my feedback based on my knowledge and experience, Julie would also push back when I would be hesitant to test a particular approach. Combining our visions, being open with each other was what made this project successful. Even with my English being pretty basic at this time, we both enjoyed our work and I kept only good memories from that collaboration.

\n

My second best experience was in 2015, with Julia Bruyneel, who was working in Paris as a Web/UX Designer freelancer. I was in Mauritius for a month and we had to collaborate for few weeks on new designs for an existing project.

\n

Even with the distance, and not knowing each other before, Julia would contact me and exchange about designs she would have made. That simple communication and regular exchange were reassuring for me (was lead on that project for 3 years) but also a manifestation of maturity and professionalism from Julia. It was short but I kept good memories of that collaboration.

\n

Mindset, culture and processes

\n

The three main keys, from my unique point of view, to have successful teams rely on mindset, culture and processes.

\n

\"\"

Mindset, culture and processes are the 3 keys for better collaboration

\n

Mindset: If you want to have people working together, in collaboration, using each other experience and vision, they need to have a similar mindset. I’m not saying an “identical mindset” or “same personalities”, I’m saying “similar mindset”. When everyone understands the goal of the team and is open to see each human behind his title, then you have more probabilities to have a successful team.

\n

Culture: Sometimes, having a similar mindset is not possible or challenging. In that case, is the responsibility of the structure or company to influence a specific mindset. Companies can decide who should be part of the “family”. That’s why the recruitment process is important.

\n

Processes: a lot of people I know, hate the word processes. For me, processes have always mean freedom. When you have a defined and clear process, you don’t have to stress or be hesitant or afraid. A process should exist to guide you in a process where people can predict what will come next. It’s reassuring to know that everyone has the same process in mind. Sometimes, when people's mindsets are not similar or the culture is lacking, processes should help people to visualize the direction they need to take.

\n

You could take these 3 points separated or combine them to maximize your chances to build successful teams.

\n

What Web / UX / UI Designers should know about Front-End Developers (letter dedicated to designers)?

\n
\n

“We love the web and we love being part of the creation process! We decided to become Front-End Developers because we love building! And it’s not just about converting designs to CSS, we love understanding the why, the how of the creation.\nAnd we understand that this may be scary at times because why the heck a Front-End Developer will tell a designer that his design is not accessible? Or tell the designers that he is not sure, this is gonna work for the user? It’s not about competing, it’s about putting energies in sync.\nThe problem sometimes is that we see patterns and code examples in our minds that we don’t always translate for other people to understand. But we’re working on that! I promise!\nWe have more to share than just our “title”, we have more to give than just lines of code. We are here to help!”

\n
\n

The main takeaways from this article

\n

If you are still reading, I hope you also share some common ideas exposed in this article. I have dedicated a portion of my career to try to be a facilitator and share all the knowledge I accumulated to build awesome products.

\n\n
\n

What about your experience? How do you like to work with others? What would you like to see happening more often within your team?

", "url": "https://thedaviddias.dev/articles/how-front-end-developers-ui-ux-could-better-collaborate-together", "title": "How Front-End Developers, Web and UX/UI Designers could better collaborate together?", "summary": "Collaboration between Developers and UX/UI Designers is essential to build a good product. With the right mindset, clear processes and an inclusive culture, everything is possible.", @@ -149,7 +149,7 @@ }, { "id": "https://thedaviddias.dev/articles/9-best-practices-ux-for-two-factor-authentification", - "content_html": "

In 2023 alone, cybercriminals will steal 33 billion records. It takes 196 days on average to identify a data breach. The cost of a data breach will reach $150 million by 2020...\nThese numbers may be scary but they are only previsions. Things could be much worse in the near future. Security has become a hot topic these last years, almost everyone on the planet has already heard about a company data breach or even a friend that lost his Facebook account because someone hacked it! No one is completely safe nowadays.\n

\"Photo

\n

I've recently spent multiple hours ensuring that all the accounts I possess use a unique password, complex and long with at least 20 characters and with the two-factor authentication (2FA) enable if present. I've discovered so many disparities between companies and so many issues in terms of features and user experience. I wanted to share with you in this article, what I believe are the best and recommended features for any website or company that takes the security of their users seriously.

\n

1. Offer two-factor authentication options

\n

That is the starting point.

\n

If you care about your users or customers, you should give them the choice to activate the two-factor authentication. On around 800 websites where I have an account, only 5% offer a 2FA option. Some may argue that if you don't have highly sensitive information, it may be overkill to offer the 2FA. But any personal information could be considered sensitive.

\n

If you care about your users and their security, give them the option to enable the 2FA. Period.

\n

2. Don't force the users to choose only one 2FA method

\n

Google, Facebook, Twitter... they all offer simultaneous ways for 2FA: text message, authentication app and security key. More commonly, at least in a text message and authentication app, the security key seems to be set up only on certain services.

\n

But I've been surprised to see Etsy, even they use toggles on their UI, to force you to only choose one of the options. I'm not even sure if it was originally designed to work like that.

\n

\"Screenshot
The two-factor options on Etsy

\n

Bit.ly and booking.com in other hand only allow you to use your phone as a 2FA device. So if you lose your phone and your email access, you could be screwed.

\n

\"Screenshot
The verification code view on Booking.com

\n

Mailchimp and Tumblr, on the contrary, only offer 2FA using an authentication app.

\n

Zapier has an awesome step by step 2FA setup, probably one of the best I found. They offer multiple complementary ways and specifically tell you "in the event you get locked out of your account and have lost both your authentication device and recovery codes". The user understands that providing his phone number is an additional way to ensure he/she can access his account in case he/she lost the other ways to connect to their web app.

\n

\"Screenshot
The two-factor set by step setup on Zapier

\n

3. Make the QR code an image

\n

I have been using 1Password for quite some time now and the modal that scans the QR code doesn't always find the QR code. In that case, I found myself drag and dropping the QR into that modal to be recognized. But it only works when the code is an image.

\n

I would recommend having it as a format image that can be saved / drag and dropped.

\n

Reddit for example don't have the QR code as an image. Fortunately, everyone offers the text version of the QR code that you can use in your authentication application.

\n

4. Keep the code you send by email in the same format as requested in your app or website

\n

This one only happened to me once. It happened with Instagram.

\n

When Instagram sends a "verification code" by SMS, they included a space. If you copy-paste that code where it's required, first the input doesn't want the space and the last digit is not included in your paste. It's an annoying issue that could be fixed easily!

\n

\"Instagram
Instagram verification SMS code

\n

5. Give the option to have recovery/backup codes

\n

Sounds weird when said at loud but a lot of websites don't offer backup/recovery codes when you enable the 2FA. This was a surprise for me at first, 2FA means you will always have backup codes in case you lost access to your phone, email or the app you use to generate the random number. Nowadays, some websites don't offer that option. I tend to be really careful with those.

\n

Kickstarter and WPEngine are examples of websites that don't offer you any recovery/backup codes. I hope they could improve that.

\n

\"The
The Kickstarter security modal

\n

6. Always give the option to download the recovery codes

\n

Most of the websites propose to copy the recovery codes. This is not the best option.

\n

It's nice to have it, sure, but it's not enough. I personally store all my recovery codes in multiple places: one is the vault from Dropbox. Having just to drag and paste a simple text file is easy and fast.

\n

If you offer only the option to copy, then you could be forcing the user to:

\n
    \n
  1. open the text editor
  2. \n
  3. paste the codes
  4. \n
  5. give a name
  6. \n
  7. save the file on your device
  8. \n
\n

Technology is there to save user's time.

\n

Slack for example allows you to "Print codes" but not download them. Why not? I have to generate a PDF instead of my simple text file. Not the best user experience.

\n

\"The
The Two-Factor Authentication Backup Codes modal on Slack

\n

7. In the recovery code text file, always write which platform these codes are coming from

\n

Even Facebook can make mistakes and this one is important for me. Currently, if you download the recovery codes from Facebook, you open the file and you can't find any mention of Facebook or the name of the account. The file name facebook_recovery_codes is helpful but in my opinion, not enough. The name of the account and the name of the platform should be a minimum.

\n

And to make it more useful, adding the date when the codes were generated could also be added.

\n

Google which is a good example, uses your username in the name of the file, and also adds:

\n
SAVE YOUR BACKUP CODES\nKeep these backup codes somewhere safe but accessible.\n\nLIST OF CODES\n\n(email@gmail.com)\n\n* You can only use each backup code once.\n* Need more? Visit https://g.co/2sv\n* These codes were generated on: Date, 2021.\n
\n

8. Allow the user to regenerate recovery/backup codes

\n

It's essential to give the user the ability to regenerate recovery codes. Some don't offer this useful option.

\n

9. Offer more than one code (maybe?)

\n

This one is less important but I still wanted to mention a key difference in terms of recovery/backup codes.

\n

Most of the companies only offer one code vs a list of multiples codes that can be used. It's hard for me to defend one approach vs the other one. I just know that I feel better when I have more than one code.

\n

About security keys

\n

Security keys are the less common way to secure your account. If you are a public figure or someone with a high level of responsibility, having a security key could give you a little bit more peace of mind. But for a normal user, it may be overkill. Nonetheless, I wanted to maximize the security of my accounts and recently bought the Titan Security Key from Google. The USB version works on any computer and I use the Bluetooth version in case I'm on my iPhone or iPad.

\n

\"The
The box of the Titan Security Keys by Google

\n

They both are not cheap, but security should be part of your "unlimited budget", the same as for food.

\n

Conclusion

\n

I'm not a security expert and have limited knowledge in terms of security. But as a Software Engineer and particularly a user, I believe we have a long way ahead until most of the platforms implement all the tools to ensure secure access for users.

\n

Recap:

\n
    \n
  1. Offer two-factor authentication options
  2. \n
  3. Don't force the users to choose only one 2FA method
  4. \n
  5. Make the QR code an image
  6. \n
  7. Keep the code you send by email in the same format as requested in your app or website
  8. \n
  9. Give the option to have recovery/backup codes
  10. \n
  11. Always give the option to download the recovery codes
  12. \n
  13. In the recovery code text file, always write which platform these codes are coming from
  14. \n
  15. Allow the user to regenerate recovery/backup codes
  16. \n
  17. Offer more than one code (maybe?)
  18. \n
\n

Thanks for reading, I hope these suggestions would help you to have a better UX and improve your 2FA implementation.

\n

Feel free to ask me anything in the comments below!

", + "content_html": "

In 2023 alone, cybercriminals will steal 33 billion records. It takes 196 days on average to identify a data breach. The cost of a data breach will reach $150 million by 2020...\nThese numbers may be scary but they are only previsions. Things could be much worse in the near future. Security has become a hot topic these last years, almost everyone on the planet has already heard about a company data breach or even a friend that lost his Facebook account because someone hacked it! No one is completely safe nowadays.\n\"Photo

\n

I've recently spent multiple hours ensuring that all the accounts I possess use a unique password, complex and long with at least 20 characters and with the two-factor authentication (2FA) enable if present. I've discovered so many disparities between companies and so many issues in terms of features and user experience. I wanted to share with you in this article, what I believe are the best and recommended features for any website or company that takes the security of their users seriously.

\n

1. Offer two-factor authentication options

\n

That is the starting point.

\n

If you care about your users or customers, you should give them the choice to activate the two-factor authentication. On around 800 websites where I have an account, only 5% offer a 2FA option. Some may argue that if you don't have highly sensitive information, it may be overkill to offer the 2FA. But any personal information could be considered sensitive.

\n

If you care about your users and their security, give them the option to enable the 2FA. Period.

\n

2. Don't force the users to choose only one 2FA method

\n

Google, Facebook, Twitter... they all offer simultaneous ways for 2FA: text message, authentication app and security key. More commonly, at least in a text message and authentication app, the security key seems to be set up only on certain services.

\n

But I've been surprised to see Etsy, even they use toggles on their UI, to force you to only choose one of the options. I'm not even sure if it was originally designed to work like that.

\n

\"Screenshot

The two-factor options on Etsy

\n

Bit.ly and booking.com in other hand only allow you to use your phone as a 2FA device. So if you lose your phone and your email access, you could be screwed.

\n

\"Screenshot

The verification code view on Booking.com

\n

Mailchimp and Tumblr, on the contrary, only offer 2FA using an authentication app.

\n

Zapier has an awesome step by step 2FA setup, probably one of the best I found. They offer multiple complementary ways and specifically tell you "in the event you get locked out of your account and have lost both your authentication device and recovery codes". The user understands that providing his phone number is an additional way to ensure he/she can access his account in case he/she lost the other ways to connect to their web app.

\n

\"Screenshot

The two-factor set by step setup on Zapier

\n

3. Make the QR code an image

\n

I have been using 1Password for quite some time now and the modal that scans the QR code doesn't always find the QR code. In that case, I found myself drag and dropping the QR into that modal to be recognized. But it only works when the code is an image.

\n

I would recommend having it as a format image that can be saved / drag and dropped.

\n

Reddit for example don't have the QR code as an image. Fortunately, everyone offers the text version of the QR code that you can use in your authentication application.

\n

4. Keep the code you send by email in the same format as requested in your app or website

\n

This one only happened to me once. It happened with Instagram.

\n

When Instagram sends a "verification code" by SMS, they included a space. If you copy-paste that code where it's required, first the input doesn't want the space and the last digit is not included in your paste. It's an annoying issue that could be fixed easily!

\n

\"Instagram

Instagram verification SMS code

\n

5. Give the option to have recovery/backup codes

\n

Sounds weird when said at loud but a lot of websites don't offer backup/recovery codes when you enable the 2FA. This was a surprise for me at first, 2FA means you will always have backup codes in case you lost access to your phone, email or the app you use to generate the random number. Nowadays, some websites don't offer that option. I tend to be really careful with those.

\n

Kickstarter and WPEngine are examples of websites that don't offer you any recovery/backup codes. I hope they could improve that.

\n

\"The

The Kickstarter security modal

\n

6. Always give the option to download the recovery codes

\n

Most of the websites propose to copy the recovery codes. This is not the best option.

\n

It's nice to have it, sure, but it's not enough. I personally store all my recovery codes in multiple places: one is the vault from Dropbox. Having just to drag and paste a simple text file is easy and fast.

\n

If you offer only the option to copy, then you could be forcing the user to:

\n
    \n
  1. open the text editor
  2. \n
  3. paste the codes
  4. \n
  5. give a name
  6. \n
  7. save the file on your device
  8. \n
\n

Technology is there to save user's time.

\n

Slack for example allows you to "Print codes" but not download them. Why not? I have to generate a PDF instead of my simple text file. Not the best user experience.

\n

\"The

The Two-Factor Authentication Backup Codes modal on Slack

\n

7. In the recovery code text file, always write which platform these codes are coming from

\n

Even Facebook can make mistakes and this one is important for me. Currently, if you download the recovery codes from Facebook, you open the file and you can't find any mention of Facebook or the name of the account. The file name facebook_recovery_codes is helpful but in my opinion, not enough. The name of the account and the name of the platform should be a minimum.

\n

And to make it more useful, adding the date when the codes were generated could also be added.

\n

Google which is a good example, uses your username in the name of the file, and also adds:

\n
SAVE YOUR BACKUP CODES\nKeep these backup codes somewhere safe but accessible.\n\nLIST OF CODES\n\n(email@gmail.com)\n\n* You can only use each backup code once.\n* Need more? Visit https://g.co/2sv\n* These codes were generated on: Date, 2021.\n
\n

8. Allow the user to regenerate recovery/backup codes

\n

It's essential to give the user the ability to regenerate recovery codes. Some don't offer this useful option.

\n

9. Offer more than one code (maybe?)

\n

This one is less important but I still wanted to mention a key difference in terms of recovery/backup codes.

\n

Most of the companies only offer one code vs a list of multiples codes that can be used. It's hard for me to defend one approach vs the other one. I just know that I feel better when I have more than one code.

\n

About security keys

\n

Security keys are the less common way to secure your account. If you are a public figure or someone with a high level of responsibility, having a security key could give you a little bit more peace of mind. But for a normal user, it may be overkill. Nonetheless, I wanted to maximize the security of my accounts and recently bought the Titan Security Key from Google. The USB version works on any computer and I use the Bluetooth version in case I'm on my iPhone or iPad.

\n

\"The

The box of the Titan Security Keys by Google

\n

They both are not cheap, but security should be part of your "unlimited budget", the same as for food.

\n

Conclusion

\n

I'm not a security expert and have limited knowledge in terms of security. But as a Software Engineer and particularly a user, I believe we have a long way ahead until most of the platforms implement all the tools to ensure secure access for users.

\n

Recap:

\n
    \n
  1. Offer two-factor authentication options
  2. \n
  3. Don't force the users to choose only one 2FA method
  4. \n
  5. Make the QR code an image
  6. \n
  7. Keep the code you send by email in the same format as requested in your app or website
  8. \n
  9. Give the option to have recovery/backup codes
  10. \n
  11. Always give the option to download the recovery codes
  12. \n
  13. In the recovery code text file, always write which platform these codes are coming from
  14. \n
  15. Allow the user to regenerate recovery/backup codes
  16. \n
  17. Offer more than one code (maybe?)
  18. \n
\n

Thanks for reading, I hope these suggestions would help you to have a better UX and improve your 2FA implementation.

\n

Feel free to ask me anything in the comments below!

", "url": "https://thedaviddias.dev/articles/9-best-practices-ux-for-two-factor-authentification", "title": "9 Best Practices & UX Improvements for the two-factor authentication (2FA)", "summary": "The best and recommended features for any website or company that takes the security of their users seriously.", @@ -162,7 +162,7 @@ }, { "id": "https://thedaviddias.dev/articles/how-to-deploy-your-nextjs-app-on-netlify-using-github-actions", - "content_html": "

I've recently spent some time working with Next.js projects. Once my projects are done, the next logical step is to deploy these apps to be accessible to the world.

\n

I have naturally used the Vercel platform, which couldn't be easier to use and deploy your application with ease. Then I tried AWS Amplify, which I particularly love but for now, requires you to use the Serverless Framework if you want to benefit from Server Side Rendering (SSR) capabilities.

\n

Then, I remembered that Netlify has added support for Next.js, including dynamic routes, Preview Mode and more around November 2020. It was time for me to try it! But I also wanted to have a real CI/CD in place, to test my code and do more actions before deploying to Netlify. That's where Github Actions came to the rescue!

\n

I'm going to describe in this article, all the steps you need to take to deploy your Next.js application on Netlify using Github Actions.

\n
\n

The full version of the project can be found on Github.

\n
\n

Create a new Next.js App and push it to Github

\n

As always, you need to have a recent version of Node and NPM installed on your machine. I personally recommend using NVM since it simplifies having multiple active Node.js versions.

\n

To create a new Next.js project, type this command in your CLI:

\n
npx create-next-app name-of-your-app\n\n# move into the app's root directory\ncd ~/path-to-projects/name-of-your-app/\n
\n

This will install a new application using a basic Next.js boilerplate. Don't forget to move to your app root folder before launching any next commands.

\n

Once your Next.js project is locally created, you can create a new project on Github and push the code generated.

\n

(For those you are new to coding, feel free to follow these steps to create a new repository on Github.)

\n

Setting up your Netlify project

\n

There are 2 ways of creating a new Netlify project:

\n\n

Let's use the CLI this time, I'm sure you already created a new project in the past using the Netlify interface.

\n

Let's start by installing netlify-cli globally:

\n
npm install netlify-cli -g\n
\n

Then check if the installation succeeds, confirming with this command:

\n
netlify\n
\n

Netlify account authentication

\n

Now you need to link your computer with your Netlify account. To authenticate with Netlify, you need to run this command:

\n
netlify login\n
\n

This will open a new tab in your browser where you'll need to "Authorize your Application" and then grant access to Netlify CLI.

\n

In case you already logged in previously, the console will output:

\n
Already logged in via netlify config on your machine\n
\n

Netlify project creation

\n

Now that your CLI is authorized to communicate with your Netlify account, it's time to programmatically create a new project:

\n
# create a new Netlify site using the Netlify shortcut: ntl\nntl init\n
\n

The first question you are asked is if you want to connect this directory to an existing Netlify site or create & configure a new site. Choose Create & configure a new site:

\n

\"Connect

\n

Then you have to choose your team:

\n

\"Question

\n

Choose the name of your application:

\n

\"Screenshot

\n

After entering the name of your project, the site is created and few URLs populated the CLI which gave you access to your admin URL, the URL of your site and the Site ID. Keep the site ID aside, you will need that number later on.

\n

For the next 3 questions (build, start and function), insert a space. We are not going to directly use the NPM scripts, our Github actions will later trigger each command.\n

\"Screenshot

\n

Finally, automatically create a netlify.toml file, which we will edit later. If your respond no, you can still create that file manually at the root of your project.

\n

\"Screenshot

\n

Once you provided an answer to all the questions, your terminal should look like this:

\n

\"Screenshot

\n

Updating our Netlify project

\n

It's now time to change some options on our Netlify project. Open directly your project on Netlify with this command:

\n
ntl open\n
\n

\"Screenshot

\n

You should see that our production deployment failed. You don't have to worry, this is totally normal. We need to disable our automatic build because our Github Actions will take care of it.

\n

Go in your Settings > Build & deploy. Click on Edit settings and Stop builds. Save.

\n

\"Screenshot

\n

Just below, go to the Deploy contexts section and select None for the Deploy previews.

\n

\"Screenshot

\n

Don't worry, like the build, we will create our preview URL using Github actions.

\n

Enable server-side rendering on Netlify

\n

If you have been using Next.js you are aware of the capability to do the server-side rendering. But usually, you will need to configure a Node server and that's something we don't want to have to deal with. Around October 2020, the Netlify team started working on next-on-netlify, a utility to enable SSR in Next.js on Netlify. That's what we are going to use here.

\n

(In case you are not interested in Github Actions and want to use Netlify to build your project, take a look at how to use the Next on Netlify Plugin. It directly wraps your Next.js app and doesn't need as much configuration as we are going to explain.)

\n

Let's start by installing our utility:

\n
npm install -D next-on-netlify\n
\n

Set Next.js target to serverless

\n

We must build our Next.js app as a serverless app

\n
module.exports = {\n  // Target must be serverless\n  target: "serverless",\n};\n
\n

Add a post build hook

\n

We need to add a postbuild command that is automatically triggered after our build command finishes. next-on-netlify does a lot of "magic" to copy and set up our Next.js app to be correctly hosted on Netlify.

\n
{\n  "name": "next-netlify-github-actions-starter",\n  "version": "0.1.0",\n  "private": true,\n  "scripts": {\n    "dev": "next dev",\n    "build": "next build",\n    "start": "next start",\n    "postbuild": "next-on-netlify"\n  },\n  ...\n}\n
\n

Configure Netlify

\n

Remember the file that was automatically created and called netlify.toml? You can remove all the boilerplate and replace it with only this code (be careful in respecting the indentation):

\n
[build]\n  command   = ""\n  functions = "out_functions"\n  publish   = "out_publish"\n
\n

Technically, when next-on-netlify will run, it will take what is in these folders and host it on Netlify. DO NOT CHANGE the name of these folders as these are hardcoded into the utility.

\n

Don't forget to add these line to your .gitignore file

\n
# Netlify build\nout_*\n
\n

You can commit your files. Let's work now on the Github Actions configuration.

\n

Github Actions configuration

\n

The netlify configuration is now done, all dependencies installed, it's time to configure our Github actions which will test, build and deploy our Next.js application to Netlify. But before that, we need to set up some Github secrets that we will need in our GH Actions.

\n

Go to your Github project > Settings > Secrets > New repository secret

\n

| Actions secret name | Comments |\n| -------------------- | ------------------------------------------------------------------------------------------- |\n| NETLIFY_AUTH_TOKEN | Request your token here |\n| NETLIFY_SITE_ID | The site to where deploy your site (get it from the API ID on your Site Settings) |

\n

\"Screenshot

\n

Create a new file called main.yml inside .github/workflows. Copy-paste the following code and read the explanation of it after this snippet.

\n
name: Main workflow\n\non:\n  pull_request:\n    branches:\n      - master\n      - main\n    types: [opened, synchronize, reopened]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n\n      # Cache node modules and next folder\n      - name: 📬 Caching\n        uses: actions/cache@v2\n        with:\n          path: |\n            **/node_modules\n            ${{ github.workspace }}/.next/cache\n          key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}\n\n      - name: Use Node.js 14.x\n        uses: actions/setup-node@v1\n        with:\n          node-version: 14.x\n\n      - name: 🧰 Install dependencies\n        run: npm run install\n\n      - name: 📦 Build project\n        run: npm run build --if-present\n\n      # - name: 🧹 Run lint\n      #   run: npm run lint\n\n      # - name: 🐛 Run tests\n      #   run: npm run test\n\n      # Deploy to Netlify with a personalized message\n      - name: 🚀 Deploy to Netlify\n        id: deploy-netlify\n        uses: netlify/actions/cli@master\n        env:\n          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}\n          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}\n        with:\n          args: deploy -m 'v${{ steps.package-version.outputs.current-version}} ・ ${{ github.head_ref }}'\n
\n

Detailed explanation of the main workflow file

\n
    \n
  1. Give a name to your Github action
  2. \n
  3. Choose which type of the event should trigger this action, you can use push instead of pull_request, it's up to you.
  4. \n
  5. Specify on which system this action should be launched, I choose the latest version of Ubuntu (Linux).
  6. \n
  7. Checkout your code
  8. \n
  9. Cache your node modules and the .next/cache folder. When you will first run this action, it will take some time. On the second launch, the action will take the modules that exist in the cache and will then proceed way faster.
  10. \n
  11. Specify the version of Node you want to use, in my case, I choose the most recent version of Node 14th.
  12. \n
  13. Install the dependencies of your project.
  14. \n
  15. Build your project. Remember that after the build, the post-build command will be launch. This is what you should see in the build logs in your Github Action tab:\n
    \"Screenshot
  16. \n
  17. I added lint and test commands, which I commented. You can use these to trigger ESLint, Jest (even Cypress) or any other plugin that ensures your code doesn't have any issue.
  18. \n
  19. Finally, we trigger the Netlify deployment to deploy our Next.js app to Netlify. 🎉
  20. \n
\n

\"Screenshot

\n

You may have seen an argument passed to the Netlify deploy:

\n
args: deploy -m 'v${{ steps.package-version.outputs.current-version}} ・ ${{ github.head_ref }}'\n
\n

This will add a message for each Deploy Preview, a way to keep track of which PR generated which Deploy.

\n

\"Screenshot

\n

On the same deploy page, you can click on the Deploy Preview and access your app using the preview URL.

\n

A better way would be to use another task to automatically populate your pull request with the log and preview URL. At the end of your file, add this action:

\n
# Publish the inspect and preview link to the PR\n- name: 👓 Netlify Preview URL\n  uses: unsplash/comment-on-pr@master\n  env:\n    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n    OUTPUT: "This pull request is being automatically deployed to Netlify.\\n\\n🔍 Inspect: ${{ steps.deploy-netlify.outputs.NETLIFY_LOGS_URL }}\\n✅ Preview: ${{ steps.deploy-netlify.outputs.NETLIFY_URL }}"\n  with:\n    msg: ${{ env.OUTPUT }}\n    check_for_duplicate_msg: false\n
\n

This will automatically create a comment in your PR.

\n

\"Screenshot

\n

Summary

\n

If you are still reading this, congrats! You have succeeded in deploying a fully enabled Next.JS application to Netlify using Github Actions!

\n

The next step for you now will be to add some linting rules and tests to ensure that you are sending to Netlify, an app that works perfectly!

\n

Feel free to download or fork the next-netlify-github-actions-starter, open an issue if you find any problem or send me any suggestion to make it better!

\n

Sources:

\n", + "content_html": "

I've recently spent some time working with Next.js projects. Once my projects are done, the next logical step is to deploy these apps to be accessible to the world.

\n

I have naturally used the Vercel platform, which couldn't be easier to use and deploy your application with ease. Then I tried AWS Amplify, which I particularly love but for now, requires you to use the Serverless Framework if you want to benefit from Server Side Rendering (SSR) capabilities.

\n

Then, I remembered that Netlify has added support for Next.js, including dynamic routes, Preview Mode and more around November 2020. It was time for me to try it! But I also wanted to have a real CI/CD in place, to test my code and do more actions before deploying to Netlify. That's where Github Actions came to the rescue!

\n

I'm going to describe in this article, all the steps you need to take to deploy your Next.js application on Netlify using Github Actions.

\n
\n

The full version of the project can be found on Github.

\n
\n

Create a new Next.js App and push it to Github

\n

As always, you need to have a recent version of Node and NPM installed on your machine. I personally recommend using NVM since it simplifies having multiple active Node.js versions.

\n

To create a new Next.js project, type this command in your CLI:

\n
npx create-next-app name-of-your-app\n\n# move into the app's root directory\ncd ~/path-to-projects/name-of-your-app/\n
\n

This will install a new application using a basic Next.js boilerplate. Don't forget to move to your app root folder before launching any next commands.

\n

Once your Next.js project is locally created, you can create a new project on Github and push the code generated.

\n

(For those you are new to coding, feel free to follow these steps to create a new repository on Github.)

\n

Setting up your Netlify project

\n

There are 2 ways of creating a new Netlify project:

\n\n

Let's use the CLI this time, I'm sure you already created a new project in the past using the Netlify interface.

\n

Let's start by installing netlify-cli globally:

\n
npm install netlify-cli -g\n
\n

Then check if the installation succeeds, confirming with this command:

\n
netlify\n
\n

Netlify account authentication

\n

Now you need to link your computer with your Netlify account. To authenticate with Netlify, you need to run this command:

\n
netlify login\n
\n

This will open a new tab in your browser where you'll need to "Authorize your Application" and then grant access to Netlify CLI.

\n

In case you already logged in previously, the console will output:

\n
Already logged in via netlify config on your machine\n
\n

Netlify project creation

\n

Now that your CLI is authorized to communicate with your Netlify account, it's time to programmatically create a new project:

\n
# create a new Netlify site using the Netlify shortcut: ntl\nntl init\n
\n

The first question you are asked is if you want to connect this directory to an existing Netlify site or create & configure a new site. Choose Create & configure a new site:

\n

\"Connect

\n

Then you have to choose your team:

\n

\"Question

\n

Choose the name of your application:

\n

\"Screenshot

\n

After entering the name of your project, the site is created and few URLs populated the CLI which gave you access to your admin URL, the URL of your site and the Site ID. Keep the site ID aside, you will need that number later on.

\n

For the next 3 questions (build, start and function), insert a space. We are not going to directly use the NPM scripts, our Github actions will later trigger each command.\n\"Screenshot

\n

Finally, automatically create a netlify.toml file, which we will edit later. If your respond no, you can still create that file manually at the root of your project.

\n

\"Screenshot

\n

Once you provided an answer to all the questions, your terminal should look like this:

\n

\"Screenshot

\n

Updating our Netlify project

\n

It's now time to change some options on our Netlify project. Open directly your project on Netlify with this command:

\n
ntl open\n
\n

\"Screenshot

\n

You should see that our production deployment failed. You don't have to worry, this is totally normal. We need to disable our automatic build because our Github Actions will take care of it.

\n

Go in your Settings > Build & deploy. Click on Edit settings and Stop builds. Save.

\n

\"Screenshot

\n

Just below, go to the Deploy contexts section and select None for the Deploy previews.

\n

\"Screenshot

\n

Don't worry, like the build, we will create our preview URL using Github actions.

\n

Enable server-side rendering on Netlify

\n

If you have been using Next.js you are aware of the capability to do the server-side rendering. But usually, you will need to configure a Node server and that's something we don't want to have to deal with. Around October 2020, the Netlify team started working on next-on-netlify, a utility to enable SSR in Next.js on Netlify. That's what we are going to use here.

\n

(In case you are not interested in Github Actions and want to use Netlify to build your project, take a look at how to use the Next on Netlify Plugin. It directly wraps your Next.js app and doesn't need as much configuration as we are going to explain.)

\n

Let's start by installing our utility:

\n
npm install -D next-on-netlify\n
\n

Set Next.js target to serverless

\n

We must build our Next.js app as a serverless app

\n
module.exports = {\n  // Target must be serverless\n  target: "serverless",\n};\n
\n

Add a post build hook

\n

We need to add a postbuild command that is automatically triggered after our build command finishes. next-on-netlify does a lot of "magic" to copy and set up our Next.js app to be correctly hosted on Netlify.

\n
{\n  "name": "next-netlify-github-actions-starter",\n  "version": "0.1.0",\n  "private": true,\n  "scripts": {\n    "dev": "next dev",\n    "build": "next build",\n    "start": "next start",\n    "postbuild": "next-on-netlify"\n  },\n  ...\n}\n
\n

Configure Netlify

\n

Remember the file that was automatically created and called netlify.toml? You can remove all the boilerplate and replace it with only this code (be careful in respecting the indentation):

\n
[build]\n  command   = ""\n  functions = "out_functions"\n  publish   = "out_publish"\n
\n

Technically, when next-on-netlify will run, it will take what is in these folders and host it on Netlify. DO NOT CHANGE the name of these folders as these are hardcoded into the utility.

\n

Don't forget to add these line to your .gitignore file

\n
# Netlify build\nout_*\n
\n

You can commit your files. Let's work now on the Github Actions configuration.

\n

Github Actions configuration

\n

The netlify configuration is now done, all dependencies installed, it's time to configure our Github actions which will test, build and deploy our Next.js application to Netlify. But before that, we need to set up some Github secrets that we will need in our GH Actions.

\n

Go to your Github project > Settings > Secrets > New repository secret

\n

| Actions secret name | Comments |\n| -------------------- | -------------------------------------------------------------------------------------- |\n| NETLIFY_AUTH_TOKEN | Request your token |\n| NETLIFY_SITE_ID | The site to where deploy your site (get it from the API ID on your Site Settings) |

\n

\"Screenshot

\n

Create a new file called main.yml inside .github/workflows. Copy-paste the following code and read the explanation of it after this snippet.

\n
name: Main workflow\n\non:\n  pull_request:\n    branches:\n      - master\n      - main\n    types: [opened, synchronize, reopened]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n\n      # Cache node modules and next folder\n      - name: 📬 Caching\n        uses: actions/cache@v2\n        with:\n          path: |\n            **/node_modules\n            ${{ github.workspace }}/.next/cache\n          key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}\n\n      - name: Use Node.js 14.x\n        uses: actions/setup-node@v1\n        with:\n          node-version: 14.x\n\n      - name: 🧰 Install dependencies\n        run: npm run install\n\n      - name: 📦 Build project\n        run: npm run build --if-present\n\n      # - name: 🧹 Run lint\n      #   run: npm run lint\n\n      # - name: 🐛 Run tests\n      #   run: npm run test\n\n      # Deploy to Netlify with a personalized message\n      - name: 🚀 Deploy to Netlify\n        id: deploy-netlify\n        uses: netlify/actions/cli@master\n        env:\n          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}\n          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}\n        with:\n          args: deploy -m 'v${{ steps.package-version.outputs.current-version}} ・ ${{ github.head_ref }}'\n
\n

Detailed explanation of the main workflow file

\n
    \n
  1. Give a name to your Github action
  2. \n
  3. Choose which type of the event should trigger this action, you can use push instead of pull_request, it's up to you.
  4. \n
  5. Specify on which system this action should be launched, I choose the latest version of Ubuntu (Linux).
  6. \n
  7. Checkout your code
  8. \n
  9. Cache your node modules and the .next/cache folder. When you will first run this action, it will take some time. On the second launch, the action will take the modules that exist in the cache and will then proceed way faster.
  10. \n
  11. Specify the version of Node you want to use, in my case, I choose the most recent version of Node 14th.
  12. \n
  13. Install the dependencies of your project.
  14. \n
  15. Build your project. Remember that after the build, the post-build command will be launch. This is what you should see in the build logs in your Github Action tab:\n\"Screenshot
  16. \n
  17. I added lint and test commands, which I commented. You can use these to trigger ESLint, Jest (even Cypress) or any other plugin that ensures your code doesn't have any issue.
  18. \n
  19. Finally, we trigger the Netlify deployment to deploy our Next.js app to Netlify. 🎉
  20. \n
\n

\"Screenshot

\n

You may have seen an argument passed to the Netlify deploy:

\n
args: deploy -m 'v${{ steps.package-version.outputs.current-version}} ・ ${{ github.head_ref }}'\n
\n

This will add a message for each Deploy Preview, a way to keep track of which PR generated which Deploy.

\n

\"Screenshot

\n

On the same deploy page, you can click on the Deploy Preview and access your app using the preview URL.

\n

A better way would be to use another task to automatically populate your pull request with the log and preview URL. At the end of your file, add this action:

\n
# Publish the inspect and preview link to the PR\n- name: 👓 Netlify Preview URL\n  uses: unsplash/comment-on-pr@master\n  env:\n    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n    OUTPUT: "This pull request is being automatically deployed to Netlify.\\n\\n🔍 Inspect: ${{ steps.deploy-netlify.outputs.NETLIFY_LOGS_URL }}\\n✅ Preview: ${{ steps.deploy-netlify.outputs.NETLIFY_URL }}"\n  with:\n    msg: ${{ env.OUTPUT }}\n    check_for_duplicate_msg: false\n
\n

This will automatically create a comment in your PR.

\n

\"Screenshot

\n

Summary

\n

If you are still reading this, congrats! You have succeeded in deploying a fully enabled Next.JS application to Netlify using Github Actions!

\n

The next step for you now will be to add some linting rules and tests to ensure that you are sending to Netlify, an app that works perfectly!

\n

Feel free to download or fork the next-netlify-github-actions-starter, open an issue if you find any problem or send me any suggestion to make it better!

\n

Sources:

\n", "url": "https://thedaviddias.dev/articles/how-to-deploy-your-nextjs-app-on-netlify-using-github-actions", "title": "How to deploy your Next.js app on Netlify using Github Actions", "summary": "Are you interested in Next.js and how to deploy your app to Netlify using Github Actions? Take a look at how Netlify allows you for free, to deploy your app with Server Side Rendering capabilities and more!.", @@ -175,7 +175,7 @@ }, { "id": "https://thedaviddias.dev/articles/you-have-something-in-you-the-world-needs", - "content_html": "

I’m not a psychologist or either a student in psychology. I spent a good amount of time in my life reading personal development books but in the end, I’m just a Front-End Web developer, who writes code. I had the chance to live in different countries and created real and profound relationships with people with different cultures, different colors, different ages, different religions, different visions of the world… I couldn’t imagine my life without all these persons and what they brought to my existence.

\n

\"A
Photo by Ben White on Unsplash

\n

Talking and sharing life’s moments with all these people made me realized something you may know already: most of the human beings struggle in being happy and spend most of their lives, living in their past and acting or not acting based on numerous fears. Fear and past are the two biggest challenges that every human in history had to face.

\n

Fear kills

\n

Fear is more than just a word or a feeling you experimented watching horror movies. Fear is just the most powerful weapon that, in 2019, is killing more than any other weapon in the world.

\n

Fear does not just kill physically people, fear kills creativity, originality, growth, relationships, marriages, ideas, will, happiness… Fear makes you feel bad at work because you think you don’t know enough, it pushes you to fail at the University: fear to not be good enough, fear to fail another relationship, fear to talk too much, fear to not talk enough, fear to be judged, fear to be invisible, fear to be different, fear to not be understood…

\n

With all the social media platforms, we try to connect people, reduce the friction in creating new possible relationships, and it works. We have so many incredible situations, made possible thanks to all these platforms out there. But I don’t think it’s really enough to make people fearless. You can be a movie star, or a famous singer, at the end of the day, your memories, your past is there. You can’t really push the button rewind or delete. All of us need to learn to live with our past, our mistakes. And that’s probably one of the most complicated parts of being human.

\n

Take 2 minutes to analyze your day until now: I doubt you didn’t find any trace of fear pushing you to act or say something you didn’t really want to.

\n

We can only accept our pasts

\n

We can’t do anything to change our past, including yesterday. We can try to forget or think that we are not attached to it, and yes, you are right, our pasts don’t define who we are. But our pasts mold our personality and our beliefs, and beliefs are something so hard to change sometimes.\nWe can battle a whole life and try to change our pasts, but you know and I know that it’s a waste of time. Our pasts are all painful, we all have moments we would like to forget, people that make us feel bad, people that hurt us, friends, parents, that disappointed us, love relationships that created a hole in our heart… Fortunately, not physically.

\n

So what are our options? Actually, do we have options? Maybe we have an easy option. And if we tried to choose the one the majority chooses? That would work? I don’t think I have an answer that would make you feel happy. The only answer that I can think of, is that accepting our past, whatever happened, whatever you lived is probably the only way to live our present and feel that joy that exists in every little thing around you.

\n

I know what you may think: “Easy to say, hard to do”. Does anyone told you in your entire life: “Things are easy!”? Just ask you the question. Why most of us want something easy instead of something true. What happened in the history of humanity to make us believe that life equal easy or hard? Why can’t we just say that things are how they should be, and we need to choose the way we want to react when we are facing them? The way we choose to react and act is what matters.

\n

Creating a barrier will never be the option

\n

When someone out there, our neighbor, a president, a friend decide to create a wall in their garden or between countries, we all think and believe that it is not a solution or even an option. But how many times, did we create a mental barrier between us and the world? How many times, did we get nervous because we don’t have full control over our life’s events? How many times, did we get angry because our child felt and instead of showing him love, we yell at him because we were afraid it could hurt himself? Afraid that next time, he could fall being alone? It’s easier to hide that fear behind that attitude than accepts and embrace that uncomfortable feeling of fear and react with love.

\n

\"A
Photo by Matthew Garoffolo on Unsplash

\n

Maybe things in your life, made you create layers. Layers of protection to “help you face life’s challenge”. Really? Are you feeling happiest since you closed some doors and people think you are a negative person? Is the world a better place because you hide your feelings and you are not able to cry anymore? I don’t think so.

\n

I wish I could have multiple lives (some people believe in it), but the one we all have is the one we are currently living. And we usually don’t regret things we did, but things we were not able to achieve and to do, like be open to our wife or husband, show to our kids that we are not perfect and that we made mistakes sometimes.

\n

You can’t talk about life

\n

In some cultures, some places in the world, you can’t really talk about fear and past. You can’t talk about the struggle you have in your life. A lot of people across history tried their best to remove some humanity in some cultures and who really wants to defeat centuries of culture which forces you to not be yourself? Things are not equaled in the world, but it’s not a reason to not try.

\n

What makes people think they can’t talk about their issues, once again, fear is probably behind that for most cases.

\n

\"Woman
Photo by Niklas Hamann on Unsplash

\n

Sometimes I’m not sure why, in a work environment, people can’t say “I don’t know, I’m not sure, I’m having doubts lately…” Is an issue to be human nowadays? Because I feel, I can’t work? Because I’m not sure, I will not be a good employee? Of course, a company is a place for you to work, help a company to grow and get more value in the market but is it not a place where humans live, breath and share emotions and moments?

\n

I met many people around the world that were themselves at home, but could never be themselves at work. Look at your right… yeah, you found him/her!

\n

What are you waiting for?

\n

Things are going fast, technologies like cryptocurrency, AI, VR, autonomous cars, all of that is changing and is going to change our worlds. But in the end, fears, layers, will always be there, and one day, a lot more people will have to seek help if they want to be free from all of that. Life will always be what it is, but all of us can improve other’s lives, being there when they need, sending a small message asking if everything is fine. We don’t really need to make big efforts to help our world to feel better. Believing that you can do a lot for the people around you is the first step.

\n

Right now, maybe a friend is waiting to receive a message from you. A signal to make him feel he is not alone. Have someone that can reassure him that his/her past will not define his/her tomorrow.

\n

…What are you really waiting for? 📲

\n

Disclaimer: I usually write articles about code, immigration, and tech, but a lot of my friends are lately facing the same issues, and even I try my best to help them, it’s also up to them to take action and choose the life they really want. This article is a way to hopefully help other people that may be facing the same issues in their lives. Let me a comment if you find this article relevant for your life!

", + "content_html": "

I’m not a psychologist or either a student in psychology. I spent a good amount of time in my life reading personal development books but in the end, I’m just a Front-End Web developer, who writes code. I had the chance to live in different countries and created real and profound relationships with people with different cultures, different colors, different ages, different religions, different visions of the world… I couldn’t imagine my life without all these persons and what they brought to my existence.

\n

\"A

Photo by Ben White on Unsplash

\n

Talking and sharing life’s moments with all these people made me realized something you may know already: most of the human beings struggle in being happy and spend most of their lives, living in their past and acting or not acting based on numerous fears. Fear and past are the two biggest challenges that every human in history had to face.

\n

Fear kills

\n

Fear is more than just a word or a feeling you experimented watching horror movies. Fear is just the most powerful weapon that, in 2019, is killing more than any other weapon in the world.

\n

Fear does not just kill physically people, fear kills creativity, originality, growth, relationships, marriages, ideas, will, happiness… Fear makes you feel bad at work because you think you don’t know enough, it pushes you to fail at the University: fear to not be good enough, fear to fail another relationship, fear to talk too much, fear to not talk enough, fear to be judged, fear to be invisible, fear to be different, fear to not be understood…

\n

With all the social media platforms, we try to connect people, reduce the friction in creating new possible relationships, and it works. We have so many incredible situations, made possible thanks to all these platforms out there. But I don’t think it’s really enough to make people fearless. You can be a movie star, or a famous singer, at the end of the day, your memories, your past is there. You can’t really push the button rewind or delete. All of us need to learn to live with our past, our mistakes. And that’s probably one of the most complicated parts of being human.

\n

Take 2 minutes to analyze your day until now: I doubt you didn’t find any trace of fear pushing you to act or say something you didn’t really want to.

\n

We can only accept our pasts

\n

We can’t do anything to change our past, including yesterday. We can try to forget or think that we are not attached to it, and yes, you are right, our pasts don’t define who we are. But our pasts mold our personality and our beliefs, and beliefs are something so hard to change sometimes.\nWe can battle a whole life and try to change our pasts, but you know and I know that it’s a waste of time. Our pasts are all painful, we all have moments we would like to forget, people that make us feel bad, people that hurt us, friends, parents, that disappointed us, love relationships that created a hole in our heart… Fortunately, not physically.

\n

So what are our options? Actually, do we have options? Maybe we have an easy option. And if we tried to choose the one the majority chooses? That would work? I don’t think I have an answer that would make you feel happy. The only answer that I can think of, is that accepting our past, whatever happened, whatever you lived is probably the only way to live our present and feel that joy that exists in every little thing around you.

\n

I know what you may think: “Easy to say, hard to do”. Does anyone told you in your entire life: “Things are easy!”? Just ask you the question. Why most of us want something easy instead of something true. What happened in the history of humanity to make us believe that life equal easy or hard? Why can’t we just say that things are how they should be, and we need to choose the way we want to react when we are facing them? The way we choose to react and act is what matters.

\n

Creating a barrier will never be the option

\n

When someone out there, our neighbor, a president, a friend decide to create a wall in their garden or between countries, we all think and believe that it is not a solution or even an option. But how many times, did we create a mental barrier between us and the world? How many times, did we get nervous because we don’t have full control over our life’s events? How many times, did we get angry because our child felt and instead of showing him love, we yell at him because we were afraid it could hurt himself? Afraid that next time, he could fall being alone? It’s easier to hide that fear behind that attitude than accepts and embrace that uncomfortable feeling of fear and react with love.

\n

\"A

Photo by Matthew Garoffolo on Unsplash

\n

Maybe things in your life, made you create layers. Layers of protection to “help you face life’s challenge”. Really? Are you feeling happiest since you closed some doors and people think you are a negative person? Is the world a better place because you hide your feelings and you are not able to cry anymore? I don’t think so.

\n

I wish I could have multiple lives (some people believe in it), but the one we all have is the one we are currently living. And we usually don’t regret things we did, but things we were not able to achieve and to do, like be open to our wife or husband, show to our kids that we are not perfect and that we made mistakes sometimes.

\n

You can’t talk about life

\n

In some cultures, some places in the world, you can’t really talk about fear and past. You can’t talk about the struggle you have in your life. A lot of people across history tried their best to remove some humanity in some cultures and who really wants to defeat centuries of culture which forces you to not be yourself? Things are not equaled in the world, but it’s not a reason to not try.

\n

What makes people think they can’t talk about their issues, once again, fear is probably behind that for most cases.

\n

\"Woman

Photo by Niklas Hamann on Unsplash

\n

Sometimes I’m not sure why, in a work environment, people can’t say “I don’t know, I’m not sure, I’m having doubts lately…” Is an issue to be human nowadays? Because I feel, I can’t work? Because I’m not sure, I will not be a good employee? Of course, a company is a place for you to work, help a company to grow and get more value in the market but is it not a place where humans live, breath and share emotions and moments?

\n

I met many people around the world that were themselves at home, but could never be themselves at work. Look at your right… yeah, you found him/her!

\n

What are you waiting for?

\n

Things are going fast, technologies like cryptocurrency, AI, VR, autonomous cars, all of that is changing and is going to change our worlds. But in the end, fears, layers, will always be there, and one day, a lot more people will have to seek help if they want to be free from all of that. Life will always be what it is, but all of us can improve other’s lives, being there when they need, sending a small message asking if everything is fine. We don’t really need to make big efforts to help our world to feel better. Believing that you can do a lot for the people around you is the first step.

\n

Right now, maybe a friend is waiting to receive a message from you. A signal to make him feel he is not alone. Have someone that can reassure him that his/her past will not define his/her tomorrow.

\n

…What are you really waiting for? 📲

\n

Disclaimer: I usually write articles about code, immigration, and tech, but a lot of my friends are lately facing the same issues, and even I try my best to help them, it’s also up to them to take action and choose the life they really want. This article is a way to hopefully help other people that may be facing the same issues in their lives. Let me a comment if you find this article relevant for your life!

", "url": "https://thedaviddias.dev/articles/you-have-something-in-you-the-world-needs", "title": "You have something in YOU that the world needs", "summary": "Sometimes the only thing you need to remember is that you are not alone in this world.", @@ -188,7 +188,7 @@ }, { "id": "https://thedaviddias.dev/articles/front-end-performance-checklist-speeds-up-web-developments", - "content_html": "

Performance is a huge subject, but it's not always a "back-end" or an "admin" subject: it's a Front-End responsibility too. The Front-End Performance Checklist is an exhaustive list of elements you should check or at least be aware of, as a Front-End developer and apply to your project (personal and professional).

\n

How to use?

\n

For each rule, you will have a paragraph explaining why this rule is important and how you can fix it. For more deep information, you should find links that will point to 🛠 tools, 📖 articles or 📹 medias that can complete the checklist.

\n

All items in the Front-End Performance Checklist are essentials to achieve the highest performance score but you would find an indicator to help you to eventually prioritised some rules amount others. There are 3 levels of priority:

\n\n

Performance tools

\n

List of the tools you can use to test or monitor your website or application:

\n\n

References

\n\n
\n

HTML

\n\n

CSS

\n\n

Fonts

\n

![fonts]

\n\n

Images

\n\n

JavaScript

\n\n

Server

\n\n
\n

Performances and JS Frameworks

\n

Angular

\n\n

React

\n\n

Vue

\n\n

Performances and CMS

\n

WordPress

\n\n

Articles

\n\n

Plugins recommended

\n\n
\n

Translations

\n

The Front-End Performance Checklist wants to also be available in other languages! Don't hesitate to submit your contribution!

\n", + "content_html": "

Performance is a huge subject, but it's not always a "back-end" or an "admin" subject: it's a Front-End responsibility too. The Front-End Performance Checklist is an exhaustive list of elements you should check or at least be aware of, as a Front-End developer and apply to your project (personal and professional).

\n

How to use?

\n

For each rule, you will have a paragraph explaining why this rule is important and how you can fix it. For more deep information, you should find links that will point to 🛠 tools, 📖 articles or 📹 medias that can complete the checklist.

\n

All items in the Front-End Performance Checklist are essentials to achieve the highest performance score but you would find an indicator to help you to eventually prioritised some rules amount others. There are 3 levels of priority:

\n\n

Performance tools

\n

List of the tools you can use to test or monitor your website or application:

\n\n

References

\n\n
\n

HTML

\n\n

CSS

\n\n

Fonts

\n

![fonts]

\n\n

Images

\n\n

JavaScript

\n\n

Server

\n\n
\n

Performances and JS Frameworks

\n

Angular

\n\n

React

\n\n

Vue

\n\n

Performances and CMS

\n

WordPress

\n\n

Articles

\n\n

Plugins recommended

\n\n
\n

Translations

\n

The Front-End Performance Checklist wants to also be available in other languages! Don't hesitate to submit your contribution!

\n", "url": "https://thedaviddias.dev/articles/front-end-performance-checklist-speeds-up-web-developments", "title": "The Front-End Performance Checklist speeds up your web developments", "summary": "An exhaustive list of all the elements that will speed up your current web developments and offer the best user experience.", @@ -201,7 +201,7 @@ }, { "id": "https://thedaviddias.dev/articles/learned-presenting-side-project-europe", - "content_html": "

In October 2017, I launched my first open-source project on Github: the Front-End Checklist. In few hours, the project gained international visibility. After that, for a number of weeks, I had an incredible journey with many people around the world. I recently started giving talks in local communities around Spain and Portugal about the project, and I plan to check out France later on.

\n

Doing these presentations gave me a different perspective and vision about the worldwide communities who organize meetups regularly. I discovered that there were an huge number of people who were looking for more and more content and wanted to participate in local communities.

\n

After initiating the Front-End Dev Mauritius community, I know how complicated it can be to find people willing to share their experiences about Front-End Development. And for some, such as those who recently have moved from another city or country, having a welcoming tech community is important to getting setting up.\nI wanted to share with you some of the things I learned before, during, and after these meetups I participated in throughout Europe. And I want to encourage you to participate more in local events no matter where you are today.

\n

Don’t give up!

\n

\"Map
Barcelona, Madrid and Porto

\n

Knowing that I would be on "holidays" for a few weeks in France, Spain, and Portugal I decided to try contacting local groups in Barcelona, Madrid, Lisbon, Aveiro, and Porto. I sent messages directly to the founders of local groups using Meetup.com, or contacted them via Twitter when they had specified their account on their profile. But, as I was expecting, I didn’t receive a lot of replies at first.

\n

In Barcelona however, Bettina from Ignit, who managed the “Barcelona Front-End Development Meetup”, answered me really quickly. We decided, after some email exchanges and a phone call, to have a meetup on 14 March about my project.

\n

In Madrid, the “Front-end Developers Madrid” organizers never answered me. But Juan Macias, a teacher’s assistant at “Ironhack Madrid,” did everything to help me setup a talk, which I gave on 16 March.

\n

In Lisbon, Shannon Graybill from “Lisbon Le Wagon” showed a lot of interest in having me do a presentation. But we lost touch after we tried to call each other few times without setting a time. Besides, I decided not to present in Lisboa, but instead tried to do something in Porto (easier for me, as I was in Aveiro for two weeks).\nThen in Porto I contacted Ricardo Mendes, who usually organizes “Porto Codes”. After few messages and emails, we decide to organize a talk on 5 April at Porto.io, at a coworking space in the middle of the city.

\n

\"Event

\n

Know your audience

\n

One of the first rules I learned about giving a talk or a presentation was to “know your audience.” That is maybe the most challenging but nonetheless important rule you need to have in mind.\nA few days before each talk, I went through all the profiles on Meetup, trying to know my future audience better. Unfortunately, most of the people don’t put their Twitter or Facebook account in their profiles. They don’t often answer some basic questions sent by the owner of the group when they subscribe, which makes it really hard for a speaker learn about the target audience of a meetup.\nI sent a tweet to some people before the meetup in Barcelona, but I didn’t receive any responses. Next time 😉.

\n
View post on Twitter
\n

Since I didn’t know my audience in advance, I then decided to ask about each person’s career just before I started my talk. I adapted my content and discourse depending on their responses and it seemed that my slides were understandable by any level.

\n

Check for other local events

\n

I’m not a fan of football (although my father is) — I never felt passionate about it. But that was something that would’ve been useful to think about before setting the Barcelona meetup’s date. Twenty-three peopole planned to come, but just…2 of them came. I discovered afterwards that “Barcelona — Chelsea” was probably one of the reasons why people didn’t come.\nFor me, it was an awesome time. I was able to focus more on specific questions asked by Jimmy from Los Angeles and Costa Rica and Marcela from Mexico (I also won’t forget the delicious pizza we ate after the meetup at Anauco).

\n

Print your username on a tee-shirt

\n

\"David
Ironhack in Madrid (Spain)

\n

That might sound crazy, but printing my username on a tee-shirt was one of the things I’m happy I did. Some people may ask you how to contact you or may be too shy to do so. But with your username “on you,” it’s impossible not to find you on Internet (or forget who you are 😅)!

\n
View post on Twitter
\n
View post on Twitter
\n
View post on Twitter
\n

Tell stories and share what motivates you

\n

Telling stories is not that hard.\nLots of talks I’ve heard in the past, from different people, seemed “empty,” without any soul. Doing a talk is much more for me than a simple exposition of facts or numbers or code. It’s about a story, how someone found a way to develop their application, how some new technologies can improve the way we work in our daily lives, and so on.\nIn my case, it was how a “simple” checklist changed the way I see the Front-End worldwide community, and the way that some people will work in the future.

\n

Don’t need to be the best

\n

\"David
Talking about task runners at Ironhack Madrid

\n

That is maybe one of the biggest lesson I wanted to share with you in this post: you don’t need to be the best or the expert to share what you know or what you’ve learned before.\nLot of beginners with less than a couple years of experience don’t feel confident sharing what they know with others, because they think they don’t know enough.\nFrom my point of view, that’s the wrong belief. Whether you have experience or not, you always have something useful that can be shared with others. It’s as simple as that. And it’s something some people need to start believing once and for all.

\n

Take photos before everyone leaves!

\n

If your audience is used to sharing photos on Twitter or other social media, you’re lucky — you’ll have some photos of you to help you remember your talk or show the presentation you did. They might even come in handy if you want to write an article about it 😅.\nBut taking a group photo with all your attendees is a fun thing to plan before everyone runs out of the meetup. I failed on that point many times, and I was only able to take a picture in Porto with the two organisers, including Tim Lai.

\n
View post on Twitter
\n

A photo took after most of the attendees already went home.

\n

Ask for feedbacks

\n

This is another thing I missed, but I now know how useful it could’ve been. Having feedback on any work or talk can be really helpful when we try to improve ourselves and the way we present things.\nIn my next meetups, I’ll probably give attendees a bit.ly link redirecting to a Typeform quizz which I’ll ask them to fill out.

\n

And in case you didn’t read my article about how everything began, take a look at it here.\nPutting it all together\nGiving these talks in different cities and countries helped me learn how much can be shared and taught to an incredible number of people. During these last few years, while learning and sharing my vision of Front-End development, I wasn’t able to see how large the community of people wanting to become better actually was.\nWe can start with something really small, and that small thing can give us the opportunity to meet people and give them something they needed or were searching for.

\n

Now, let’s recap each point I went through:

\n\n

Thank you for reading!

\n

That’s it. In case you like my article and find it useful, here are some things you can do to show your support:

\n", + "content_html": "

In October 2017, I launched my first open-source project on Github: the Front-End Checklist. In few hours, the project gained international visibility. After that, for a number of weeks, I had an incredible journey with many people around the world. I recently started giving talks in local communities around Spain and Portugal about the project, and I plan to check out France later on.

\n

Doing these presentations gave me a different perspective and vision about the worldwide communities who organize meetups regularly. I discovered that there were an huge number of people who were looking for more and more content and wanted to participate in local communities.

\n

After initiating the Front-End Dev Mauritius community, I know how complicated it can be to find people willing to share their experiences about Front-End Development. And for some, such as those who recently have moved from another city or country, having a welcoming tech community is important to getting setting up.\nI wanted to share with you some of the things I learned before, during, and after these meetups I participated in throughout Europe. And I want to encourage you to participate more in local events no matter where you are today.

\n

Don’t give up!

\n

\"Map

Barcelona, Madrid and Porto

\n

Knowing that I would be on "holidays" for a few weeks in France, Spain, and Portugal I decided to try contacting local groups in Barcelona, Madrid, Lisbon, Aveiro, and Porto. I sent messages directly to the founders of local groups using Meetup.com, or contacted them via Twitter when they had specified their account on their profile. But, as I was expecting, I didn’t receive a lot of replies at first.

\n

In Barcelona however, Bettina from Ignit, who managed the “Barcelona Front-End Development Meetup”, answered me really quickly. We decided, after some email exchanges and a phone call, to have a meetup on 14 March about my project.

\n

In Madrid, the “Front-end Developers Madrid” organizers never answered me. But Juan Macias, a teacher’s assistant at “Ironhack Madrid,” did everything to help me setup a talk, which I gave on 16 March.

\n

In Lisbon, Shannon Graybill from “Lisbon Le Wagon” showed a lot of interest in having me do a presentation. But we lost touch after we tried to call each other few times without setting a time. Besides, I decided not to present in Lisboa, but instead tried to do something in Porto (easier for me, as I was in Aveiro for two weeks).\nThen in Porto I contacted Ricardo Mendes, who usually organizes “Porto Codes”. After few messages and emails, we decide to organize a talk on 5 April at Porto.io, at a coworking space in the middle of the city.

\n

\"Event

\n

Know your audience

\n

One of the first rules I learned about giving a talk or a presentation was to “know your audience.” That is maybe the most challenging but nonetheless important rule you need to have in mind.\nA few days before each talk, I went through all the profiles on Meetup, trying to know my future audience better. Unfortunately, most of the people don’t put their Twitter or Facebook account in their profiles. They don’t often answer some basic questions sent by the owner of the group when they subscribe, which makes it really hard for a speaker learn about the target audience of a meetup.\nI sent a tweet to some people before the meetup in Barcelona, but I didn’t receive any responses. Next time 😉.

\n
View post on Twitter
\n

Since I didn’t know my audience in advance, I then decided to ask about each person’s career just before I started my talk. I adapted my content and discourse depending on their responses and it seemed that my slides were understandable by any level.

\n

Check for other local events

\n

I’m not a fan of football (although my father is) — I never felt passionate about it. But that was something that would’ve been useful to think about before setting the Barcelona meetup’s date. Twenty-three peopole planned to come, but just…2 of them came. I discovered afterwards that “Barcelona — Chelsea” was probably one of the reasons why people didn’t come.\nFor me, it was an awesome time. I was able to focus more on specific questions asked by Jimmy from Los Angeles and Costa Rica and Marcela from Mexico (I also won’t forget the delicious pizza we ate after the meetup at Anauco).

\n

Print your username on a tee-shirt

\n

\"David

Ironhack in Madrid (Spain)

\n

That might sound crazy, but printing my username on a tee-shirt was one of the things I’m happy I did. Some people may ask you how to contact you or may be too shy to do so. But with your username “on you,” it’s impossible not to find you on Internet (or forget who you are 😅)!

\n
View post on Twitter
\n
View post on Twitter
\n
View post on Twitter
\n

Tell stories and share what motivates you

\n

Telling stories is not that hard.\nLots of talks I’ve heard in the past, from different people, seemed “empty,” without any soul. Doing a talk is much more for me than a simple exposition of facts or numbers or code. It’s about a story, how someone found a way to develop their application, how some new technologies can improve the way we work in our daily lives, and so on.\nIn my case, it was how a “simple” checklist changed the way I see the Front-End worldwide community, and the way that some people will work in the future.

\n

Don’t need to be the best

\n

\"David

Talking about task runners at Ironhack Madrid

\n

That is maybe one of the biggest lesson I wanted to share with you in this post: you don’t need to be the best or the expert to share what you know or what you’ve learned before.\nLot of beginners with less than a couple years of experience don’t feel confident sharing what they know with others, because they think they don’t know enough.\nFrom my point of view, that’s the wrong belief. Whether you have experience or not, you always have something useful that can be shared with others. It’s as simple as that. And it’s something some people need to start believing once and for all.

\n

Take photos before everyone leaves!

\n

If your audience is used to sharing photos on Twitter or other social media, you’re lucky — you’ll have some photos of you to help you remember your talk or show the presentation you did. They might even come in handy if you want to write an article about it 😅.\nBut taking a group photo with all your attendees is a fun thing to plan before everyone runs out of the meetup. I failed on that point many times, and I was only able to take a picture in Porto with the two organisers, including Tim Lai.

\n
View post on Twitter
\n

A photo took after most of the attendees already went home.

\n

Ask for feedbacks

\n

This is another thing I missed, but I now know how useful it could’ve been. Having feedback on any work or talk can be really helpful when we try to improve ourselves and the way we present things.\nIn my next meetups, I’ll probably give attendees a bit.ly link redirecting to a Typeform quizz which I’ll ask them to fill out.

\n

And in case you didn’t read my article about how everything began, take a look at it here.\nPutting it all together\nGiving these talks in different cities and countries helped me learn how much can be shared and taught to an incredible number of people. During these last few years, while learning and sharing my vision of Front-End development, I wasn’t able to see how large the community of people wanting to become better actually was.\nWe can start with something really small, and that small thing can give us the opportunity to meet people and give them something they needed or were searching for.

\n

Now, let’s recap each point I went through:

\n\n

Thank you for reading!

\n

That’s it. In case you like my article and find it useful, here are some things you can do to show your support:

\n", "url": "https://thedaviddias.dev/articles/learned-presenting-side-project-europe", "title": "What I learned after presenting my side project in Europe", "summary": "An overview of what I learned presenting the Front-End Checklist during my vacations in Europe", @@ -214,7 +214,7 @@ }, { "id": "https://thedaviddias.dev/articles/choose-city-country-front-developer", - "content_html": "

After I’ve been invited by my previous company to move to Mauritius to manage a Front-End Developer’s team, I’m now looking forward to choose where I want to move next. I’ve been working for many years in Paris, but going back to France, like some of my compatriotes I know, is not an option for me.

\n

\"\"

\n

When you start living outside your native country, creating worldwide links with others, you know that you can’t just “go back”. You can’t live ignoring the fact that being out of your comfort zone is the best thing that you can experience in life, more challenging when you live abroad. I spent 3 years in Brazil and these last two years in Mauritius. Thus I know that everything I learned from people around, I couldn’t learn if I was living in France.

\n

But today I’m facing a dilemma. I’m not sure which country / city I should to focus on my job researches. I need your help to decide where could be my next move…

\n
View post on Twitter
\n

1. Toronto / Canada

\n

\"\"
Toronto and its CN Tower

\n

Canada was is on 12th position of the Top Expat Destinations in 2016, 16th in 2017 according to “Expat Insider”. With more than 35 000 000 habitants split on around 9 000 000 km2, Canada is worldwide known to be a multicultural nation and with sometimes long and cold winters.

\n

I went to Canada in October 2014, to visit Toronto and Montreal. I really loved it! Most of the people prefer Montreal, but in my case, I enjoyed more staying in Toronto. I have few friends who moved there so they will be able to give me some advices if I need some. Since 2015, I have been registered in the pool for the IEC Working Holidays visa. Unfortunately, until today, I hadn’t any luck… But I still have hope 🌤

\n

The International Mobility Program for Francophones could be also an option for me. And to apply for the Express Entry, I just need to pass my [IELTS exam}(https://www.ielts.org/) (on January the 20th) and have enough point to apply for.

\n

The website Numbeo helps to compare the cost of living of different cities in the world. It seems that the cost of living in Toronto is less than most of the cities I’m interested in although these datas are not 100% reliable.

\n

\"\"
Montreal and Toronto seems to be cheaper than all other cities I’m mentioning in this article.

\n

2. Sydney or Melbourne / Australia

\n

\"\"

\n

The kangorou’s country was on 7th position in the Top 10 of best countries Expat Insider 2016 and is now on 34th position in 2017.

\n

I never went to Australia, but all my friend who went there, tell me good things about it. The immigration process does not seems easy and because I am +30 years, I can’t apply for the Working Holidays Visa. I’m still waiting from the French government to expand the upper age of eligibility from 30 to 35 years old.

\n

According to Numbeo, Sydney has a cost of living a little higher than Melbourne.

\n

\"\"

\n

3. Wellington or Auckland / New Zealand

\n

New Zealand was on 5th position for the Top 10 best countries by Expat Insider in 2016 and 6th for 2017.

\n

I don’t know why but I was always fascinated by that country. I read a lot of articles about the pros and cons, comments of people who complain about things which are better handled elsewhere. But let me tell you something, I learned one thing since I had lived in different countries. You can have an opinion about everything around, but you should learn to live with that. It doesn’t mean you need to accept everything, but you can’t be happy in a place where you are always criticising.

\n

Comparing two places, in the same country or in different country is in general a mistake you do in the first country you live… But the more you move, the more you’ll learn of how to enjoy where you are and skip details.

\n

The city of Auckland was the first to answer to my tweet asking about “Where I need to move”.

\n
View post on Twitter
\n

Wellington followed the next day with two adorable tweets:

\n
View post on Twitter
\n
View post on Twitter
\n

Maybe the weather in Wellington is not as good as Auckland… But the weather can’t be the only thing to compare (I’m already missing Mauritius’ sun 😂).

\n

\"\"
Another cost of living comparison with Auckland and Wellington

\n

4. New York, Chicago or somewhere else in the USA

\n

\"\"

\n

The USA was always on my TOP 1 choice (I went to NY 3 times) but it seems to be more and more complicated to get a job or a visa to go to the USA (Even if you have a project on Github with more than 23 000 likes 😅).

\n

I don’t completely leave that option away but today, it’s more part of a dream than a reality plan.

\n

I registered on the Green Card lottery for 2018… but I really don’t believe I can be so lucky…

\n

Why the USA?

\n

You may wonder: why the USA? It turns out that most of the people I admire are living in the USA. It seems to be easier to follow them being in the same country. It’s without counting on all conferences and meetups that are happening all over the country which I one day, I would like to be able to participate.

\n

But it’s probably because I’m looking for years to find a team of Developers, Web Designers and UX who can build innovative products together sharing their knowledge and having a similar vision.

\n
\n

I’m looking for years to find a team of Developers, Web Designers and UX who can build innovative products together sharing their knowledge and having a similar vision.

\n
\n

I just had that experience once: at Barefoot Proximity in Cincinnati, Ohio. Julie Tran, Creative Director and Micky Osterman, project manager gave me in 2014 an experience I could not forget. For more than one month, I’ve been working hand by hand creating a new brand website. Whereas I have much more experience today, what I tasted that month is how I would like to work with future teams.

\n

What’s next?

\n

2018 should be an interesting year.

\n

In January, my IELTS exam will give me more chances to complete some immigration forms.

\n

In February, I’ll start sending my resume to some companies I perceive I can fit and by chance, it’ll become easier to decide which country I should focus on more.

\n

In May/June, I hope to be in the country which will give me the chance to continue creating products and websites, managing young developers and working with an awesome team of experts who see the future of the web!

", + "content_html": "

After I’ve been invited by my previous company to move to Mauritius to manage a Front-End Developer’s team, I’m now looking forward to choose where I want to move next. I’ve been working for many years in Paris, but going back to France, like some of my compatriotes I know, is not an option for me.

\n

\"\"

\n

When you start living outside your native country, creating worldwide links with others, you know that you can’t just “go back”. You can’t live ignoring the fact that being out of your comfort zone is the best thing that you can experience in life, more challenging when you live abroad. I spent 3 years in Brazil and these last two years in Mauritius. Thus I know that everything I learned from people around, I couldn’t learn if I was living in France.

\n

But today I’m facing a dilemma. I’m not sure which country / city I should to focus on my job researches. I need your help to decide where could be my next move…

\n
View post on Twitter
\n

1. Toronto / Canada

\n

\"\"

Toronto and its CN Tower

\n

Canada was is on 12th position of the Top Expat Destinations in 2016, 16th in 2017 according to “Expat Insider”. With more than 35 000 000 habitants split on around 9 000 000 km2, Canada is worldwide known to be a multicultural nation and with sometimes long and cold winters.

\n

I went to Canada in October 2014, to visit Toronto and Montreal. I really loved it! Most of the people prefer Montreal, but in my case, I enjoyed more staying in Toronto. I have few friends who moved there so they will be able to give me some advices if I need some. Since 2015, I have been registered in the pool for the IEC Working Holidays visa. Unfortunately, until today, I hadn’t any luck… But I still have hope 🌤

\n

The International Mobility Program for Francophones could be also an option for me. And to apply for the Express Entry, I just need to pass my [IELTS exam}(https://www.ielts.org/) (on January the 20th) and have enough point to apply for.

\n

The website Numbeo helps to compare the cost of living of different cities in the world. It seems that the cost of living in Toronto is less than most of the cities I’m interested in although these datas are not 100% reliable.

\n

\"\"

Montreal and Toronto seems to be cheaper than all other cities I’m mentioning in this article.

\n

2. Sydney or Melbourne / Australia

\n

\"\"

\n

The kangorou’s country was on 7th position in the Top 10 of best countries Expat Insider 2016 and is now on 34th position in 2017.

\n

I never went to Australia, but all my friend who went there, tell me good things about it. The immigration process does not seems easy and because I am +30 years, I can’t apply for the Working Holidays Visa. I’m still waiting from the French government to expand the upper age of eligibility from 30 to 35 years old.

\n

According to Numbeo, Sydney has a cost of living a little higher than Melbourne.

\n

\"\"

\n

3. Wellington or Auckland / New Zealand

\n

New Zealand was on 5th position for the Top 10 best countries by Expat Insider in 2016 and 6th for 2017.

\n

I don’t know why but I was always fascinated by that country. I read a lot of articles about the pros and cons, comments of people who complain about things which are better handled elsewhere. But let me tell you something, I learned one thing since I had lived in different countries. You can have an opinion about everything around, but you should learn to live with that. It doesn’t mean you need to accept everything, but you can’t be happy in a place where you are always criticising.

\n

Comparing two places, in the same country or in different country is in general a mistake you do in the first country you live… But the more you move, the more you’ll learn of how to enjoy where you are and skip details.

\n

The city of Auckland was the first to answer to my tweet asking about “Where I need to move”.

\n
View post on Twitter
\n

Wellington followed the next day with two adorable tweets:

\n
View post on Twitter
\n
View post on Twitter
\n

Maybe the weather in Wellington is not as good as Auckland… But the weather can’t be the only thing to compare (I’m already missing Mauritius’ sun 😂).

\n

\"\"

Another cost of living comparison with Auckland and Wellington

\n

4. New York, Chicago or somewhere else in the USA

\n

\"\"

\n

The USA was always on my TOP 1 choice (I went to NY 3 times) but it seems to be more and more complicated to get a job or a visa to go to the USA (Even if you have a project on Github with more than 23 000 likes 😅).

\n

I don’t completely leave that option away but today, it’s more part of a dream than a reality plan.

\n

I registered on the Green Card lottery for 2018… but I really don’t believe I can be so lucky…

\n

Why the USA?

\n

You may wonder: why the USA? It turns out that most of the people I admire are living in the USA. It seems to be easier to follow them being in the same country. It’s without counting on all conferences and meetups that are happening all over the country which I one day, I would like to be able to participate.

\n

But it’s probably because I’m looking for years to find a team of Developers, Web Designers and UX who can build innovative products together sharing their knowledge and having a similar vision.

\n
\n

I’m looking for years to find a team of Developers, Web Designers and UX who can build innovative products together sharing their knowledge and having a similar vision.

\n
\n

I just had that experience once: at Barefoot Proximity in Cincinnati, Ohio. Julie Tran, Creative Director and Micky Osterman, project manager gave me in 2014 an experience I could not forget. For more than one month, I’ve been working hand by hand creating a new brand website. Whereas I have much more experience today, what I tasted that month is how I would like to work with future teams.

\n

What’s next?

\n

2018 should be an interesting year.

\n

In January, my IELTS exam will give me more chances to complete some immigration forms.

\n

In February, I’ll start sending my resume to some companies I perceive I can fit and by chance, it’ll become easier to decide which country I should focus on more.

\n

In May/June, I hope to be in the country which will give me the chance to continue creating products and websites, managing young developers and working with an awesome team of experts who see the future of the web!

", "url": "https://thedaviddias.dev/articles/choose-city-country-front-developer", "title": "Help me to choose the best city/country to be a Front-End Developer!", "summary": "Choosing a new city or country to leave is not an easy task. I'm sharing my process to choose the next city where I wanna live.", @@ -227,7 +227,7 @@ }, { "id": "https://thedaviddias.dev/articles/front-end-checklist-just-tool-everything-depends-on-you", - "content_html": "

One month ago, I launched the Front-End Checklist on GitHub. In less than 2 weeks, more than 10,000 people around the world starred the repository. That was completely unexpected and incredible!

\n

\"A

\n

I’ve been working as a front-end developer since 2011, but I started to build websites in 2000. Since then, like us all, I’ve been trying to improve the quality of my code and deliver websites faster. Along the way, I’ve been managing developers from two different countries. That has helped me to produce a checklist a little different than what I’ve found on around the web over the years.

\n

While I was creating the checklist, I continuously had the book “The Checklist Manifesto: How to Get Things Right” by Atul Gawade in mind. That book has helped me build checklists for my work and personal life, and simplify things that sometimes seem too complex.

\n

If you are working alone or in a team, individually, remotely, or on-site, I wanted to share some advice on using the Front-End Checklist and the web application that goes with it. Perhaps I can convince you to integrate it into your development cycle.

\n

\"A

\n

Decide which rules your project and team need to follow

\n

Every project is different. Before starting a new project, the whole team (i.e. the project managers, designers, developers, QA, etc.) need to agree on what the deliverables will be.

\n

To help you to decide, I created 3 different levels of priority: high, medium, and low. You don’t necessarily need to agree with those distinctions, but they may help order your tasks.

\n

The Front-End Checklist app was done to facilitate the creation of personalized checklists. Change some JSON files to your liking and you are ready to start!

\n

Define the rules to check at beginning, during, and at the end of your project

\n

You shouldn’t check all these rules only at the end of a project. You know as well as I do how projects are at the very end! Too hectic. Most of the items of the Front-End Checklist can be considered at the beginning of your development. It’s up to you to decide. Make it clear to your team upfront what happens when.

\n

Learn a little more about each rule

\n

Who loves reading the docs? Not most of us, but it’s essential. If you want to understand the reasons for the rule, you can’t avoid reading up about them. The more you understand the why of each rule, the better developer you become.

\n

Start to check!

\n

The Front-End Checklist app can facilitate your life as a developer. It’s a live checklist, so as you complete items your progress and grade are updated live. Everything is saved in localStorage so you can leave and come back as needed.

\n

The project is open source, so feel free to fork it and use it however you like. I’m working on making sure all the files are commented. I especially invite those interested in Pug to take a look at the views folder.

\n

Integrate automated testing in your workflow

\n

We all dream of automation (or is it just me?). For now, the Front-End Checklist is just an interactive list, but some of the tasks can be automated in your workflow.

\n

Take a look at the gulpfile used to generate the project. All tasks are packages you can use with npm, webpack, etc.

\n

Validate every page before sending to QA team and to production

\n

\"A

\n

If you’re passionate about generating clean code and care about your code quality, you should be regularly testing your pages. It’s so easy to make mistakes and remove some essential code. Or, someone else on your team might have done it, but it’s your shared responsibilty to be catching things like that.

\n

The Front-End Checklist can generate beautiful reports you can send to a project manager or Quality Assurance team.

\n

Enjoy your work above all

\n

Some people might look at such a long checklist and feel sick to their stomach. Going through such a list might cause anxiety and really not be any fun.

\n

But the Front-End Checklist is just a tool to help you deliver higher quality code. Code that affects all aspects of a project: the SEO, the user experience, the ROI, and ultimately the success of the project. A tool that can help across all those things might actually help reduce your anxiety and improve your health!

\n

Conclusion

\n

The success the Front-End Checklist received in such a short time reminded me that a lot of people are really interested in finding ways to improve their work. But just because the tool exists doesn’t directly help with that. You also need to commit to using it.

\n

In a time where AI is taking over many manual tasks, quality is a must-have. Even if automation takes over a lot of our tasks, some level of quality will remain impossible to automate, and us front-end developers still have many long days to enjoy our jobs.

", + "content_html": "

One month ago, I launched the Front-End Checklist on GitHub. In less than 2 weeks, more than 10,000 people around the world starred the repository. That was completely unexpected and incredible!

\n

\"A

\n

I’ve been working as a front-end developer since 2011, but I started to build websites in 2000. Since then, like us all, I’ve been trying to improve the quality of my code and deliver websites faster. Along the way, I’ve been managing developers from two different countries. That has helped me to produce a checklist a little different than what I’ve found on around the web over the years.

\n

While I was creating the checklist, I continuously had the book “The Checklist Manifesto: How to Get Things Right” by Atul Gawade in mind. That book has helped me build checklists for my work and personal life, and simplify things that sometimes seem too complex.

\n

If you are working alone or in a team, individually, remotely, or on-site, I wanted to share some advice on using the Front-End Checklist and the web application that goes with it. Perhaps I can convince you to integrate it into your development cycle.

\n

\"A

\n

Decide which rules your project and team need to follow

\n

Every project is different. Before starting a new project, the whole team (i.e. the project managers, designers, developers, QA, etc.) need to agree on what the deliverables will be.

\n

To help you to decide, I created 3 different levels of priority: high, medium, and low. You don’t necessarily need to agree with those distinctions, but they may help order your tasks.

\n

The Front-End Checklist app was done to facilitate the creation of personalized checklists. Change some JSON files to your liking and you are ready to start!

\n

Define the rules to check at beginning, during, and at the end of your project

\n

You shouldn’t check all these rules only at the end of a project. You know as well as I do how projects are at the very end! Too hectic. Most of the items of the Front-End Checklist can be considered at the beginning of your development. It’s up to you to decide. Make it clear to your team upfront what happens when.

\n

Learn a little more about each rule

\n

Who loves reading the docs? Not most of us, but it’s essential. If you want to understand the reasons for the rule, you can’t avoid reading up about them. The more you understand the why of each rule, the better developer you become.

\n

Start to check!

\n

The Front-End Checklist app can facilitate your life as a developer. It’s a live checklist, so as you complete items your progress and grade are updated live. Everything is saved in localStorage so you can leave and come back as needed.

\n

The project is open source, so feel free to fork it and use it however you like. I’m working on making sure all the files are commented. I especially invite those interested in Pug to take a look at the views folder.

\n

Integrate automated testing in your workflow

\n

We all dream of automation (or is it just me?). For now, the Front-End Checklist is just an interactive list, but some of the tasks can be automated in your workflow.

\n

Take a look at the gulpfile used to generate the project. All tasks are packages you can use with npm, webpack, etc.

\n

Validate every page before sending to QA team and to production

\n

\"A

\n

If you’re passionate about generating clean code and care about your code quality, you should be regularly testing your pages. It’s so easy to make mistakes and remove some essential code. Or, someone else on your team might have done it, but it’s your shared responsibilty to be catching things like that.

\n

The Front-End Checklist can generate beautiful reports you can send to a project manager or Quality Assurance team.

\n

Enjoy your work above all

\n

Some people might look at such a long checklist and feel sick to their stomach. Going through such a list might cause anxiety and really not be any fun.

\n

But the Front-End Checklist is just a tool to help you deliver higher quality code. Code that affects all aspects of a project: the SEO, the user experience, the ROI, and ultimately the success of the project. A tool that can help across all those things might actually help reduce your anxiety and improve your health!

\n

Conclusion

\n

The success the Front-End Checklist received in such a short time reminded me that a lot of people are really interested in finding ways to improve their work. But just because the tool exists doesn’t directly help with that. You also need to commit to using it.

\n

In a time where AI is taking over many manual tasks, quality is a must-have. Even if automation takes over a lot of our tasks, some level of quality will remain impossible to automate, and us front-end developers still have many long days to enjoy our jobs.

", "url": "https://thedaviddias.dev/articles/front-end-checklist-just-tool-everything-depends-on-you", "title": "The Front-End Checklist is just a tool… everything depends on you", "summary": "The steps you need to follow to efficiently use the application frontendchecklist.io", @@ -240,7 +240,7 @@ }, { "id": "https://thedaviddias.dev/articles/how-my-open-source-project-earned-6000-stars-on-github-in-just-5-days", - "content_html": "

\"\"
A screenshot of the Front-End Checklist repository (numbers are already outdated since I finished writing that article)

\n

Last month I launched two open source projects on GitHub. A few days later, my Front-End Checklist was showing more than 6,000 stars (17,000 as of writing). And I got 600 stars for my Resources-Front-End-Beginner project!

\n

It was unexpected for me to receive such support coming from so many people around the globe: USA, Brazil, China, Japan, France, Canada, Spain, Mauritius, Japan, Portugal... Even now, I still can’t believe how many pull requests I received with changes and corrections these last days.

\n

For so long I received gifts from the open source world. Now I felt it was finally time for me to give back everything I have learned, and to help others.

\n

As a professional Front-End manager, I spend my time teaching and encouraging others to learn and practice. I regularly share interesting content and useful tools on the Front-End Dev Mauritius group on Facebook. But I never planned that the Front-End Checklist will become a worldwide project.

\n

My motivations to write another Front-End checklist

\n

I’ve seen some Front-End checklists over the past year on the web:

\n\n

Some of them helped me years ago when I wanted to improve my Front-End knowledge, but most of them were just “not enough.”

\n

Two years ago, I decided to start writing my own checklist based on my experiences. That checklist became way more important when I started to manage Front-End teams in France and Mauritius. Based on questions and usual mistakes from the teams, the content kept improving.

\n

When I needed to teach someone how to become a better Front-End developer, I always had in mind that checklist that I started to work on. The document which started with a simple personal need became an ambitious tool for my team.

\n

Then I started to feel the need to share it with more people.

\n

A month ago I decided to put a first version on GitHub. And… at that moment, everything started to happen fast… really fast.

\n

Things can happen fast on the internet. Really fast.

\n

On 18 October, I published the first version of my Front-End Checklist. I went to see all members of my team and I asked them to put a star 😀 on the repository. They don’t really have the habit to star projects on Github, I had to encourage them to do so 😂.

\n

A few hours later, watching an episode of Hawaii Five-O with my wife, I opened my GitHub repository on my iPad. I was shocked to find that in only few hours, I had already received 700 stars.

\n

\"\"
700 stars on Github in only few hours

\n

I was not able to understand why and where these stars were coming from. (At that time, I didn’t know about the Insights > Traffic section on GitHub.)

\n

I hadn’t even published any tweet about the Github repository. The next day, I published on my Twitter account: just few likes and retweets about the checklist. Nothing that may explain, where everyone was coming from.

\n
View post on Twitter
\n

I then started to validate pull requests and answer some logged issues. I was feeling so grateful for that unimaginable support. Even working daily with international websites, I forgot sometimes the power of Internet. (Or it’s maybe I’m living in a small island far from everything 😂.)

\n

Next day, I received on Twitter a message from Product Hunt:

\n
View post on Twitter
\n

Without really taking time to think, I opened my Illustrator and designed a logo to put on the page. I kept it basic, inspired by the logo of Front-End Coders, a future NGO I’ll be launching soon officially.

\n

\"\"
Front-End checklist and Front-End beginners essential logos

\n

Since then, I received in less than one week 40 pull requests, was published on Codrops for my 2 lists in their Collective #359, on the Panda Weekly Newsletter #130 and #131, Hacker news, Reddit (multiple times), NewsCenter.io, La Ferme du Web and more.

\n

Translation in Japanese, Spanish, Chinese, Korean, Portuguese and Vietnamese were done in less than 2 weeks!

\n

\"\"
Insights for the Front-End Checklist on 23 October 2017

\n

The list is positioned first on Google for the words “Front-End Checklist”. Some landing pages on Github have the checklist on first position (Front-End Development, Checklist, Guidelines).

\n

I discovered more recently that the project was on top of the trending feed on GitHub with more than 6,000 stars in less than a week (on 27 October 2017).

\n

The Front-End Checklist is trending on Github!

\n

Checklists can be more than simple checklists

\n

I’m a big fan of “Awesome”, the curated list of awesome lists created first by\nSindre Sorhus\n. But some lists are colossal and I found myself sometimes struggling to find what I want. I’m not sure if it’s because the amount of links or the absence of information attached to each link.

\n

This is why I decided to add emoticons in my two lists. I usually don’t use them too often, but in that case I found interesting to add more of these to have more information about the content of my links.

\n

The Front-End Checklist use emoticons to add more informations for each rule\nAs mentionned in the introduction of the Front-End Checklist, I used:

\n\n

I also used 3 images (High, medium, low) to integrate different levels of priorities. I didn’t find any emoticon that could replace these images easily.

\n

The list of resources for Front-End Beginners also use emoticons to add some additional informations.\nOn my list of resources for Front-End Beginners, for example, I decided to indicate free and paid tutorials. It’s easier to have these type of informations before you click on any link. People can directly focus on what they prefer.

\n

I use daily applications like Cloud Outliner Pro and MindNode to create new lists for my personal and professional life (and Todoist). I can’t imagine doing a complex task without a set of items into a list.

\n

If you have something to share, share it on GitHub now!\nWhen it comes to sharing documentation or code, today, there’s no other place I like more than Github. Last week I decided I needed to put my work in a place where people can easily access and participate.

\n

This kind of project is meant to be used and perfected by experiences and different points of view. Because Front-End development is always moving, evolving, it’s not always simple to stay on track on everything. Collaborative projects, where people can participate are for me the best way to have constantly updated tools.

\n

I regularly meet young developers and people who want to become Front-End developer. Even on my YouTube channel, I receive lot of questions and requests. The first advice I give to them is to start coding and put their work on Github. It’s a way for them to show their interests to their friends, a future recruiter and to the world.

\n

The Front-End Code Camp is an event workshop to better understand the process of web development.\nDon’t hesitate, everything you do, related to coding and web, take time to present it correctly on an README file and click “push”!

\n

What’s next?

\n

By the time I wrote this article I was already working on a small open-source web app... Today, you can already access the Front-End Checklist App online!

\n

Due to many requests, I’m already working on an NPM module which will probably be used by a future website. It was not in my initial plans but when I saw so many people asking for, I couldn’t refuse.

\n

I have much more to share! I’m working on other lists that may be as good as the Front-End Checklist… Well, I hope! 😃

", + "content_html": "

\"\"

A screenshot of the Front-End Checklist repository (numbers are already outdated since I finished writing that article)

\n

Last month I launched two open source projects on GitHub. A few days later, my Front-End Checklist was showing more than 6,000 stars (17,000 as of writing). And I got 600 stars for my Resources-Front-End-Beginner project!

\n

It was unexpected for me to receive such support coming from so many people around the globe: USA, Brazil, China, Japan, France, Canada, Spain, Mauritius, Japan, Portugal... Even now, I still can’t believe how many pull requests I received with changes and corrections these last days.

\n

For so long I received gifts from the open source world. Now I felt it was finally time for me to give back everything I have learned, and to help others.

\n

As a professional Front-End manager, I spend my time teaching and encouraging others to learn and practice. I regularly share interesting content and useful tools on the Front-End Dev Mauritius group on Facebook. But I never planned that the Front-End Checklist will become a worldwide project.

\n

My motivations to write another Front-End checklist

\n

I’ve seen some Front-End checklists over the past year on the web:

\n\n

Some of them helped me years ago when I wanted to improve my Front-End knowledge, but most of them were just “not enough.”

\n

Two years ago, I decided to start writing my own checklist based on my experiences. That checklist became way more important when I started to manage Front-End teams in France and Mauritius. Based on questions and usual mistakes from the teams, the content kept improving.

\n

When I needed to teach someone how to become a better Front-End developer, I always had in mind that checklist that I started to work on. The document which started with a simple personal need became an ambitious tool for my team.

\n

Then I started to feel the need to share it with more people.

\n

A month ago I decided to put a first version on GitHub. And… at that moment, everything started to happen fast… really fast.

\n

Things can happen fast on the internet. Really fast.

\n

On 18 October, I published the first version of my Front-End Checklist. I went to see all members of my team and I asked them to put a star 😀 on the repository. They don’t really have the habit to star projects on Github, I had to encourage them to do so 😂.

\n

A few hours later, watching an episode of Hawaii Five-O with my wife, I opened my GitHub repository on my iPad. I was shocked to find that in only few hours, I had already received 700 stars.

\n

\"\"

700 stars on Github in only few hours

\n

I was not able to understand why and where these stars were coming from. (At that time, I didn’t know about the Insights > Traffic section on GitHub.)

\n

I hadn’t even published any tweet about the Github repository. The next day, I published on my Twitter account: just few likes and retweets about the checklist. Nothing that may explain, where everyone was coming from.

\n
View post on Twitter
\n

I then started to validate pull requests and answer some logged issues. I was feeling so grateful for that unimaginable support. Even working daily with international websites, I forgot sometimes the power of Internet. (Or it’s maybe I’m living in a small island far from everything 😂.)

\n

Next day, I received on Twitter a message from Product Hunt:

\n
View post on Twitter
\n

Without really taking time to think, I opened my Illustrator and designed a logo to put on the page. I kept it basic, inspired by the logo of Front-End Coders, a future NGO I’ll be launching soon officially.

\n

\"\"

Front-End checklist and Front-End beginners essential logos

\n

Since then, I received in less than one week 40 pull requests, was published on Codrops for my 2 lists in their Collective #359, on the Panda Weekly Newsletter #130 and #131, Hacker news, Reddit (multiple times), NewsCenter.io, La Ferme du Web and more.

\n

Translation in Japanese, Spanish, Chinese, Korean, Portuguese and Vietnamese were done in less than 2 weeks!

\n

\"\"

Insights for the Front-End Checklist on 23 October 2017

\n

The list is positioned first on Google for the words “Front-End Checklist”. Some landing pages on Github have the checklist on first position (Front-End Development, Checklist, Guidelines).

\n

I discovered more recently that the project was on top of the trending feed on GitHub with more than 6,000 stars in less than a week (on 27 October 2017).

\n

The Front-End Checklist is trending on Github!

\n

Checklists can be more than simple checklists

\n

I’m a big fan of “Awesome”, the curated list of awesome lists created first by\nSindre Sorhus\n. But some lists are colossal and I found myself sometimes struggling to find what I want. I’m not sure if it’s because the amount of links or the absence of information attached to each link.

\n

This is why I decided to add emoticons in my two lists. I usually don’t use them too often, but in that case I found interesting to add more of these to have more information about the content of my links.

\n

The Front-End Checklist use emoticons to add more informations for each rule\nAs mentionned in the introduction of the Front-End Checklist, I used:

\n\n

I also used 3 images (High, medium, low) to integrate different levels of priorities. I didn’t find any emoticon that could replace these images easily.

\n

The list of resources for Front-End Beginners also use emoticons to add some additional informations.\nOn my list of resources for Front-End Beginners, for example, I decided to indicate free and paid tutorials. It’s easier to have these type of informations before you click on any link. People can directly focus on what they prefer.

\n

I use daily applications like Cloud Outliner Pro and MindNode to create new lists for my personal and professional life (and Todoist). I can’t imagine doing a complex task without a set of items into a list.

\n

If you have something to share, share it on GitHub now!\nWhen it comes to sharing documentation or code, today, there’s no other place I like more than Github. Last week I decided I needed to put my work in a place where people can easily access and participate.

\n

This kind of project is meant to be used and perfected by experiences and different points of view. Because Front-End development is always moving, evolving, it’s not always simple to stay on track on everything. Collaborative projects, where people can participate are for me the best way to have constantly updated tools.

\n

I regularly meet young developers and people who want to become Front-End developer. Even on my YouTube channel, I receive lot of questions and requests. The first advice I give to them is to start coding and put their work on Github. It’s a way for them to show their interests to their friends, a future recruiter and to the world.

\n

The Front-End Code Camp is an event workshop to better understand the process of web development.\nDon’t hesitate, everything you do, related to coding and web, take time to present it correctly on an README file and click “push”!

\n

What’s next?

\n

By the time I wrote this article I was already working on a small open-source web app... Today, you can already access the Front-End Checklist App online!

\n

Due to many requests, I’m already working on an NPM module which will probably be used by a future website. It was not in my initial plans but when I saw so many people asking for, I couldn’t refuse.

\n

I have much more to share! I’m working on other lists that may be as good as the Front-End Checklist… Well, I hope! 😃

", "url": "https://thedaviddias.dev/articles/how-my-open-source-project-earned-6000-stars-on-github-in-just-5-days", "title": "How my open source project earned 6,000 stars on GitHub in just 5 days", "summary": "The Front-End Checklist is my first open-source project gaining so much attraction and visibility! In this article, I explain what happen the first 5 days my project got published.", @@ -253,7 +253,7 @@ }, { "id": "https://thedaviddias.dev/articles/how-morning-routine-can-positively-change-your-life-forever", - "content_html": "

\"\"
Meditation is part of my Morning Routine now…

\n

I cannot remember how many times it was hard for me to wake up in the morning. The snooze button was my best friend every morning, and I even hated when I was late to go somewhere. It was hard to believe that other ways could possibly exist when you work in my job area.

\n
\n

At that time, I believed only one possible way to live was possible.

\n
\n

As a Front-End Web Developer, these last years, sleeping 3–4 hours per night during a few successive days, drinking cups of coffee during the day (sometimes Redbull) was my ritual and my life. And I thought all developers life was close to that. To be the best, you need to go further, faster and perform better than others, and you cannot be restful, calm, have lot of leisure if you want to succeed…

\n

Moving to Mauritius in 2015

\n

I was asked to move from France to Mauritius in October 2015, delaying my goal to move to North America, to help my company to grow up and to manage a Front-End team of 12 persons (today 20).

\n

I met my wife on that island, the most beautiful and Kind woman ever (Kajaal Dias). And you may imagine I was in the paradise…

\n

But in reality, it was far to be the paradise like most of my colleagues and friends may still imagine.

\n

At that point of my life, I was not feeling accomplished; I was not really happy for what I was doing and I was not living the life I always wanted.

\n

As most of the people, I was not able to take real actions and make changes to build something new and different.

\n

Hacking my body to sleep only 4 hours per day

\n

In October 2016, seeing web tutorials on Youtube, my eyes were attracted by a video title “My 20 Hour Day” by Travis Neilson on his DevTips channel. And that was probably the start of lots of changes in my life.

\n

It was the first time I heard about “polyphasic sleep”. A way to sleep less, but being in good health and more alert than sleeping successive 8 hours. At the beginning, I thought it was another fake experiment that may work for few people only. But my curiosity pushed me to dive in some advanced research. (Thanks to Damien Fauché and his french ebook: “How to sleep only 2h per day”)

\n
\n

Finally, few days after, I decided to try the polyphasic sleep - Everyman 3.

\n

At the beginning it was hard and challenging but my motivation and dedication help me not to give up. Today, it has been 4 months that I’m still sleeping 3–4 hours at night and taking 2–3 naps during the day.

\n

My core sleeping time is between 10h30 pm to 2h30–3h00 am. I do my first nap at home before leaving for work at 7h am for 25 minutes, my second nap is at 1h pm during lunch time for 20 minutes (in my car) and the third one at home again at 6h30 pm for 25 minutes after working hours.

\n

\"Screenshots
Smart Sleep on iOS helps me to track my naps and to wake up. The start was not easy.

\n

It is not always simple to be regular, but it’s really essential to listen to your body. I remember sometimes at the beginning sleeping much more in the weekend because I missed some naps during the weekdays. I simply took attention to my body reactions and even you need to try hard at the beginning to create a new habit, your body can adapt if your are really aware of its needs.

\n

Today I am able to fall in sleep in less than 5 minutes (I slow down my breath, put myself in a stress-free position and not let my thoughts haunt me). That helps a lot when you need to do a 20 minutes nap.

\n

Some weeks after, I started to feel that my life can be different, I could do things differently and put a real step forward to my dreams and achieve more than I always wanted to do.

\n

Five minutes to change your way of thinking

\n

Putting a step forward in life, is putting a step ahead of others. And to feel good with others, you need to feel good in your life. And it started with me being grateful…

\n
\n

Gratitude is the quality of being thankful and simply appreciate what we have, even in general we don’t want to see how lucky we are.

\n
\n

I started writing into “The Five Minute Journal”. It is not a journal like the others. It allows me to be grateful, mindful and plan which great things will happen during my day. I feel positive and happier when I use it.

\n
View post on Twitter
\n

Starting my day with my journal, creating and tracking new habits were just the beginning of my journey.

\n

The “Miracle Morning” saved me (S.A.V.E.R.S.)

\n

Sleeping less allowed me to have time… much more time (one more day in my week). And even I love my work and to be a programmer, I felt I gave maybe too much to my coding life and not to my personal life and personal growth. I needed to put a real daily routine, a way to equilibrate my life in all its aspects.

\n

After starting my Five Minute Journal, I discovered “The Miracle Morning” by Hal Elrod, reading articles and his book. That was exactly what I was looking for!

\n

Then I started to put a morning routine using my favorite Todo app (Todoist).

\n
View post on Twitter
\n

S.A.V.E.R.S means Silence, Affirmations, Visualization, Exercises, Reading and Scribing. These 6 elements are part of my daily routine now and help me to start my day in the most positive way.

\n

My typical Morning Routine and his apps

\n

Waking up at 2h30 am, I start my day with a glass of water and a personal recipe with lemon, water, cinnamon, cayenne, ginger, apple cider, honey and collagen (everything organic). It allows me to feel good for whatever I ate the day before or will eat during the day. That did a huge change for my stomach, and I never had any stomach problems or pain again. (Remember in Mauritius, most of the recipes are spicy).

\n

I brew my “Kick Ass” coffee from Kicking Horse Coffee with my beautiful Java Presse (I really love USA brands). I don’t really need coffee, but it’s more a personal pleasure for my morning ritual. (Sometimes I drink the Bulletproof Coffee by Dave Asprey with Coconut Oil and Ghee).

\n

\"\"

\n

For meditation I use the excellent app calm.com. It can take only 10 minutes sometimes more, but that practice in my life had a significant impact in my way I live the present and feel more peaceful. There are other useful apps like Headspace amongst others.

\n

I wrote some affirmations I read every morning and before to go bed. After I take some minutes to visualize what I want to achieve in my day, that helps me to keep focus.

\n

I use Day One for scribbing whatever I feel or have in mind during my day and recently move to Fields Notes for my Morning Pages (thanks to Loic Le Meur).

\n

I put Brain.fm for 15 minutes (with my headphones) and read at least for 15 minutes. I created a list of books on Evernote I want to read each week and month. I’m challenging myself with Goodreads to read 50 books in 2017… I am late already… :)

\n

I regularly undertake activities like coding, watching tutorials, design, social media updates, new projects depending on the day. It is normally between 1h to 1h30 hours in the morning and oneextra hour in the evening.

\n

Then when my wife wakes up, we go for a 20 minutes walk in the park near our apartment. Before I take my shower, 5 minutes of plank and 5 minutes of shaper, it’s enough for me to sweat and feel good.

\n

I add when I have 20 minutes free some Yoga exercises with the help of Daily Yoga. Otherwise I participate every Saturday morning to a session class.

\n

\"The

\n

I take my cold shower hearing my favorite podcasts The School of Greatness by Lewis Howes, The 5 AM miracle by Jeff Sanders and The Tim Ferris Show by Tim Ferriss. Can’t leave home without hearing these guys!

\n

Since few weeks, I’m practicing Intermittent Fasting, so I don’t take breakfast but instead, I prepare a natural juice with cucumber, lemon, parsley, apple, carrot, wheat grass and with all others vegetables and fruits I find around.

\n

During my short trajet to work (10 minutes), I listen with my wife some best-selling nonfiction books using Blinkist. I really recommend you to take a premium account, it is worths every penny.

\n

Then I start my day at work with some other routines I may share in another article.

\n

(I use to track some new habits on my mini-book “Track your habits” by kikki.k and with the Coach.me app.)

\n

My new habits and Routines are only at the beginning

\n

Experimenting lot of new things in the previous 4 months, give me the will to go further and do everything I can to achieve my goals and dreams.

\n

I know I’m still adjusting with my Morning Routine, but I can’t go back after all what I discovered, all people I meet that give me some mindfulness and clarity in the life. I’m so grateful for all of this.

\n

Nothing can stop me now to fulfill every single unique present moment of my life.

\n
\n

Tell me about your Daily or Morning Routine

\n

And you, do you have a daily or morning routine?

\n

What you do daily to improve your life, achieve your goals and take actions to build the life you want?

", + "content_html": "

\"\"

Meditation is part of my Morning Routine now…

\n

I cannot remember how many times it was hard for me to wake up in the morning. The snooze button was my best friend every morning, and I even hated when I was late to go somewhere. It was hard to believe that other ways could possibly exist when you work in my job area.

\n
\n

At that time, I believed only one possible way to live was possible.

\n
\n

As a Front-End Web Developer, these last years, sleeping 3–4 hours per night during a few successive days, drinking cups of coffee during the day (sometimes Redbull) was my ritual and my life. And I thought all developers life was close to that. To be the best, you need to go further, faster and perform better than others, and you cannot be restful, calm, have lot of leisure if you want to succeed…

\n

Moving to Mauritius in 2015

\n

I was asked to move from France to Mauritius in October 2015, delaying my goal to move to North America, to help my company to grow up and to manage a Front-End team of 12 persons (today 20).

\n

I met my wife on that island, the most beautiful and Kind woman ever (Kajaal Dias). And you may imagine I was in the paradise…

\n

But in reality, it was far to be the paradise like most of my colleagues and friends may still imagine.

\n

At that point of my life, I was not feeling accomplished; I was not really happy for what I was doing and I was not living the life I always wanted.

\n

As most of the people, I was not able to take real actions and make changes to build something new and different.

\n

Hacking my body to sleep only 4 hours per day

\n

In October 2016, seeing web tutorials on Youtube, my eyes were attracted by a video title “My 20 Hour Day” by Travis Neilson on his DevTips channel. And that was probably the start of lots of changes in my life.

\n

It was the first time I heard about “polyphasic sleep”. A way to sleep less, but being in good health and more alert than sleeping successive 8 hours. At the beginning, I thought it was another fake experiment that may work for few people only. But my curiosity pushed me to dive in some advanced research. (Thanks to Damien Fauché and his french ebook: “How to sleep only 2h per day”)

\n
\n

Finally, few days after, I decided to try the polyphasic sleep - Everyman 3.

\n

At the beginning it was hard and challenging but my motivation and dedication help me not to give up. Today, it has been 4 months that I’m still sleeping 3–4 hours at night and taking 2–3 naps during the day.

\n

My core sleeping time is between 10h30 pm to 2h30–3h00 am. I do my first nap at home before leaving for work at 7h am for 25 minutes, my second nap is at 1h pm during lunch time for 20 minutes (in my car) and the third one at home again at 6h30 pm for 25 minutes after working hours.

\n

\"Screenshots

Smart Sleep on iOS helps me to track my naps and to wake up. The start was not easy.

\n

It is not always simple to be regular, but it’s really essential to listen to your body. I remember sometimes at the beginning sleeping much more in the weekend because I missed some naps during the weekdays. I simply took attention to my body reactions and even you need to try hard at the beginning to create a new habit, your body can adapt if your are really aware of its needs.

\n

Today I am able to fall in sleep in less than 5 minutes (I slow down my breath, put myself in a stress-free position and not let my thoughts haunt me). That helps a lot when you need to do a 20 minutes nap.

\n

Some weeks after, I started to feel that my life can be different, I could do things differently and put a real step forward to my dreams and achieve more than I always wanted to do.

\n

Five minutes to change your way of thinking

\n

Putting a step forward in life, is putting a step ahead of others. And to feel good with others, you need to feel good in your life. And it started with me being grateful…

\n
\n

Gratitude is the quality of being thankful and simply appreciate what we have, even in general we don’t want to see how lucky we are.

\n
\n

I started writing into “The Five Minute Journal”. It is not a journal like the others. It allows me to be grateful, mindful and plan which great things will happen during my day. I feel positive and happier when I use it.

\n
View post on Twitter
\n

Starting my day with my journal, creating and tracking new habits were just the beginning of my journey.

\n

The “Miracle Morning” saved me (S.A.V.E.R.S.)

\n

Sleeping less allowed me to have time… much more time (one more day in my week). And even I love my work and to be a programmer, I felt I gave maybe too much to my coding life and not to my personal life and personal growth. I needed to put a real daily routine, a way to equilibrate my life in all its aspects.

\n

After starting my Five Minute Journal, I discovered “The Miracle Morning” by Hal Elrod, reading articles and his book. That was exactly what I was looking for!

\n

Then I started to put a morning routine using my favorite Todo app (Todoist).

\n
View post on Twitter
\n

S.A.V.E.R.S means Silence, Affirmations, Visualization, Exercises, Reading and Scribing. These 6 elements are part of my daily routine now and help me to start my day in the most positive way.

\n

My typical Morning Routine and his apps

\n

Waking up at 2h30 am, I start my day with a glass of water and a personal recipe with lemon, water, cinnamon, cayenne, ginger, apple cider, honey and collagen (everything organic). It allows me to feel good for whatever I ate the day before or will eat during the day. That did a huge change for my stomach, and I never had any stomach problems or pain again. (Remember in Mauritius, most of the recipes are spicy).

\n

I brew my “Kick Ass” coffee from Kicking Horse Coffee with my beautiful Java Presse (I really love USA brands). I don’t really need coffee, but it’s more a personal pleasure for my morning ritual. (Sometimes I drink the Bulletproof Coffee by Dave Asprey with Coconut Oil and Ghee).

\n

\"\"

\n

For meditation I use the excellent app calm.com. It can take only 10 minutes sometimes more, but that practice in my life had a significant impact in my way I live the present and feel more peaceful. There are other useful apps like Headspace amongst others.

\n

I wrote some affirmations I read every morning and before to go bed. After I take some minutes to visualize what I want to achieve in my day, that helps me to keep focus.

\n

I use Day One for scribbing whatever I feel or have in mind during my day and recently move to Fields Notes for my Morning Pages (thanks to Loic Le Meur).

\n

I put Brain.fm for 15 minutes (with my headphones) and read at least for 15 minutes. I created a list of books on Evernote I want to read each week and month. I’m challenging myself with Goodreads to read 50 books in 2017… I am late already… :)

\n

I regularly undertake activities like coding, watching tutorials, design, social media updates, new projects depending on the day. It is normally between 1h to 1h30 hours in the morning and oneextra hour in the evening.

\n

Then when my wife wakes up, we go for a 20 minutes walk in the park near our apartment. Before I take my shower, 5 minutes of plank and 5 minutes of shaper, it’s enough for me to sweat and feel good.

\n

I add when I have 20 minutes free some Yoga exercises with the help of Daily Yoga. Otherwise I participate every Saturday morning to a session class.

\n

\"The

\n

I take my cold shower hearing my favorite podcasts The School of Greatness by Lewis Howes, The 5 AM miracle by Jeff Sanders and The Tim Ferris Show by Tim Ferriss. Can’t leave home without hearing these guys!

\n

Since few weeks, I’m practicing Intermittent Fasting, so I don’t take breakfast but instead, I prepare a natural juice with cucumber, lemon, parsley, apple, carrot, wheat grass and with all others vegetables and fruits I find around.

\n

During my short trajet to work (10 minutes), I listen with my wife some best-selling nonfiction books using Blinkist. I really recommend you to take a premium account, it is worths every penny.

\n

Then I start my day at work with some other routines I may share in another article.

\n

(I use to track some new habits on my mini-book “Track your habits” by kikki.k and with the Coach.me app.)

\n

My new habits and Routines are only at the beginning

\n

Experimenting lot of new things in the previous 4 months, give me the will to go further and do everything I can to achieve my goals and dreams.

\n

I know I’m still adjusting with my Morning Routine, but I can’t go back after all what I discovered, all people I meet that give me some mindfulness and clarity in the life. I’m so grateful for all of this.

\n

Nothing can stop me now to fulfill every single unique present moment of my life.

\n
\n

Tell me about your Daily or Morning Routine

\n

And you, do you have a daily or morning routine?

\n

What you do daily to improve your life, achieve your goals and take actions to build the life you want?

", "url": "https://thedaviddias.dev/articles/how-morning-routine-can-positively-change-your-life-forever", "title": "How a Morning Routine can positively change your life forever", "summary": "Having a Morning Routine can positively change your life in so many good ways. Through experimentation, I explore ways to improve my health and my mindset.", diff --git a/apps/blog/public/rss/feed.xml b/apps/blog/public/rss/feed.xml index 1e16e2a3..19cbc97f 100644 --- a/apps/blog/public/rss/feed.xml +++ b/apps/blog/public/rss/feed.xml @@ -4,7 +4,7 @@ The David Dias | Front-End Developer, Podcaster & Content Creator https://thedaviddias.dev Hey, I'm David Dias, a Front-End Developer based in Toronto/Canada. I love discussing code, technology, expatriation and life. - Wed, 02 Aug 2023 23:12:10 GMT + Thu, 03 Aug 2023 00:30:40 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en-US @@ -44,12 +44,12 @@

Last year, I discovered the only MacOS that simply convert multiple MP3 files into one M4B file. It's called AudioBookBinder App Store page and can be found on the App Store for free!

How to use AudioBookBinder?

AudioBook Binder is a simple app that does one thing and does it well. It converts MP3 files into M4B files. You drag your MP3 files into the app, and the cover, and it will convert them into one M4B file.

-

AudioBookBinder Files View
AudioBookBinder Files View
-
AudioBookBinder Cover View
AudioBookBinder Cover View

+

AudioBookBinder Files View

AudioBookBinder Files View
+AudioBookBinder Cover View
AudioBookBinder Cover View

The options are limited but sufficient. You can set the cover, the title, the author, and the genre. I usually leave it to "Audiobook" for the genre.

I hope you find this app useful as I did.

And in case you store some audiobooks on your own server, you take a look at audiobookshelf. It's a Google and Apple app that allows you to listen to your audiobooks from your own server. It's open-source and free. You're welcome!

-

Audiobookshelf
Home page of Audiobookshelf

]]> +

Audiobookshelf

Home page of Audiobookshelf

]]> thedaviddias@gmail.com (David Dias) @@ -83,7 +83,7 @@ The real purpose of the You may be getting the issue "The set-output command is deprecated and will be disabled soon. Please upgrade to using Environment Files." from your Github workflow.

-

Screenshot showing the 'set-output' issue from the Github workflows

+

Screenshot showing the 'set-output' issue from the Github workflows

Few months ago, I choose to update some of my Github workflows to read from my .nvmrc file instead of manually specifying my node version.

on: push
 
@@ -145,7 +145,7 @@ jobs:
             Thu, 28 Jul 2022 15:47:33 GMT
             
             This was a long wait! After months of lurking on Youtube watching others playing with their Deck, I finally got my purchase confirmation email for the Steam Deck!

-

+

What kept me sane during this time was probably this tool created by Labidou51. I was able to get a sense of when I would receive the email confirmation.