{"id":48466,"url":"https://github.com/mazzur/awesome-javascript-design-patterns","name":"awesome-javascript-design-patterns","description":" A collection of awesome resources for learning design patterns in javascript","projects_count":41,"last_synced_at":"2026-06-09T15:00:28.532Z","repository":{"id":91789309,"uuid":"48661783","full_name":"mazzur/awesome-javascript-design-patterns","owner":"mazzur","description":" A collection of awesome resources for learning design patterns in javascript","archived":false,"fork":false,"pushed_at":"2018-08-11T06:50:21.000Z","size":19,"stargazers_count":88,"open_issues_count":1,"forks_count":16,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-24T00:03:10.144Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mazzur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-12-27T21:52:04.000Z","updated_at":"2025-12-08T15:47:43.000Z","dependencies_parsed_at":"2023-04-03T17:47:33.506Z","dependency_job_id":null,"html_url":"https://github.com/mazzur/awesome-javascript-design-patterns","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mazzur/awesome-javascript-design-patterns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazzur%2Fawesome-javascript-design-patterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazzur%2Fawesome-javascript-design-patterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazzur%2Fawesome-javascript-design-patterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazzur%2Fawesome-javascript-design-patterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mazzur","download_url":"https://codeload.github.com/mazzur/awesome-javascript-design-patterns/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazzur%2Fawesome-javascript-design-patterns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34112225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-14T11:15:27.637Z","updated_at":"2026-06-09T15:00:28.532Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["License","Table of Contents"],"sub_categories":["Other Resources","Articles","Books","Cources","Talks"],"readme":"# Awesome JavaScript Design Patterns [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n A collection of awesome resources for learning design patterns in javascript\n \n Feel free to [contribure](https://github.com/mazzur/awesome-javascript-design-patterns/blob/master/CONTRIBUTING.md)\n\n## Table of Contents\n- [Books](#books)\n- [Articles](#articles)\n  - [Creational](#creational)\n    - [Factory](#factory)\n    - [Singleton](#singleton)\n  - [Structural](#structural)\n    - [Decorator](#decorator)\n    - [Facade](#facade)\n  - [Behavioral](#behavioral)\n    - [Mediator](#mediator)\n    - [Observer](#observer)\n    - [Publish/Subscribe](#pub-sub)\n  - [JS-specific](#js-specific)\n    - [Module](#module)\n  - [Architectural](#architectural)\n    - [MV*](#mv-star)\n    - [Flux](#flux)\n  - [Other articles](#other-articles)\n- [Cources](#cources)\n- [Talks](#talks)\n- [Other resources](#other-resources)\n  \n### Books\n* [Learning JavaScript Design Patterns](https://addyosmani.com/resources/essentialjsdesignpatterns/book) *free* by Addy Osmani\n* [JavaScript Patterns](https://www.goodreads.com/book/show/9422683-javascript-patterns) by Stoyan Stefanov\n* [Pro JavaScript Design Patterns](https://www.goodreads.com/book/show/1960593.Pro_JavaScript_Design_Patterns) by Ross Harmes, Dustin Diaz\n* [Mastering JavaScript Design Patterns](https://www.goodreads.com/book/show/23847040-mastering-javascript-design-patterns---essential-solutions-for-effective) by Simon Timms\n\n### Articles\n##### Creational\n###### Factory\n* [Factory Function Pattern In-Depth](https://medium.com/@pyrolistical/factory-functions-pattern-in-depth-356d14801c91#.sw3kpn3gs) by Ronald Chen\n* [JavaScript Design Patterns: Factory](http://robdodson.me/javascript-design-patterns-factory/) by Rob Dodson\n\n###### Singleton\n* [JavaScript Design Patterns: Singleton](http://robdodson.me/javascript-design-patterns-singleton/) by Rob Dodson\n\n##### Structural\n###### Decorator\n* [Exploring ES2016 Decorators](https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841#.tkqihbpde) by Addy Osmani\n* [Exploring The Decorator Pattern In JavaScript \u0026 jQuery](https://addyosmani.com/blog/decorator-pattern/) by Addy Osmani\n\n###### Facade\n* [The Facade Pattern](https://carldanley.com/js-facade-pattern/) by Carl Danley\n\n##### Behavioral\n###### Mediator\n* [Event Aggregator And/Or/vs Mediator: A Tale Of Two Patterns](https://lostechies.com/derickbailey/2013/03/18/event-aggregator-andorvs-mediator-a-tale-of-two-patterns/) by Derick Bailey\n* [Loosely Coupled InterModule Communications with Mediator](http://enterprisewebbook.com/ch6_large_js_apps.html#mediator_section) from \"Enterprise Web Development. From Desktop to Mobile\" by  Yakov Fain, Victor Rasputnis, Viktor Gamov, and Anatole Tartakovsky\n\n###### Observer\n* [Comparison between different Observer Pattern implementations](https://github.com/millermedeiros/js-signals/wiki/Comparison-between-different-Observer-Pattern-implementations) by Miller Medeiros\n* [Data-binding Revolutions with Object.observe()](http://www.html5rocks.com/en/tutorials/es7/observe/) by Addy Osmani\n* [JavaScript Design Patterns: Observer](http://robdodson.me/javascript-design-patterns-observer/) by Rob Dodson\n\n###### Pub-Sub\n* [Decoupling JavaScript applications using the Publish/Subscribe pattern](http://dev.housetrip.com/2014/09/15/decoupling-javascript-apps-using-pub-sub-pattern/) by Emili Parreño\n* [Understanding the Publish/Subscribe Pattern for Greater JavaScript Scalability](https://msdn.microsoft.com/en-us/magazine/hh201955.aspx) by Addy Osmani\n* [Why I should use publish/subscribe in JavaScript](http://blog.mgechev.com/2013/04/24/why-to-use-publishsubscribe-in-javascript/) by Minko Gechev\n\n#### JS-specific\n###### Module\n* [Mastering the Module Pattern](https://toddmotto.com/mastering-the-module-pattern/) by Todd Motto\n* [Modules](http://eloquentjavascript.net/10_modules.html) a chapter from \"Eloquent JavaScript\" by Marijn Haverbeke\n\n##### Architectural\n###### MV-star\n* [JavaScript MVC](http://alistapart.com/article/javascript-mvc) A List Apart article\n* [Journey Through The JavaScript MVC Jungle](https://www.smashingmagazine.com/2012/07/journey-through-the-javascript-mvc-jungle/) by Addy Osmani\n* [Model-View-Controller (MVC) with JavaScript](https://alexatnet.com/articles/model-view-controller-mvc-javascript) by Alex Netkachov\n* [MVC Architecture](https://developer.chrome.com/apps/app_frameworks) by Chrome developers\n* [MVC Architecture](https://developer.mozilla.org/en-US/Apps/Build/Modern_web_app_architecture/MVC_architecture) at MDN\n* [Understanding MVC And MVP (For JavaScript And Backbone Developers)](https://addyosmani.com/blog/understanding-mvc-and-mvp-for-javascript-and-backbone-developers/) by Addy Osmani\n\n###### Flux\n* [Flux Overview](https://facebook.github.io/flux/docs/overview.html#content) by Facebook\n* [Getting To Know Flux, the React.js Architecture](https://scotch.io/tutorials/getting-to-know-flux-the-react-js-architecture) by Ken Wheeler\n* [What is Flux?](http://fluxxor.com/what-is-flux.html) by Michelle Tilley\n\n##### Other articles\n* [AngularJS in Patterns](https://github.com/mgechev/angularjs-in-patterns) by Minko Gechev\n* [Patterns For Large-Scale JavaScript Application Architecture](http://addyosmani.com/largescalejavascript/) by Addy Osmani\n\n### Cources\n* [JavaScript Design Patterns](http://code.tutsplus.com/courses/javascript-design-patterns) on tuts+\n* [JavaScript Design Patterns](https://www.youtube.com/playlist?list=PLAwxTw4SYaPkGKjpeiLWz8ydvFEkmRkBn) by Udacity\n* [Modular JavaScript](https://www.youtube.com/playlist?list=PLoYCgNOIyGABs-wDaaxChu82q_xQgUb4f) by LearnCode.academy\n\n### Talks\n* [Creating a Scalable JavaScript Application Architecture](https://youtu.be/b5pFv9NB9fs) by Nicholas Zakas\n* [Large Scale JavaScript Application Architecture](https://youtu.be/kNrnRG1YgAQ) by Dan Lynch\n* [MVC Application Structure](https://youtu.be/yIoPlBcW6XA) by Addy Osmani\n* [Yo momma's got Javascript design patterns!](https://youtu.be/dMpp1_rJTXU) by Ryan Done\n\n### Other Resources\n* [JavaScript Design Patterns](http://www.dofactory.com/javascript/design-patterns) GoF patterns in JavaScript\n* [JavaScript Patterns](https://github.com/shichuan/javascript-patterns) a rich collection of pattern examples\n\n## License\nLicensed under the [Creative Commons CC0 License](https://creativecommons.org/publicdomain/zero/1.0/).\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/mazzur%2Fawesome-javascript-design-patterns/projects"}