<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/logrocket/best-of/2021/12" -->

---
title: Best LogRocket posts — December 2021 | daily.dev
description: The most upvoted LogRocket posts from December 2021, curated by the daily.dev community.
canonical: https://daily.dev/sources/logrocket/best-of/2021/12
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/logrocket/best-of/2021/12
og:type: website
og:site_name: daily.dev
og:title: Best LogRocket posts — December 2021 | daily.dev
og:description: The most upvoted LogRocket posts from December 2021, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of LogRocket — December 2021

1. 1  
[](https://daily.dev/posts/best-node-js-cms-platforms-for-2022-mkqhzn-7x "Best Node.js CMS platforms for 2022")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Best Node.js CMS platforms for 2022  
CMSs enable people without a strong technical background to publish content. There are different type of CMSs that perform different purposes and come with different features. In this article, we will learn about some of the best Node.js CMSs to use in 2022, and hopefully can serve as a guide to choose the best CMS that fits our requirements.  
94  
6
2. 2  
[](https://daily.dev/posts/the-best-typescript-ides-nvbsa-bup "The best TypeScript IDEs")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
The best TypeScript IDEs  
There are many IDEs available, each with a different feature set and design ethos. In this article, we’ll compare some of the most popular IDEs based on the following criteria: ease of use, extensibility, performance and debugging ability. These IDEs include:Visual Studio Code, WebStorm and Visual Studio 2019/2022.  
48  
1
3. 3  
[](https://daily.dev/posts/what-s-new-in-django-v4-0-rnz4ggld3 "What’s new in Django v4.0")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
What’s new in Django v4.0  
In December 2021, the Django team released Django v4.0\. It contains various upgrades to the framework, like improved customization and the use of the template engine for forms, Formsets, and ErrorList. In this article, we’ll go through some of the new features in Django v 4.0, as well as some older third-party versions.  
46  
3
4. 4  
[](https://daily.dev/posts/what-s-new-in-typescript-4-5-wxn3uwkuo "What’s new in TypeScript 4.5")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
What’s new in TypeScript 4.5  
TypeScript 4.5 ships with some amazing features out of the box. These include enhanced Awaited type that improves asynchronous programming, supported lib from node\_modules for painless upgrades, and performance optimization by using the realpathSync.native function. In the beta release, TypeScript added ES modules support for Node 12.  
39  
1
5. 5  
[](https://daily.dev/posts/understanding-axios-post-requests-x416etx6c "Understanding Axios POST requests")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Understanding Axios POST requests  
The Axios library makes asynchronous requests to REST endpoints in browsers and Node.js. It offers a lot of methods like POST , PUT , PATCH , GET , DELETE , and so on. In this article, we’ll learn how to use the Axios POST method.  
26
6. 6  
[](https://daily.dev/posts/purgecss-remove-unused-css-code-wutk11uvs "PurgeCSS: Remove unused CSS code")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
PurgeCSS: Remove unused CSS code  
Unused code can result in a larger file size, harm performance, make it easy to lose track of each item, and cause optimization problems. Removing unnecessary code will make your website load faster because the browser will request and parse less code. In this tutorial, we’ll explore PurgeCSS, a tool for removing unused CSS code.  
24
7. 7  
[](https://daily.dev/posts/top-websocket-libraries-for-node-js-in-2022-3freozcl7 "Top WebSocket libraries for Node.js in 2022")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Top WebSocket libraries for Node.js in 2022  
WebSockets are a computer communications protocol that provide data and information between two parties over a single connection. WebSockets provide an open connection between the server and the client, allowing for easy, immediate, two-way communication. In this article, we’ll discuss eight Node.js WebSocket libraries that you should consider in 2022.  
23
8. 8  
[](https://daily.dev/posts/how-to-build-a-blockchain-from-scratch-with-go-n3rw6jzgu "How to build a blockchain from scratch with Go")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
How to build a blockchain from scratch with Go  
This tutorial aims to teach you how blockchains work by guiding you through building one from scratch with Go. Blockchains are the underlying technology for many decentralized applications and cryptocurrencies. Go provides many unique features and functionalities that make it a good fit for building a blockchain. Go is also excellent for building applications that require parallelism and concurrency.  
23
9. 9  
[](https://daily.dev/posts/modern-api-data-fetching-methods-in-react-ldwmvz9me "Modern API data-fetching methods in React")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Modern API data-fetching methods in React  
React beginners might wonder, “What exactly is an API?” To understand what an application programming interface (API) is, let’s think of an application where a section displays the daily weather forecast of the present city. With the API, we don’t need to create everything from scratch, simplifying our process.  
22
10. 10  
[](https://daily.dev/posts/react-remix-vs-next-js-vs-sveltekit-qwlhmgwt1 "React Remix vs. Next.js vs. SvelteKit")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
React Remix vs. Next.js vs. SvelteKit  
Remix is a full-stack web framework for from the creators of React Router. It has gone from a paid to a free model, which is big news within the meta-framework community. In this post, we’ll compare a few of their features, ranging from initiating a project to adding styling.  
18  
1
11. 11  
[](https://daily.dev/posts/underrated-react-hooks-you-re-missing-out-on-53opvfhyu "Underrated React Hooks you’re missing out on")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Underrated React Hooks you’re missing out on  
React Hooks allow us to use function components throughout projects to build both small and large applications. In React, data is passed from parent to child components via props, known as unidirectional data flow. The useImperativeHandle Hook allows us to expose a value, state, or function inside a child component to the parent component through ref. We’ll explore their use cases, syntax, and a few code examples.  
18
12. 12  
[](https://daily.dev/posts/react-server-components-in-next-js-12-dteodsyio "React Server Components in Next.js 12")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
React Server Components in Next.js 12  
React Server Components (RSC) aims to cut out the work we usually give to the client by rendering everything, including the components, on the server. This approach produces zero bundle-sized components, consequently improving the load time of your web pages. RSC won’t be shipped with the first version of React 18 and is only available in certain frameworks — such as Next.js — under an experimental flag.  
17  
1
13. 13  
[](https://daily.dev/posts/building-a-vue-3-component-library-2e4dpiaku "Building a Vue 3 component library")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Building a Vue 3 component library  
component libraries are a great way to collect common UI solutions into a package that you can reuse across your own projects or share with the Vue open-source community. To create a component library, we will not use the normal scaffolding process of Vue.js projects, i.e., Vue CLI. We will instead create a project folder from scratch where we’llinitialize npm and Git.  
17
14. 14  
[](https://daily.dev/posts/generating-pdfs-in-react-with-react-pdf-bjsq48clc "Generating PDFs in React with react-pdf")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Generating PDFs in React with react-pdf  
react-pdf is an open source, easy-to-use library that allows developers to generate PDF documents in a React environment. In this article, you will learn the basics of the react- PDF library. We will cover the following concepts: Fundamental components Embedding links Displaying annotations Displaying graphics in a Canvas Displaying SVG images Rendering JPG or PNG photos using flex boxes.  
16
15. 15  
[](https://daily.dev/posts/netlify-vs-cloudflare-pages-hiifavsyh "Netlify vs. Cloudflare Pages")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Netlify vs. Cloudflare Pages  
serverless technologies help developers deploy and manage apps through a cloud provider. Cloudflare Pages is a JAMstack platform for frontend developers to collaborate and deploy websites. Netlify allows users to sign up or log in via third parties like GitHub, GitLab, Bitbucket, and email.  
14
16. 16  
[](https://daily.dev/posts/building-a-pwa-with-vue-js-1rv87m8-s "Building a PWA with Vue.js")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Building a PWA with Vue.js  
A progressive web app is a website with features that make it look, feel, and behave like a native app. Unlike traditional websites, you can install a PWA on your device. You can prompt users to install your PWA when they visit your site. A PWA opens in its own fullscreen window — no just a browser bar, just a full-screen experience.  
13
17. 17  
[](https://daily.dev/posts/building-a-web-scraper-in-go-with-colly-pcwapgfpj "Building a web scraper in Go with Colly")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Building a web scraper in Go with Colly  
In this tutorial, we will be taking a look at a Go package that allows us to build web scrapers, Colly. We will be building a basic web scraper that gets product information from an ecommerce store and saves the data to a JSON file. To follow along with the tutorial, you need to have Go installed on your local machine and you need at least a basic knowledge of Go.  
13
18. 18  
[](https://daily.dev/posts/build-a-component-library-with-react-and-typescript-ccxtwsqsf "Build a component library with React and TypeScript")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Build a component library with React and TypeScript  
React is still the most famous frontend library in the web developer community. With the introduction of TypeScript support, Hooks, <Suspense> and React Server Components, we can assume that React will still hold the crown for best frontend tool. In the following article, we’ll learn how to build our component library with TypeScript and publish it to npm.  
13
19. 19  
[](https://daily.dev/posts/using-react-usestate-with-an-object-c6qk4yrc8 "Using React useState with an object")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Using React useState with an object  
React was created to help developers easily and efficiently perform Document Object Model (DOM) manipulations in their browsers. One of React’s most commonly used Hooks is useState , which manages states in React projects as well as objects’ states. With an object, however, we can’t update it directly or the component will not rerender.  
12
20. 20  
[](https://daily.dev/posts/new-features-in-unocss-a-tailwind-css-alternative-dabkcocdw "New features in UnoCSS: A Tailwind CSS alternative")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
New features in UnoCSS: A Tailwind CSS alternative  
UnoCSS is a fully customizable Atomic CSS engine inspired by Windi CSS, Tailwind CSS, and Twind. It is not a CSS framework, but it is an engine that you can use to create one. With presets, you can create your own custom framework inside of UnoCSS.  
11  
1

[See all LogRocket archives](/sources/logrocket/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/logrocket/best-of/2021/12#page","url":"https://daily.dev/sources/logrocket/best-of/2021/12","name":"Best LogRocket Posts — December 2021","description":"The most upvoted LogRocket posts from December 2021, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/logrocket/best-of/2021/12#items","numberOfItems":20,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/best-node-js-cms-platforms-for-2022-mkqhzn-7x","name":"Best Node.js CMS platforms for 2022"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/the-best-typescript-ides-nvbsa-bup","name":"The best TypeScript IDEs"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/what-s-new-in-django-v4-0-rnz4ggld3","name":"What’s new in Django v4.0"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/what-s-new-in-typescript-4-5-wxn3uwkuo","name":"What’s new in TypeScript 4.5"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/understanding-axios-post-requests-x416etx6c","name":"Understanding Axios POST requests"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/purgecss-remove-unused-css-code-wutk11uvs","name":"PurgeCSS: Remove unused CSS code"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/top-websocket-libraries-for-node-js-in-2022-3freozcl7","name":"Top WebSocket libraries for Node.js in 2022"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/how-to-build-a-blockchain-from-scratch-with-go-n3rw6jzgu","name":"How to build a blockchain from scratch with Go"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/modern-api-data-fetching-methods-in-react-ldwmvz9me","name":"Modern API data-fetching methods in React"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/react-remix-vs-next-js-vs-sveltekit-qwlhmgwt1","name":"React Remix vs. Next.js vs. SvelteKit"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/underrated-react-hooks-you-re-missing-out-on-53opvfhyu","name":"Underrated React Hooks you’re missing out on"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/react-server-components-in-next-js-12-dteodsyio","name":"React Server Components in Next.js 12"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/building-a-vue-3-component-library-2e4dpiaku","name":"Building a Vue 3 component library"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/generating-pdfs-in-react-with-react-pdf-bjsq48clc","name":"Generating PDFs in React with react-pdf"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/netlify-vs-cloudflare-pages-hiifavsyh","name":"Netlify vs. Cloudflare Pages"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/building-a-pwa-with-vue-js-1rv87m8-s","name":"Building a PWA with Vue.js"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/building-a-web-scraper-in-go-with-colly-pcwapgfpj","name":"Building a web scraper in Go with Colly"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/build-a-component-library-with-react-and-typescript-ccxtwsqsf","name":"Build a component library with React and TypeScript"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/using-react-usestate-with-an-object-c6qk4yrc8","name":"Using React useState with an object"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/new-features-in-unocss-a-tailwind-css-alternative-dabkcocdw","name":"New features in UnoCSS: A Tailwind CSS alternative"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"LogRocket","item":"https://daily.dev/sources/logrocket"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/logrocket/best-of"},{"@type":"ListItem","position":5,"name":"December 2021"}]}]}
```

