notes mic0.me

Libraries for the second half of 2021

Over the first half of the year, I have remade my website and learned many new and exciting technologies. Today, as July is coming to an end, I want to share with you what I have learned over the last couple of months, and what I want to create and master during the last five months of 2021.

Technologies I'm using

For the past year, I have been using ExpressJS, Pug, and MongoDB as my main web development stack.

Earlier this year, I decided to rewrite my website to React as I wanted to learn a popular and modern framework while improving loading speed and hosting costs. After I started working on it, I immediately realized that I had not only to rewrite it, I also had to redesign it. Development using Create React App was painful, so I soon gave up and started looking for some alternatives to it. After a few hours of searching, I have found NextJS, which turned out to be a game-changer along with Vercel. It was so easy to create a page, not having to think about adding Router entry or complex all-route catching in CRA. I have also discovered TailwindCSS, which simplifies CSS so much! It simplified this website so much that it uses only around 300 lines of CSS, where 150 of them is just Prism theme.

What I want to learn

During the past six months, I have stumbled across many new and exciting technologies which I wanted to master but didn't have the time to. Here are some of them.

Stripe API

I think Stripe is the future of online payments. With the rising fees of PayPal and not-so-great user experience, it is the best available option on the market. Discord, Slack, Zapier, and much more use Stripe for payments, verification of identity, and fraud prevention. I wanted to learn some online payment systems for a while now, and Stripe, with its extensive and well-documented API, came as the first choice.

TypeScript

I have known TypeScript for a while now, but I have never deep-dived into this ecosystem. It really helps write a better and less buggy code. For me, the most important feature is static typing, as it prevents many JavaScript errors. But it has many other cool features, like backward ECMAScript compatibility (via TypeScript compiler), which means you can develop an app in TS for some older browsers. And its IDE support is just incredible, making it easier to debug and write code.

Prisma

Prisma makes it easier to develop an app and change your database provider at any moment. Do you want to locally develop using SQLite? No problem. Do you want to deploy your production fast onto Vercel and connect your database to MongoDB Atlas? Go ahead. I love this approach, and that's why I want to learn how to use this ORM.

Discord.js 13

It is overpacked with new features that Discord released over the last couple of months - threads, buttons, select menus, and slash commands. I'm hoping to build a big tickets bot in TypeScript using, among other things, the Stripe API and Prisma. Stay tuned 😄

Some other cool technologies

Here are some other interesting things that I would love to learn over the next couple of months.

  1. Websockets - especially JS/TS library - socket.io
  2. Strapi
  3. JSON Schemas
  4. Firebase - mainly Authentication and Firestore