<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/tuts_plus/best-of/2023/04" -->

---
title: Best Tuts+ posts — April 2023 | daily.dev
description: The most upvoted Tuts+ posts from April 2023, curated by the daily.dev community.
canonical: https://daily.dev/sources/tuts_plus/best-of/2023/04
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/tuts_plus/best-of/2023/04
og:type: website
og:site_name: daily.dev
og:title: Best Tuts+ posts — April 2023 | daily.dev
og:description: The most upvoted Tuts+ posts from April 2023, 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 Tuts+ — April 2023

1. 1  
[](https://daily.dev/posts/learn-functional-programming-in-javascript-kfjxoe7cj "Learn Functional Programming in JavaScript")  
Article  
![Avatar of tuts_plus](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/tuts_plus)Tuts+ · 3y  
Learn Functional Programming in JavaScript  
Learn functional programming with JavaScript, covering concepts like first-class functions, immutability, composing functions, currying, and working with the DOM. Set up your development area and learn about composition, handling events, and working with arrays.  
55
2. 2  
[](https://daily.dev/posts/using-async-and-await-in-javascript-ogz6kdelk "Using async and await in JavaScript")  
Article  
![Avatar of tuts_plus](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/tuts_plus)Tuts+ · 3y  
Using async and await in JavaScript  
In this tutorial, we will learn about the and keywords in JavaScript which enable us to use promises effectively and write cleaner asynchronous code. The keyword is used to wait for a to resolve or reject and then get the fulfilled value. We will now write two different greeting functions and see the order in which they output the results.  
29  
1
3. 3  
[](https://daily.dev/posts/rewriting-history-with-git-rebase-c4rxw9pqk "Rewriting History With Git Rebase")  
Article  
![Avatar of tuts_plus](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/tuts_plus)Tuts+ · 3y  
Rewriting History With Git Rebase  
Learn about the alternative to git merge and the benefits and dangers of using git rebase. Find out how to resolve conflicts during a git rebase.  
21  
1
4. 4  
[](https://daily.dev/posts/full-text-search-in-mongodb-c5pmmgbbb "Full-Text Search in MongoDB")  
Article  
![Avatar of tuts_plus](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/tuts_plus)Tuts+ · 3y  
Full-Text Search in MongoDB  
Learn about full-text search in MongoDB, including the basics, alternatives to full-text search, and how to create a text index.  
16  
1
5. 5  
[](https://daily.dev/posts/creating-a-blogging-app-using-react-part-2-user-sign-up-m1sfawasu "Creating a Blogging App Using React, Part 2: User Sign-Up")  
Article  
![Avatar of tuts_plus](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/tuts_plus)Tuts+ · 3y  
Creating a Blogging App Using React, Part 2: User Sign-Up  
Learn how to create a blogging app using React. This part of the tutorial focuses on implementing the user sign-up functionality. It covers cloning the GitHub repo, setting up the server, capturing values in the client, and implementing validation.  
12  
1

[See all Tuts+ archives](/sources/tuts%5Fplus/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/tuts_plus/best-of/2023/04#page","url":"https://daily.dev/sources/tuts_plus/best-of/2023/04","name":"Best Tuts+ Posts — April 2023","description":"The most upvoted Tuts+ posts from April 2023, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/tuts_plus/best-of/2023/04#items","numberOfItems":5,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/learn-functional-programming-in-javascript-kfjxoe7cj","name":"Learn Functional Programming in JavaScript"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/using-async-and-await-in-javascript-ogz6kdelk","name":"Using async and await in JavaScript"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/rewriting-history-with-git-rebase-c4rxw9pqk","name":"Rewriting History With Git Rebase"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/full-text-search-in-mongodb-c5pmmgbbb","name":"Full-Text Search in MongoDB"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/creating-a-blogging-app-using-react-part-2-user-sign-up-m1sfawasu","name":"Creating a Blogging App Using React, Part 2: User Sign-Up"}]},{"@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":"Tuts+","item":"https://daily.dev/sources/tuts_plus"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/tuts_plus/best-of"},{"@type":"ListItem","position":5,"name":"April 2023"}]}]}
```

