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

---
title: Best LogRocket posts — November 2021 | daily.dev
description: The most upvoted LogRocket posts from November 2021, curated by the daily.dev community.
canonical: https://daily.dev/sources/logrocket/best-of/2021/11
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/logrocket/best-of/2021/11
og:type: website
og:site_name: daily.dev
og:title: Best LogRocket posts — November 2021 | daily.dev
og:description: The most upvoted LogRocket posts from November 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 — November 2021

1. 1  
[](https://daily.dev/posts/top-docker-alternatives-for-2022-f0tpixofi "Top Docker alternatives for 2022")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Top Docker alternatives for 2022  
In August 2021, Docker Desktop will no longer be free for companies with more than 250 employees or over $10 million in revenue. In this article, we’ll cover a few Docker alternatives that act as drop-in replacements for various aspects of the Docker ecosystem. Each tool adheres to the Open Containers Initiative (OCI) specification.  
47  
2
2. 2  
[](https://daily.dev/posts/guide-to-blockchain-game-development-ap1briqjm "Guide to blockchain game development")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Guide to blockchain game development  
Blockchain development has grown and evolved rapidly over the past few years. From decentralized applications (DApps), to decentralized finance (DeFi) software, to NFTs, to DAOs, blockchain technology has infiltrated a wide range of industries. In this tutorial, we’ll explore the emerging trend of blockchain game development. Once you understand the basic structure involved, you can use the tools available within the crypto space to build games.  
30
3. 3  
[](https://daily.dev/posts/build-a-sitemap-generator-in-next-js-x-xcat2uc "Build a sitemap generator in Next.js")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Build a sitemap generator in Next.js  
Next.js is an efficient tool for optimizing React applications in production. To implement effective SEO, we first need to understand how Next.js handles page rendering. A popular way to handle SEO is with a sitemap, which is a collection of all the visible URLs in your web application.  
27
4. 4  
[](https://daily.dev/posts/how-to-build-a-blockchain-in-rust-p-hxgp-c "How to build a blockchain in Rust")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
How to build a blockchain in Rust  
In this guide, we’ll build a very simple blockchain application from scratch using Rust. Our app will not be particularly efficient, secure, or robust, but it will help you understand how some of the fundamental concepts behind widely known blockchain systems can be implemented in a simple way. We won’t go into every detail on every concept, and the implementation will have some serious shortcomings.  
20
5. 5  
[](https://daily.dev/posts/when-and-how-to-use-interfaces-and-classes-in-typescript-bv3esi6dq "When and how to use interfaces and classes in TypeScript")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
When and how to use interfaces and classes in TypeScript  
Typescript provides additional syntax for type checking and converts code to clean JavaScript that runs on any platform and browser. In object-oriented programming, a class is a blueprint or template by which we can create objects with specific properties and methods. In this article, I’ll show you what interfaces and classes are and when to use one or both of them.  
16  
1
6. 6  
[](https://daily.dev/posts/introduction-to-svelte-actions-thejtamfz "Introduction to Svelte Actions")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Introduction to Svelte Actions  
Svelte actions are one of the less commonly used features. An action allows you to run a function when an element is added to the DOM. They can greatly simplify your code and allow you to reuse bits of logic. In this post, I’ll give two examples where a Svelte action would be useful and show why an action is the right tool for the job.  
15  
1
7. 7  
[](https://daily.dev/posts/options-for-optimizing-caching-in-react-jf2hqba3p "Options for optimizing caching in React")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Options for optimizing caching in React  
React is one of the most popular frontend libraries for creating performant web applications. The biggest challenge regarding React is avoiding unnecessary renders, which can cause major performance issues. In this article, we’ll go over a few different ways to optimize the performance of React applications through different methods for caching.  
14  
1
8. 8  
[](https://daily.dev/posts/introduction-to-solidjs-ggbwky3ur "Introduction to SolidJS")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Introduction to SolidJS  
SolidJS was created by Ryan Carniato and open sourced in 2018\. It shares almost all the same philosophies with React, with a few exceptions. The absence of a virtual DOM, and the rendering of components only once makes it one of the fastest JavaScript frameworks available today.  
13  
1
9. 9  
[](https://daily.dev/posts/theatre-js-create-intricate-and-powerful-animations-in-javascript-rhg4hwu1t "Theatre.js: Create intricate and powerful animations in JavaScript")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Theatre.js: Create intricate and powerful animations in JavaScript  
Theatre.js is a motion graphics library that allows you to build powerful animations easily. It literally turns your browser into an animation studio. In this article, we’ll explore how to set up and create your own animation lab with Theatre.js and the Parcel build tool.  
13
10. 10  
[](https://daily.dev/posts/kafka-vs-rabbitmq-comparing-node-js-message-brokers-eqir6hmmj "Kafka vs. RabbitMQ: Comparing Node.js message brokers")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Kafka vs. RabbitMQ: Comparing Node.js message brokers  
A message broker is a computer program that allows software, systems, and services to communicate with each other and exchange data. Message brokers rely on a component called message queues that store messages until a consumer service can process them. In this article, we’ll compare two Node.js message brokers: Apache Kafka and RabbitMQ.  
12
11. 11  
[](https://daily.dev/posts/how-to-create-your-own-cryptocurrency-in-javascript-z-zpxx7zd "How to create your own cryptocurrency in JavaScript")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
How to create your own cryptocurrency in JavaScript  
Cryptocurrency is a great way to send money anonymously to others. The network is decentralized, which means there’s no one looking over the transaction. Some people think this is not good because most scammers operate on cryptocurrencies. But some think that this is another step towards privacy. We are going to create a cryptocurrency using JavaScript.  
12  
1
12. 12  
[](https://daily.dev/posts/top-5-decentralized-app-development-frameworks-bn-yaeq6q "Top 5 decentralized app development frameworks")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Top 5 decentralized app development frameworks  
Decentralized applications (DApps) provide a new way to interact with web applications. DApps that are based on blockchain technology run on a peer-to-peer (P2P) network of several computers or servers. These applications are built on the concept of smart contracts and the consensus process.  
11
13. 13  
[](https://daily.dev/posts/build-your-own-component-library-with-svelte-zp1vlnrct "Build your own component library with Svelte")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
Build your own component library with Svelte  
Svelte is an open source JavaScript component framework for building web applications. Svelte takes a different approach than all the existing web frameworks like React, Angular, and Vue, which follow declarative, state-driven code. In this article, we are going to learn how to build a component library on our own.  
11
14. 14  
[](https://daily.dev/posts/crud-with-golang-and-cockroachdb-4ipngguvn "CRUD with Golang and CockroachDB")  
Article  
![Avatar of logrocket](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/logrocket)LogRocket · 5y  
CRUD with Golang and CockroachDB  
CockroachDB is a fast database that’s easy to set up. It scales easily (without the manual complexity of sharding), rebalances and repairs itself automatically. The app we will be building is a full-stack web app that allows us to get, add, update, and delete names.  
10

[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/11#page","url":"https://daily.dev/sources/logrocket/best-of/2021/11","name":"Best LogRocket Posts — November 2021","description":"The most upvoted LogRocket posts from November 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/11#items","numberOfItems":14,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/top-docker-alternatives-for-2022-f0tpixofi","name":"Top Docker alternatives for 2022"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/guide-to-blockchain-game-development-ap1briqjm","name":"Guide to blockchain game development"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/build-a-sitemap-generator-in-next-js-x-xcat2uc","name":"Build a sitemap generator in Next.js"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/how-to-build-a-blockchain-in-rust-p-hxgp-c","name":"How to build a blockchain in Rust"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/when-and-how-to-use-interfaces-and-classes-in-typescript-bv3esi6dq","name":"When and how to use interfaces and classes in TypeScript"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/introduction-to-svelte-actions-thejtamfz","name":"Introduction to Svelte Actions"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/options-for-optimizing-caching-in-react-jf2hqba3p","name":"Options for optimizing caching in React"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/introduction-to-solidjs-ggbwky3ur","name":"Introduction to SolidJS"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/theatre-js-create-intricate-and-powerful-animations-in-javascript-rhg4hwu1t","name":"Theatre.js: Create intricate and powerful animations in JavaScript"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/kafka-vs-rabbitmq-comparing-node-js-message-brokers-eqir6hmmj","name":"Kafka vs. RabbitMQ: Comparing Node.js message brokers"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/how-to-create-your-own-cryptocurrency-in-javascript-z-zpxx7zd","name":"How to create your own cryptocurrency in JavaScript"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/top-5-decentralized-app-development-frameworks-bn-yaeq6q","name":"Top 5 decentralized app development frameworks"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/build-your-own-component-library-with-svelte-zp1vlnrct","name":"Build your own component library with Svelte"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/crud-with-golang-and-cockroachdb-4ipngguvn","name":"CRUD with Golang and CockroachDB"}]},{"@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":"November 2021"}]}]}
```

