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

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

1. 1  
[](/posts/sharing-a-state-between-windows-without-a-serve-nrutfuxaj "Sharing a state between windows without a serve")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 3y  
Sharing a state between windows without a serve  
Learn how to share a state between multiple windows without a server by using Local Storage and Shared Workers. Understand the concept of Shared Workers and their role in communication between instances of the same script.

1.3K  
41
2. 2  
[](/posts/bun-1-0-xeb1bb2m9 "Bun 1.0")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 3y  
Bun 1.0  
Bun is a fast, all-in-one toolkit for running, building, testing, and debugging JavaScript and TypeScript. Bun's goal is to eliminate slowness and complexity without throwing away everything that's great about JavaScript. Bun is tested against test suites of the most popular Node.js packages on Node.  
788  
47
3. 3  
[](/posts/frontend-developer-roadmap-3yxhfdqd6 "Frontend Developer Roadmap")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 3y  
Frontend Developer Roadmap  
Front-end development is the development of visual and interactive elements of a website that users interact with directly. It's a combination of HTML, CSS and JavaScript, where HTML provides the structure, CSS the styling and layout, and JavaScript the dynamic behaviour and interactivity.  
589  
72
4. 4  
[](/posts/what-s-new-in-javascript-in-2023-changes-with-code-examples-m5fgpok7b "What's New in JavaScript in 2023 – Changes with Code Examples")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 3y  
What's New in JavaScript in 2023 – Changes with Code Examples  
ECMAScript 2023 introduces changes to JavaScript that make programming easier. The changes include the Object.groupBy method for grouping objects based on a property value, the Array.toSliced(), Array.toSorted(), and Array.toReversed() methods for manipulating arrays without mutating the original array, and the findLast() and findLastIndex() methods for finding the last element or index in an array that satisfies a condition.  
564  
27
5. 5  
[](/posts/10-web-development-trends-in-2023-5h3aw-hrx "10 Web Development Trends in 2023")  
Article  
![Avatar of robinwieruch](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/0e34f790e35d4c21983b8e9512a8cc7f)Robin Wieruch · 4y  
10 Web Development Trends in 2023  
The most popular meta framework called Next.js comes on top of React.js. SSR is all over the place when working with JavaScript frameworks these days. Other meta frameworks like SvelteKit are catching up. SSR has been competing with static site generation (SSG) for a while for the perfect performance.  
559  
58
6. 6  
[](/posts/why-signals-are-better-than-react-hooks-dgesd3rrx "Why Signals Are Better Than React Hooks")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 3y  
Why Signals Are Better Than React Hooks  
Discover the benefits of using signals over React hooks, including simplified usage, improved performance, and eliminating complex rules. Signals handle dependencies automatically and can be used anywhere in or outside of a component. Performance metrics have shown significant speed improvements with the use of signals.  
515  
32
7. 7  
[](/posts/writing-clean-code-best-practices-and-principles-2iykukjhq "Writing Clean Code: Best Practices and Principles")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 3y  
Writing Clean Code: Best Practices and Principles  
Clean code is code that is easy to read, easy to understand, and easy to modify. Clean code follows a set of conventions and best practices that make it more consistent, making it easier for multiple developers to work on the same project seamlessly. Code that is difficult to understand is more prone to errors during modifications or enhancements.  
505  
27
8. 8  
[](/posts/advanced-javascript-functions-to-improve-code-quality-5og1ralxl "Advanced JavaScript Functions to Improve Code Quality")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 4y  
Advanced JavaScript Functions to Improve Code Quality  
Learn advanced JavaScript functions to improve code quality, including Debounce, Throttle, Once, Memoize, Curry, Partial, Pipe, Compose, Pick, Omit, and Zip. Boost your performance and make your code more beautiful.  
491  
64
9. 9  
[](/posts/js-design-patterns-a-comprehensive-guide-dpzxwdek4 "JS Design Patterns: A Comprehensive Guide")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 3y  
JS Design Patterns: A Comprehensive Guide  
This post explores a range of essential design patterns in JavaScript, encompassing creational, structural, and behavioral patterns. By leveraging these design patterns, JavaScript developers can improve code reusability, maintainability, and overall system performance.  
464  
8
10. 10  
[](/posts/introducing-freecodecamp-press-free-books-for-developers-m42onyqxg "Introducing freeCodeCamp Press – Free Books for Developers")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 3y  
Introducing freeCodeCamp Press – Free Books for Developers  
FreeCodeCamp has published more than 10,000 tutorials over the years. Now we're publishing more comprehensive books and handbooks that will teach you everything you need to know to get started with a certain programming language or tool. The freeCodeCamp community publishes shorter, more focused guides that aim to answer a specific question.  
462  
23
11. 11  
[](/posts/15-terrible-advice-for-web-developers-hgvsczxvx "15 Terrible Advice for Web Developers")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium · 3y  
15 Terrible Advice for Web Developers  
Fotis Adamakis came up with 15 terrible advice for Web Developers. The advice is full of useful articles and great advice to create robust and maintainable applications. But what if you don't like your colleagues and want to ruin their day?  
451  
50
12. 12  
[](/posts/javascript-solid-principles-how-to-write-maintainable-code-knkof7hxm "JavaScript SOLID Principles: How to Write Maintainable Code")  
Article  
![Avatar of syncfusion](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/064efc4834bd43b987bcda02e8ad6709)Syncfusion · 4y  
JavaScript SOLID Principles: How to Write Maintainable Code  
Learn how to apply SOLID principles to write maintainable code in JavaScript. Explore the single responsibility principle, open-closed principle, Liskov substitution principle, interface segregation principle, and dependency inversion principle.  
441  
13
13. 13  
[](/posts/usehooks-q0mtmslia "useHooks")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 3y  
useHooks  
There’s no better way to learn useHooks than by building it yourself. Use LocalStorage to track the dimensions of the browser window with useWindowSize. Track and manage the visibility of your DOM elements within the viewport.  
440  
20
14. 14  
[](/posts/mastering-javascript-shorthands-g7k8xsml1 "Mastering JavaScript Shorthands")  
Article  
![Avatar of hackernoon](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hackernoon)Hacker Noon · 3y  
Mastering JavaScript Shorthands  
We&apos;ll explore the art of JavaScript shorthands - nifty techniques that make your code more concise and elegant. We'll dive into real use case examples in both vanilla JavaScript and shorthand form. The Ternary Operator: Conditional Assignment Use Case.  
418  
39
15. 15  
[](/posts/fetch-api-do-you-really-know-how-to-handle-errors--4o6kwel5d "Fetch API, do you really know how to handle errors?")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 3y  
Fetch API, do you really know how to handle errors?  
Learn how to handle errors when using the Fetch API and understand the best practices for error handling. Discover different approaches, such as using try/catch and checking the response status, and how to combine them for better error handling.  
415  
18
16. 16  
[](/posts/use-maps-more-and-objects-less-mzohecjjx "Use Maps More and Objects Less")  
Article  
![Avatar of builderio](https://media.daily.dev/image/upload/s--jap1dv3o--/f_auto/v1791797395/squads/builderio?_a=BAMAMicg0)Builder.io · 4y  
Use Maps More and Objects Less  
Objects in JavaScript can be replaced with maps for better performance, easier iteration, and key-value manipulation. Maps are optimized for frequently adding and removing keys, unlike objects. They also solve issues of objects being polluted with built-in keys and provide better iteration methods. Maps can be easily copied, converted to objects, and vice versa. They can also be used for associating metadata with objects. Sets, another similar data structure, provide a better-performing way to create unique lists of elements.  
407  
26
17. 17  
[](/posts/javascript-one-liners-to-use-in-every-project-kxq3w4e2p "JavaScript One-Liners to Use in Every Project")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 4y  
JavaScript One-Liners to Use in Every Project  
Learn essential one-liners in JavaScript for tasks like capitalizing text, calculating percent, getting a random element, removing duplicates, sorting elements, checking equality, counting occurrences, waiting for a certain time, plucking property from an array of objects, and inserting an element at a certain position.  
407  
22
18. 18  
[](/posts/advanced-typescript-fpy6arlmg "Advanced TypeScript")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 3y  
Advanced TypeScript  
This is a constantly updated collection of articles you can find on this site. Each article stands on its own, as you see familiar concepts in a new light. You learn: - Union types and as types - Value types (or literal types) Symbol in JavaScript and TypeScript # Symbols are a very unique type in JavaScript.  
403  
12
19. 19  
[](/posts/i-bet-you-don-t-use-these-javascript-tricks-and-practices-4rfeklnkp "I Bet You Don’t Use These JavaScript Tricks and Practices")  
Article  
![Avatar of jsPlainEnglish](https://media.daily.dev/image/upload/s--Dg5QTRuI--/f_auto,q_auto/v1686665538/logos/pe)JavaScript in Plain English · 3y  
I Bet You Don’t Use These JavaScript Tricks and Practices  
I Bet You Don’t Use These JavaScript Tricks and Practices. Using FlatMap Flat Map in javascript is a great technique which you can learn here. Not using native Javascript classes enough Javascript comes pack with native javascript classes that can help you create/instantiate things like URL, Headers and Headers.  
395  
12
20. 20  
[](/posts/use-notion-as-a-database-for-your-next-js-blog-0wpk1akhh "Use Notion as a database for your Next.JS Blog")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 3y  
Use Notion as a database for your Next.JS Blog  
Learn how to use Notion as a database for your Next.JS Blog. Create a Notion Database, get a Notion Token, set up the project, and create the Post Page. Render the content of a Notion page in a Next.JS Blog.  
378  
25
21. 21  
[](/posts/oop-design-patterns-in-javascript-0scu4khmr "OOP Design Patterns in Javascript")  
Article  
![Avatar of devto](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto)DEV · 3y  
OOP Design Patterns in Javascript  
The Command Pattern turns a request or operation into a standalone object. The Strategy Pattern defines a family of interchangeable algorithms. The Flyweight Pattern reduces memory consumption by sharing common parts of objects. The Observer Pattern establishes a one-to-many dependency between objects.  
358  
9
22. 22  
[](/posts/a-front-end-application-folder-structure-that-makes-sense-x72onqaat "A Front-End Application Folder Structure that Makes Sense")  
Article  
![Avatar of medium_js](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium)Medium · 3y  
A Front-End Application Folder Structure that Makes Sense  
The goal is to apply some kind of modularisation that will make the codebase easier to understand by setting boundaries between features and minimizing code coupling and side effects. By default when scaffolding a new project using one of the popular front-end frameworks the component structure is flat and follows no hierarchy whatsoever.  
331  
20
23. 23  
[](/posts/patterns-tjtxlzw2b "Patterns")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 3y  
Patterns  
A collection of animation techniques built using CSS or JavaScript with considerations for accessibility and user preferences. You can use the code in these examples to help ensure your projects stay on the right track. This collection includes patterns that are often tricky to implement without hurting your Core Web Vitals scores.  
326  
11
24. 24  
[](/posts/bun-vs-node-js-everything-you-need-to-know-70wxubj1e "Bun vs Node.js: Everything you need to know")  
Article  
![Avatar of builderio](https://media.daily.dev/image/upload/s--jap1dv3o--/f_auto/v1791797395/squads/builderio?_a=BAMAMicg0)Builder.io · 3y  
Bun vs Node.js: Everything you need to know  
Bun v1.0 is a super fast all-in-one toolkit for JavaScript and TypeScript apps. The beauty of Bun lies in its ability to streamline the development process, making it smoother and more efficient than ever. Bun is designed as a faster, leaner, more modern replacement for Node.js.  
317  
17
25. 25  
[](/posts/5-tips-to-improve-your-typescript-code-qpunk9sda "5 Tips To Improve Your TypeScript Code")  
Article  
![Avatar of asayer](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/be8d9d38650943c8a1718ba79f23e9ac)asayer · 3y  
5 Tips To Improve Your TypeScript Code  
TypeScript is rapidly gaining popularity as a way to write type-safer, maintainable JavaScript code. This article will cover five tips that will help you improve your TypeScript code. To get the most out of this text and become a great developer, you must have sufficient knowledge of JavaScript, including variables, data types, and methods.  
314  
21

[See all JavaScript archives](/tags/javascript/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/tags/javascript/best-of/2023#page","url":"https://daily.dev/tags/javascript/best-of/2023","name":"Best JavaScript Posts of 2023","description":"The most upvoted JavaScript posts of 2023, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/javascript/best-of/2023#items","numberOfItems":25,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/sharing-a-state-between-windows-without-a-serve-nrutfuxaj","name":"Sharing a state between windows without a serve"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/bun-1-0-xeb1bb2m9","name":"Bun 1.0"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/frontend-developer-roadmap-3yxhfdqd6","name":"Frontend Developer Roadmap"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/what-s-new-in-javascript-in-2023-changes-with-code-examples-m5fgpok7b","name":"What's New in JavaScript in 2023 – Changes with Code Examples"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/10-web-development-trends-in-2023-5h3aw-hrx","name":"10 Web Development Trends in 2023"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/why-signals-are-better-than-react-hooks-dgesd3rrx","name":"Why Signals Are Better Than React Hooks"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/writing-clean-code-best-practices-and-principles-2iykukjhq","name":"Writing Clean Code: Best Practices and Principles"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/advanced-javascript-functions-to-improve-code-quality-5og1ralxl","name":"Advanced JavaScript Functions to Improve Code Quality"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/js-design-patterns-a-comprehensive-guide-dpzxwdek4","name":"JS Design Patterns: A Comprehensive Guide"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/introducing-freecodecamp-press-free-books-for-developers-m42onyqxg","name":"Introducing freeCodeCamp Press – Free Books for Developers"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/15-terrible-advice-for-web-developers-hgvsczxvx","name":"15 Terrible Advice for Web Developers"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/javascript-solid-principles-how-to-write-maintainable-code-knkof7hxm","name":"JavaScript SOLID Principles: How to Write Maintainable Code"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/usehooks-q0mtmslia","name":"useHooks"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/mastering-javascript-shorthands-g7k8xsml1","name":"Mastering JavaScript Shorthands"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/fetch-api-do-you-really-know-how-to-handle-errors--4o6kwel5d","name":"Fetch API, do you really know how to handle errors?"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/use-maps-more-and-objects-less-mzohecjjx","name":"Use Maps More and Objects Less"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/javascript-one-liners-to-use-in-every-project-kxq3w4e2p","name":"JavaScript One-Liners to Use in Every Project"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/advanced-typescript-fpy6arlmg","name":"Advanced TypeScript"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/i-bet-you-don-t-use-these-javascript-tricks-and-practices-4rfeklnkp","name":"I Bet You Don’t Use These JavaScript Tricks and Practices"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/use-notion-as-a-database-for-your-next-js-blog-0wpk1akhh","name":"Use Notion as a database for your Next.JS Blog"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/oop-design-patterns-in-javascript-0scu4khmr","name":"OOP Design Patterns in Javascript"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/a-front-end-application-folder-structure-that-makes-sense-x72onqaat","name":"A Front-End Application Folder Structure that Makes Sense"},{"@type":"ListItem","position":23,"url":"https://daily.dev/posts/patterns-tjtxlzw2b","name":"Patterns"},{"@type":"ListItem","position":24,"url":"https://daily.dev/posts/bun-vs-node-js-everything-you-need-to-know-70wxubj1e","name":"Bun vs Node.js: Everything you need to know"},{"@type":"ListItem","position":25,"url":"https://daily.dev/posts/5-tips-to-improve-your-typescript-code-qpunk9sda","name":"5 Tips To Improve Your TypeScript Code"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"JavaScript","item":"https://daily.dev/tags/javascript"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/javascript/best-of"},{"@type":"ListItem","position":5,"name":"2023"}]}]}
```

