From 7fcde19bd3ac89042fabe71eb9e4dcb2d58579f3 Mon Sep 17 00:00:00 2001 From: Leonardo Maldonado Date: Sun, 4 Jan 2026 14:49:53 -0300 Subject: [PATCH 1/4] fix(docs): shorten homepage title for SEO optimization --- docs/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.mdx b/docs/index.mdx index 49f290de..f5b15fab 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -1,5 +1,5 @@ --- -title: "33 JavaScript Concepts - Learn JS Fundamentals in 2025" +title: "33 JavaScript Concepts Every Developer Should Know" sidebarTitle: "Welcome" description: "Learn JavaScript with 33 essential concepts every developer should know. Free guide with clear explanations, practical code examples, and curated resources for beginners to senior developers." --- From e96a6755d4348b3f6692a3dfd7595bcaec5e1b85 Mon Sep 17 00:00:00 2001 From: Leonardo Maldonado Date: Sun, 4 Jan 2026 15:07:19 -0300 Subject: [PATCH 2/4] fix(docs): shorten page titles for SEO optimization --- docs/concepts/algorithms-big-o.mdx | 2 +- docs/concepts/async-await.mdx | 2 +- docs/concepts/call-stack.mdx | 2 +- docs/concepts/callbacks.mdx | 2 +- docs/concepts/clean-code.mdx | 2 +- docs/concepts/currying-composition.mdx | 2 +- docs/concepts/data-structures.mdx | 2 +- docs/concepts/design-patterns.mdx | 2 +- docs/concepts/dom.mdx | 2 +- docs/concepts/equality-operators.mdx | 2 +- docs/concepts/error-handling.mdx | 2 +- docs/concepts/es-modules.mdx | 2 +- docs/concepts/event-loop.mdx | 2 +- docs/concepts/factories-classes.mdx | 2 +- docs/concepts/generators-iterators.mdx | 2 +- docs/concepts/higher-order-functions.mdx | 2 +- docs/concepts/http-fetch.mdx | 2 +- docs/concepts/iife-modules.mdx | 2 +- docs/concepts/inheritance-polymorphism.mdx | 2 +- docs/concepts/javascript-engines.mdx | 2 +- docs/concepts/map-reduce-filter.mdx | 2 +- docs/concepts/modern-js-syntax.mdx | 2 +- docs/concepts/object-creation-prototypes.mdx | 2 +- docs/concepts/primitive-types.mdx | 2 +- docs/concepts/promises.mdx | 2 +- docs/concepts/pure-functions.mdx | 2 +- docs/concepts/recursion.mdx | 2 +- docs/concepts/regular-expressions.mdx | 2 +- docs/concepts/scope-and-closures.mdx | 2 +- docs/concepts/this-call-apply-bind.mdx | 2 +- docs/concepts/type-coercion.mdx | 2 +- docs/concepts/value-reference-types.mdx | 2 +- docs/concepts/web-workers.mdx | 2 +- docs/getting-started/about.mdx | 2 +- docs/getting-started/how-to-learn.mdx | 2 +- docs/getting-started/learning-paths.mdx | 2 +- docs/getting-started/prerequisites.mdx | 2 +- docs/index.mdx | 2 +- 38 files changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/concepts/algorithms-big-o.mdx b/docs/concepts/algorithms-big-o.mdx index db6665c9..34710030 100644 --- a/docs/concepts/algorithms-big-o.mdx +++ b/docs/concepts/algorithms-big-o.mdx @@ -1,5 +1,5 @@ --- -title: "Algorithms & Big O: Measuring Code Performance in JavaScript" +title: "Algorithms & Big O" sidebarTitle: "Algorithms & Big O: Measuring Code Performance" description: "Learn Big O notation and algorithms in JavaScript. Understand time complexity, implement searching and sorting algorithms, and recognize common interview patterns." --- diff --git a/docs/concepts/async-await.mdx b/docs/concepts/async-await.mdx index 4b9599d1..a034db7f 100644 --- a/docs/concepts/async-await.mdx +++ b/docs/concepts/async-await.mdx @@ -1,5 +1,5 @@ --- -title: "async/await: Writing Async Code That Looks Synchronous in JavaScript" +title: "async/await" sidebarTitle: "async/await: Writing Async Code That Looks Synchronous" description: "Learn async/await in JavaScript. Syntactic sugar over Promises that makes async code readable. Covers error handling with try/catch, parallel execution with Promise.all, and common pitfalls." --- diff --git a/docs/concepts/call-stack.mdx b/docs/concepts/call-stack.mdx index 0cf70308..5f18e9d0 100644 --- a/docs/concepts/call-stack.mdx +++ b/docs/concepts/call-stack.mdx @@ -1,5 +1,5 @@ --- -title: "Call Stack: How Function Execution Works in JavaScript" +title: "Call Stack" sidebarTitle: "Call Stack: How Function Execution Works" description: "Learn how the JavaScript call stack tracks function execution. Understand stack frames, LIFO ordering, execution contexts, stack overflow errors, and debugging with stack traces." --- diff --git a/docs/concepts/callbacks.mdx b/docs/concepts/callbacks.mdx index bd61a787..a49dea10 100644 --- a/docs/concepts/callbacks.mdx +++ b/docs/concepts/callbacks.mdx @@ -1,5 +1,5 @@ --- -title: "Callbacks: The Foundation of Async JavaScript" +title: "Callbacks" sidebarTitle: "Callbacks: The Foundation of Async" description: "Learn JavaScript callbacks, functions passed to other functions to be called later. Understand sync vs async callbacks, error-first patterns, callback hell, and why Promises were invented." --- diff --git a/docs/concepts/clean-code.mdx b/docs/concepts/clean-code.mdx index 45f5d336..22e79e36 100644 --- a/docs/concepts/clean-code.mdx +++ b/docs/concepts/clean-code.mdx @@ -1,5 +1,5 @@ --- -title: "Clean Code: Writing Readable JavaScript" +title: "Clean Code" sidebarTitle: "Clean Code: Writing Readable JavaScript" description: "Learn clean code principles for JavaScript. Covers meaningful naming, small functions, DRY, avoiding side effects, and best practices to write maintainable code." --- diff --git a/docs/concepts/currying-composition.mdx b/docs/concepts/currying-composition.mdx index a226f1d6..5f14f268 100644 --- a/docs/concepts/currying-composition.mdx +++ b/docs/concepts/currying-composition.mdx @@ -1,5 +1,5 @@ --- -title: "Currying & Composition: Functional Patterns in JavaScript" +title: "Currying & Composition" sidebarTitle: "Currying & Composition: Functional Patterns" description: "Learn currying and function composition in JavaScript. Build reusable functions from simple pieces using curry, compose, and pipe for cleaner, modular code." --- diff --git a/docs/concepts/data-structures.mdx b/docs/concepts/data-structures.mdx index 33d2147d..ac74395b 100644 --- a/docs/concepts/data-structures.mdx +++ b/docs/concepts/data-structures.mdx @@ -1,5 +1,5 @@ --- -title: "Data Structures: Organizing and Storing Data in JavaScript" +title: "Data Structures" sidebarTitle: "Data Structures: Organizing and Storing Data" description: "Learn JavaScript data structures from built-in Arrays, Objects, Maps, and Sets to implementing Stacks, Queues, and Linked Lists. Understand when to use each structure." --- diff --git a/docs/concepts/design-patterns.mdx b/docs/concepts/design-patterns.mdx index c6cf3578..b725799b 100644 --- a/docs/concepts/design-patterns.mdx +++ b/docs/concepts/design-patterns.mdx @@ -1,5 +1,5 @@ --- -title: "Design Patterns: Reusable Solutions to Common Problems in JavaScript" +title: "Design Patterns" sidebarTitle: "Design Patterns: Reusable Solutions" description: "Learn JavaScript design patterns like Module, Singleton, Observer, Factory, Proxy, and Decorator. Understand when to use each pattern and avoid common pitfalls." --- diff --git a/docs/concepts/dom.mdx b/docs/concepts/dom.mdx index 83fe1a5f..a0199e18 100644 --- a/docs/concepts/dom.mdx +++ b/docs/concepts/dom.mdx @@ -1,5 +1,5 @@ --- -title: "DOM: How Browsers Represent Web Pages in JavaScript" +title: "DOM Manipulation" sidebarTitle: "DOM: How Browsers Represent Web Pages" description: "Learn how the DOM works in JavaScript. Understand how browsers represent HTML as a tree, select and manipulate elements, traverse nodes, and optimize rendering performance." --- diff --git a/docs/concepts/equality-operators.mdx b/docs/concepts/equality-operators.mdx index f33775b3..5d635bd2 100644 --- a/docs/concepts/equality-operators.mdx +++ b/docs/concepts/equality-operators.mdx @@ -1,5 +1,5 @@ --- -title: "Equality Operators: == vs === Type Checking in JavaScript" +title: "Equality: == vs ===" sidebarTitle: "Equality Operators: == vs === Type Checking" description: "Learn JavaScript equality operators == vs ===, typeof quirks, and Object.is(). Understand type coercion, why NaN !== NaN, and why typeof null returns 'object'." --- diff --git a/docs/concepts/error-handling.mdx b/docs/concepts/error-handling.mdx index f3f52142..c68a43ab 100644 --- a/docs/concepts/error-handling.mdx +++ b/docs/concepts/error-handling.mdx @@ -1,5 +1,5 @@ --- -title: "Error Handling: Managing Errors Gracefully in JavaScript" +title: "Error Handling" sidebarTitle: "Error Handling: Managing Errors Gracefully" description: "Learn JavaScript error handling with try/catch/finally. Understand Error types, custom errors, async error patterns, and best practices for robust code." --- diff --git a/docs/concepts/es-modules.mdx b/docs/concepts/es-modules.mdx index f6d1cd63..2d2e5ca8 100644 --- a/docs/concepts/es-modules.mdx +++ b/docs/concepts/es-modules.mdx @@ -1,5 +1,5 @@ --- -title: "ES Modules: JavaScript's Native Module System" +title: "ES Modules" sidebarTitle: "ES Modules: Native Module System" description: "Learn ES Modules in JavaScript. Understand import/export syntax, why ESM beats CommonJS, live bindings, dynamic imports, top-level await, and how modules enable tree-shaking." --- diff --git a/docs/concepts/event-loop.mdx b/docs/concepts/event-loop.mdx index 731c4577..f32497f0 100644 --- a/docs/concepts/event-loop.mdx +++ b/docs/concepts/event-loop.mdx @@ -1,5 +1,5 @@ --- -title: "Event Loop: How Async Code Actually Runs in JavaScript" +title: "Event Loop" sidebarTitle: "Event Loop: How Async Code Actually Runs" description: "Learn how the JavaScript event loop handles async code. Understand the call stack, task queue, microtasks, and why Promises always run before setTimeout()." --- diff --git a/docs/concepts/factories-classes.mdx b/docs/concepts/factories-classes.mdx index 8d48d262..50a9077b 100644 --- a/docs/concepts/factories-classes.mdx +++ b/docs/concepts/factories-classes.mdx @@ -1,5 +1,5 @@ --- -title: "Factories and Classes: Creating Objects Efficiently in JavaScript" +title: "Factories & Classes" sidebarTitle: "Factories and Classes: Creating Objects Efficiently" description: "Learn JavaScript factory functions and ES6 classes. Understand constructors, prototypes, private fields, inheritance, and when to use each pattern." --- diff --git a/docs/concepts/generators-iterators.mdx b/docs/concepts/generators-iterators.mdx index c11e38aa..4614f512 100644 --- a/docs/concepts/generators-iterators.mdx +++ b/docs/concepts/generators-iterators.mdx @@ -1,5 +1,5 @@ --- -title: "Generators & Iterators: Pausable Functions in JavaScript" +title: "Generators & Iterators" sidebarTitle: "Generators & Iterators: Pausable Functions" description: "Learn JavaScript generators and iterators. Understand yield, the iteration protocol, lazy evaluation, infinite sequences, and async generators with for await...of." --- diff --git a/docs/concepts/higher-order-functions.mdx b/docs/concepts/higher-order-functions.mdx index 1c15385a..493afa31 100644 --- a/docs/concepts/higher-order-functions.mdx +++ b/docs/concepts/higher-order-functions.mdx @@ -1,5 +1,5 @@ --- -title: "Higher-Order Functions: Functions That Use Functions in JavaScript" +title: "Higher-Order Functions" sidebarTitle: "Higher-Order Functions: Functions That Use Functions" description: "Learn higher-order functions in JavaScript. Understand functions that accept or return other functions, create reusable abstractions, and write cleaner code." --- diff --git a/docs/concepts/http-fetch.mdx b/docs/concepts/http-fetch.mdx index de5e5893..656641d8 100644 --- a/docs/concepts/http-fetch.mdx +++ b/docs/concepts/http-fetch.mdx @@ -1,5 +1,5 @@ --- -title: "Fetch API: Making HTTP Requests the Modern Way in JavaScript" +title: "HTTP & Fetch API" sidebarTitle: "Fetch API: Making HTTP Requests the Modern Way" description: "Learn how to make HTTP requests with the JavaScript Fetch API. Understand GET, POST, response handling, JSON parsing, error patterns, and AbortController for cancellation." --- diff --git a/docs/concepts/iife-modules.mdx b/docs/concepts/iife-modules.mdx index 3bc1033c..c9f8c7d4 100644 --- a/docs/concepts/iife-modules.mdx +++ b/docs/concepts/iife-modules.mdx @@ -1,5 +1,5 @@ --- -title: "IIFE, Modules & Namespaces: Structuring Code in JavaScript" +title: "IIFE & Namespaces" sidebarTitle: "IIFE, Modules & Namespaces: Structuring Code" description: "Learn how to organize JavaScript code with IIFEs, namespaces, and ES6 modules. Understand private scope, exports, dynamic imports, and common module mistakes." --- diff --git a/docs/concepts/inheritance-polymorphism.mdx b/docs/concepts/inheritance-polymorphism.mdx index 961f9e51..0ec61aa7 100644 --- a/docs/concepts/inheritance-polymorphism.mdx +++ b/docs/concepts/inheritance-polymorphism.mdx @@ -1,5 +1,5 @@ --- -title: "Inheritance & Polymorphism: OOP Principles in JavaScript" +title: "Inheritance & Polymorphism" sidebarTitle: "Inheritance & Polymorphism: OOP Principles" description: "Learn inheritance and polymorphism in JavaScript — extending classes, prototype chains, method overriding, and code reuse patterns. Master object-oriented programming principles." --- diff --git a/docs/concepts/javascript-engines.mdx b/docs/concepts/javascript-engines.mdx index 219523d8..82160442 100644 --- a/docs/concepts/javascript-engines.mdx +++ b/docs/concepts/javascript-engines.mdx @@ -1,5 +1,5 @@ --- -title: "JavaScript Engines: How V8 Runs Your Code in JavaScript" +title: "JavaScript Engines" sidebarTitle: "JavaScript Engines: How V8 Runs Your Code" description: "Learn how JavaScript engines work. Understand V8's architecture, parsing, compilation, JIT optimization, hidden classes, inline caching, and garbage collection." --- diff --git a/docs/concepts/map-reduce-filter.mdx b/docs/concepts/map-reduce-filter.mdx index 9d31b0d1..d9b26c2a 100644 --- a/docs/concepts/map-reduce-filter.mdx +++ b/docs/concepts/map-reduce-filter.mdx @@ -1,5 +1,5 @@ --- -title: "map, reduce, filter: Transform Arrays in JavaScript" +title: "map, reduce, filter" sidebarTitle: "map, reduce, filter" description: "Learn map, reduce, and filter in JavaScript. Transform, filter, and combine arrays without mutation. Includes method chaining and common pitfalls." --- diff --git a/docs/concepts/modern-js-syntax.mdx b/docs/concepts/modern-js-syntax.mdx index 4f77fddd..d768e91b 100644 --- a/docs/concepts/modern-js-syntax.mdx +++ b/docs/concepts/modern-js-syntax.mdx @@ -1,5 +1,5 @@ --- -title: "Modern JavaScript Syntax: ES6+ Features That Changed Everything" +title: "Modern JS Syntax (ES6+)" sidebarTitle: "Modern JavaScript Syntax: ES6+ Features" description: "Learn modern JavaScript ES6+ syntax. Covers destructuring, spread/rest operators, arrow functions, optional chaining, nullish coalescing, and template literals with practical examples." --- diff --git a/docs/concepts/object-creation-prototypes.mdx b/docs/concepts/object-creation-prototypes.mdx index cb4d2517..5f20e6c1 100644 --- a/docs/concepts/object-creation-prototypes.mdx +++ b/docs/concepts/object-creation-prototypes.mdx @@ -1,5 +1,5 @@ --- -title: "Object Creation & Prototypes: How Objects Inherit in JavaScript" +title: "Prototypes & Object Creation" sidebarTitle: "Object Creation & Prototypes: How Objects Inherit" description: "Learn JavaScript's prototype chain and object creation. Understand how inheritance works, the new operator's 4 steps, Object.create(), Object.assign(), and prototype methods." --- diff --git a/docs/concepts/primitive-types.mdx b/docs/concepts/primitive-types.mdx index b9ccd933..7ace5d0b 100644 --- a/docs/concepts/primitive-types.mdx +++ b/docs/concepts/primitive-types.mdx @@ -1,5 +1,5 @@ --- -title: "Primitive Types: Building Blocks of Data in JavaScript" +title: "Primitive Types" sidebarTitle: "Primitive Types: Building Blocks of Data" description: "Learn JavaScript's 7 primitive types: string, number, bigint, boolean, undefined, null, and symbol. Understand immutability, typeof quirks, and autoboxing." --- diff --git a/docs/concepts/promises.mdx b/docs/concepts/promises.mdx index dc7c1fd4..673af160 100644 --- a/docs/concepts/promises.mdx +++ b/docs/concepts/promises.mdx @@ -1,5 +1,5 @@ --- -title: "Promises: Managing Async Operations in JavaScript" +title: "Promises" sidebarTitle: "Promises: Managing Async Operations" description: "Learn JavaScript Promises for handling async operations. Understand how to create, chain, and combine Promises, handle errors properly, and avoid common pitfalls." --- diff --git a/docs/concepts/pure-functions.mdx b/docs/concepts/pure-functions.mdx index 2d91ff01..0d00a1e9 100644 --- a/docs/concepts/pure-functions.mdx +++ b/docs/concepts/pure-functions.mdx @@ -1,5 +1,5 @@ --- -title: "Pure Functions: Writing Predictable Code in JavaScript" +title: "Pure Functions" sidebarTitle: "Pure Functions: Writing Predictable Code" description: "Learn pure functions in JavaScript. Understand the two rules of purity, avoid side effects, and write testable, predictable code with immutable patterns." --- diff --git a/docs/concepts/recursion.mdx b/docs/concepts/recursion.mdx index b6d129e9..eb21db34 100644 --- a/docs/concepts/recursion.mdx +++ b/docs/concepts/recursion.mdx @@ -1,5 +1,5 @@ --- -title: "Recursion: Functions That Call Themselves in JavaScript" +title: "Recursion" sidebarTitle: "Recursion: Functions That Call Themselves" description: "Learn recursion in JavaScript. Understand base cases, recursive calls, the call stack, and patterns like factorial, tree traversal, and memoization." --- diff --git a/docs/concepts/regular-expressions.mdx b/docs/concepts/regular-expressions.mdx index befec72c..e223fab2 100644 --- a/docs/concepts/regular-expressions.mdx +++ b/docs/concepts/regular-expressions.mdx @@ -1,5 +1,5 @@ --- -title: "Regular Expressions: Pattern Matching in JavaScript" +title: "Regular Expressions" sidebarTitle: "Regular Expressions: Pattern Matching" description: "Learn regular expressions in JavaScript. Covers pattern syntax, character classes, quantifiers, flags, capturing groups, and methods like test, match, and replace." --- diff --git a/docs/concepts/scope-and-closures.mdx b/docs/concepts/scope-and-closures.mdx index 6b584f7c..94858af3 100644 --- a/docs/concepts/scope-and-closures.mdx +++ b/docs/concepts/scope-and-closures.mdx @@ -1,5 +1,5 @@ --- -title: "Scope and Closures: How Variables Really Work in JavaScript" +title: "Scope & Closures" sidebarTitle: "Scope and Closures: How Variables Really Work" description: "Learn JavaScript scope and closures. Understand the three types of scope, var vs let vs const, lexical scoping, the scope chain, and closure patterns for data privacy." --- diff --git a/docs/concepts/this-call-apply-bind.mdx b/docs/concepts/this-call-apply-bind.mdx index 3827cdd5..607f2199 100644 --- a/docs/concepts/this-call-apply-bind.mdx +++ b/docs/concepts/this-call-apply-bind.mdx @@ -1,5 +1,5 @@ --- -title: "this, call, apply, and bind: How Context Works in JavaScript" +title: "this, call, apply & bind" sidebarTitle: "this, call, apply, and bind: How Context Works" description: "Learn how JavaScript's 'this' keyword works and how to control context binding. Understand the 5 binding rules, call/apply/bind methods, arrow functions, and common pitfalls." --- diff --git a/docs/concepts/type-coercion.mdx b/docs/concepts/type-coercion.mdx index e15656a9..02a93b00 100644 --- a/docs/concepts/type-coercion.mdx +++ b/docs/concepts/type-coercion.mdx @@ -1,5 +1,5 @@ --- -title: "Type Coercion: How Values Convert Automatically in JavaScript" +title: "Type Coercion" sidebarTitle: "Type Coercion: How Values Convert Automatically" description: "Learn JavaScript type coercion and implicit conversion. Understand how values convert to strings, numbers, and booleans, the 8 falsy values, and how to avoid common coercion bugs." --- diff --git a/docs/concepts/value-reference-types.mdx b/docs/concepts/value-reference-types.mdx index 5d9d1f29..451273ef 100644 --- a/docs/concepts/value-reference-types.mdx +++ b/docs/concepts/value-reference-types.mdx @@ -1,5 +1,5 @@ --- -title: "Value vs Reference Types: How Memory Works in JavaScript" +title: "Value vs Reference Types" sidebarTitle: "Value vs Reference Types: How Memory Works" description: "Learn how value types and reference types work in JavaScript. Understand how primitives and objects are stored, why copying objects shares references, and how to avoid mutation bugs." --- diff --git a/docs/concepts/web-workers.mdx b/docs/concepts/web-workers.mdx index 2d753804..e007f8f0 100644 --- a/docs/concepts/web-workers.mdx +++ b/docs/concepts/web-workers.mdx @@ -1,5 +1,5 @@ --- -title: "Web Workers: True Parallelism in JavaScript" +title: "Web Workers" sidebarTitle: "Web Workers: True Parallelism" description: "Learn Web Workers in JavaScript for running code in background threads. Understand postMessage, Dedicated and Shared Workers, and transferable objects." --- diff --git a/docs/getting-started/about.mdx b/docs/getting-started/about.mdx index 9bc59603..b74689ed 100644 --- a/docs/getting-started/about.mdx +++ b/docs/getting-started/about.mdx @@ -1,5 +1,5 @@ --- -title: "About 33 JavaScript Concepts: Origin and Goals" +title: "About This Project" sidebarTitle: "What is This Project?" description: "Discover the story behind 33 JavaScript Concepts. Learn what topics are covered, who this guide is for, and how it helps you become a better developer." --- diff --git a/docs/getting-started/how-to-learn.mdx b/docs/getting-started/how-to-learn.mdx index 4196899b..e7f2b569 100644 --- a/docs/getting-started/how-to-learn.mdx +++ b/docs/getting-started/how-to-learn.mdx @@ -1,5 +1,5 @@ --- -title: "How to Learn JavaScript Effectively with This Guide" +title: "How to Use This Guide" sidebarTitle: "How to Learn" description: "Learn how to study JavaScript effectively. Tips for practicing code, understanding concepts, and getting the most from each lesson in this guide." --- diff --git a/docs/getting-started/learning-paths.mdx b/docs/getting-started/learning-paths.mdx index f0185258..75d8fc6f 100644 --- a/docs/getting-started/learning-paths.mdx +++ b/docs/getting-started/learning-paths.mdx @@ -1,5 +1,5 @@ --- -title: "JavaScript Learning Paths: Beginner to Advanced" +title: "Learning Paths" sidebarTitle: "Learning Paths" description: "Find the right JavaScript learning path for your level. Structured guides for beginners, intermediate developers, and technical interview preparation." --- diff --git a/docs/getting-started/prerequisites.mdx b/docs/getting-started/prerequisites.mdx index e0af518a..2b76775d 100644 --- a/docs/getting-started/prerequisites.mdx +++ b/docs/getting-started/prerequisites.mdx @@ -1,5 +1,5 @@ --- -title: "JavaScript Setup: Tools You Need to Start Learning" +title: "Prerequisites & Setup" sidebarTitle: "Prerequisites" description: "Set up your JavaScript learning environment in minutes. All you need is a browser and optionally a code editor. Perfect for complete beginners." --- diff --git a/docs/index.mdx b/docs/index.mdx index f5b15fab..2cc59ce8 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -1,5 +1,5 @@ --- -title: "33 JavaScript Concepts Every Developer Should Know" +title: "33 JavaScript Concepts" sidebarTitle: "Welcome" description: "Learn JavaScript with 33 essential concepts every developer should know. Free guide with clear explanations, practical code examples, and curated resources for beginners to senior developers." --- From 97b2e213f29a8b5adb6d4a356a1866117e2161bd Mon Sep 17 00:00:00 2001 From: Leonardo Maldonado Date: Sun, 4 Jan 2026 15:15:18 -0300 Subject: [PATCH 3/4] fix(docs): optimize meta descriptions for SEO (110-160 chars) --- docs/concepts/algorithms-big-o.mdx | 2 +- docs/concepts/async-await.mdx | 2 +- docs/concepts/call-stack.mdx | 2 +- docs/concepts/callbacks.mdx | 2 +- docs/concepts/clean-code.mdx | 2 +- docs/concepts/data-structures.mdx | 2 +- docs/concepts/dom.mdx | 2 +- docs/concepts/equality-operators.mdx | 2 +- docs/concepts/es-modules.mdx | 2 +- docs/concepts/generators-iterators.mdx | 2 +- docs/concepts/http-fetch.mdx | 2 +- docs/concepts/inheritance-polymorphism.mdx | 2 +- docs/concepts/javascript-engines.mdx | 2 +- docs/concepts/modern-js-syntax.mdx | 2 +- docs/concepts/object-creation-prototypes.mdx | 2 +- docs/concepts/promises.mdx | 2 +- docs/concepts/regular-expressions.mdx | 2 +- docs/concepts/scope-and-closures.mdx | 2 +- docs/concepts/this-call-apply-bind.mdx | 2 +- docs/concepts/type-coercion.mdx | 2 +- docs/concepts/value-reference-types.mdx | 2 +- docs/contributing.mdx | 2 +- docs/index.mdx | 2 +- docs/translations.mdx | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/concepts/algorithms-big-o.mdx b/docs/concepts/algorithms-big-o.mdx index 34710030..f09d73e0 100644 --- a/docs/concepts/algorithms-big-o.mdx +++ b/docs/concepts/algorithms-big-o.mdx @@ -1,7 +1,7 @@ --- title: "Algorithms & Big O" sidebarTitle: "Algorithms & Big O: Measuring Code Performance" -description: "Learn Big O notation and algorithms in JavaScript. Understand time complexity, implement searching and sorting algorithms, and recognize common interview patterns." +description: "Learn Big O notation and algorithms in JavaScript. Understand time complexity, searching, sorting, and common interview patterns." --- Why does one solution pass all tests instantly while another times out? Why do interviewers care so much about "time complexity"? Consider these two functions that both find if an array contains duplicates: diff --git a/docs/concepts/async-await.mdx b/docs/concepts/async-await.mdx index a034db7f..e2598fd5 100644 --- a/docs/concepts/async-await.mdx +++ b/docs/concepts/async-await.mdx @@ -1,7 +1,7 @@ --- title: "async/await" sidebarTitle: "async/await: Writing Async Code That Looks Synchronous" -description: "Learn async/await in JavaScript. Syntactic sugar over Promises that makes async code readable. Covers error handling with try/catch, parallel execution with Promise.all, and common pitfalls." +description: "Learn async/await in JavaScript. Write cleaner async code with try/catch error handling, Promise.all for parallel execution, and more." --- Why does asynchronous code have to look so complicated? What if you could write code that fetches data from a server, waits for user input, or reads files, all while looking as clean and readable as regular synchronous code? diff --git a/docs/concepts/call-stack.mdx b/docs/concepts/call-stack.mdx index 5f18e9d0..9a40c955 100644 --- a/docs/concepts/call-stack.mdx +++ b/docs/concepts/call-stack.mdx @@ -1,7 +1,7 @@ --- title: "Call Stack" sidebarTitle: "Call Stack: How Function Execution Works" -description: "Learn how the JavaScript call stack tracks function execution. Understand stack frames, LIFO ordering, execution contexts, stack overflow errors, and debugging with stack traces." +description: "Learn how the JavaScript call stack works. Understand stack frames, LIFO ordering, execution contexts, and stack overflow errors." --- How does JavaScript keep track of which function is running? When a function calls another function, how does JavaScript know where to return when that function finishes? diff --git a/docs/concepts/callbacks.mdx b/docs/concepts/callbacks.mdx index a49dea10..d58a03b9 100644 --- a/docs/concepts/callbacks.mdx +++ b/docs/concepts/callbacks.mdx @@ -1,7 +1,7 @@ --- title: "Callbacks" sidebarTitle: "Callbacks: The Foundation of Async" -description: "Learn JavaScript callbacks, functions passed to other functions to be called later. Understand sync vs async callbacks, error-first patterns, callback hell, and why Promises were invented." +description: "Learn JavaScript callbacks. Understand sync vs async callbacks, error-first patterns, callback hell, and why Promises were invented." --- Why doesn't JavaScript wait? When you set a timer, make a network request, or listen for a click, how does your code keep running instead of freezing until that operation completes? diff --git a/docs/concepts/clean-code.mdx b/docs/concepts/clean-code.mdx index 22e79e36..02f5e54f 100644 --- a/docs/concepts/clean-code.mdx +++ b/docs/concepts/clean-code.mdx @@ -1,7 +1,7 @@ --- title: "Clean Code" sidebarTitle: "Clean Code: Writing Readable JavaScript" -description: "Learn clean code principles for JavaScript. Covers meaningful naming, small functions, DRY, avoiding side effects, and best practices to write maintainable code." +description: "Learn clean code principles for JavaScript. Meaningful naming, small functions, DRY, and best practices for maintainable code." --- Why do some codebases feel like a maze while others read like a well-written story? What makes code easy to change versus code that makes you want to rewrite everything from scratch? diff --git a/docs/concepts/data-structures.mdx b/docs/concepts/data-structures.mdx index ac74395b..89127cb8 100644 --- a/docs/concepts/data-structures.mdx +++ b/docs/concepts/data-structures.mdx @@ -1,7 +1,7 @@ --- title: "Data Structures" sidebarTitle: "Data Structures: Organizing and Storing Data" -description: "Learn JavaScript data structures from built-in Arrays, Objects, Maps, and Sets to implementing Stacks, Queues, and Linked Lists. Understand when to use each structure." +description: "Learn JavaScript data structures: Arrays, Objects, Maps, Sets, Stacks, Queues, and Linked Lists. Know when to use each one." --- Why does finding an item in an array take longer as it grows? Why can you look up an object property instantly regardless of how many properties it has? The answer lies in **data structures**. diff --git a/docs/concepts/dom.mdx b/docs/concepts/dom.mdx index a0199e18..e544dae0 100644 --- a/docs/concepts/dom.mdx +++ b/docs/concepts/dom.mdx @@ -1,7 +1,7 @@ --- title: "DOM Manipulation" sidebarTitle: "DOM: How Browsers Represent Web Pages" -description: "Learn how the DOM works in JavaScript. Understand how browsers represent HTML as a tree, select and manipulate elements, traverse nodes, and optimize rendering performance." +description: "Learn the DOM in JavaScript. Select and manipulate elements, traverse nodes, handle events, and optimize rendering performance." --- How does JavaScript change what you see on a webpage? How do you click a button and see new content appear, or type in a form and watch suggestions pop up? How does a "dark mode" toggle instantly transform an entire page? diff --git a/docs/concepts/equality-operators.mdx b/docs/concepts/equality-operators.mdx index 5d635bd2..db8b9369 100644 --- a/docs/concepts/equality-operators.mdx +++ b/docs/concepts/equality-operators.mdx @@ -1,7 +1,7 @@ --- title: "Equality: == vs ===" sidebarTitle: "Equality Operators: == vs === Type Checking" -description: "Learn JavaScript equality operators == vs ===, typeof quirks, and Object.is(). Understand type coercion, why NaN !== NaN, and why typeof null returns 'object'." +description: "Learn JavaScript equality: == vs ===, typeof quirks, and Object.is(). Understand type coercion and why NaN !== NaN." --- Why does `1 == "1"` return `true` but `1 === "1"` return `false`? Why does `typeof null` return `"object"`? And why is `NaN` the only value in JavaScript that isn't equal to itself? diff --git a/docs/concepts/es-modules.mdx b/docs/concepts/es-modules.mdx index 2d2e5ca8..cb60f1d5 100644 --- a/docs/concepts/es-modules.mdx +++ b/docs/concepts/es-modules.mdx @@ -1,7 +1,7 @@ --- title: "ES Modules" sidebarTitle: "ES Modules: Native Module System" -description: "Learn ES Modules in JavaScript. Understand import/export syntax, why ESM beats CommonJS, live bindings, dynamic imports, top-level await, and how modules enable tree-shaking." +description: "Learn ES Modules in JavaScript. Understand import/export, live bindings, dynamic imports, top-level await, and tree-shaking." --- Why does Node.js have two different module systems? Why can bundlers remove unused code from ES Modules but not from CommonJS? And why do some imports need curly braces while others don't? diff --git a/docs/concepts/generators-iterators.mdx b/docs/concepts/generators-iterators.mdx index 4614f512..42589829 100644 --- a/docs/concepts/generators-iterators.mdx +++ b/docs/concepts/generators-iterators.mdx @@ -1,7 +1,7 @@ --- title: "Generators & Iterators" sidebarTitle: "Generators & Iterators: Pausable Functions" -description: "Learn JavaScript generators and iterators. Understand yield, the iteration protocol, lazy evaluation, infinite sequences, and async generators with for await...of." +description: "Learn JavaScript generators and iterators. Understand yield, lazy evaluation, infinite sequences, and async generators." --- What if a function could pause mid-execution, return a value, and then resume right where it left off? What if you could create a sequence of values that are computed only when you ask for them — not all at once? diff --git a/docs/concepts/http-fetch.mdx b/docs/concepts/http-fetch.mdx index 656641d8..ad96c36b 100644 --- a/docs/concepts/http-fetch.mdx +++ b/docs/concepts/http-fetch.mdx @@ -1,7 +1,7 @@ --- title: "HTTP & Fetch API" sidebarTitle: "Fetch API: Making HTTP Requests the Modern Way" -description: "Learn how to make HTTP requests with the JavaScript Fetch API. Understand GET, POST, response handling, JSON parsing, error patterns, and AbortController for cancellation." +description: "Learn the JavaScript Fetch API for HTTP requests. Covers GET, POST, response handling, JSON parsing, and AbortController." --- How does JavaScript get data from a server? How do you load user profiles, submit forms, or fetch the latest posts from an API? The answer is the **[Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)**, JavaScript's modern way to make network requests. diff --git a/docs/concepts/inheritance-polymorphism.mdx b/docs/concepts/inheritance-polymorphism.mdx index 0ec61aa7..1c6c2346 100644 --- a/docs/concepts/inheritance-polymorphism.mdx +++ b/docs/concepts/inheritance-polymorphism.mdx @@ -1,7 +1,7 @@ --- title: "Inheritance & Polymorphism" sidebarTitle: "Inheritance & Polymorphism: OOP Principles" -description: "Learn inheritance and polymorphism in JavaScript — extending classes, prototype chains, method overriding, and code reuse patterns. Master object-oriented programming principles." +description: "Learn inheritance and polymorphism in JavaScript. Extend classes, use prototype chains, override methods, and master OOP patterns." --- How do game developers create hundreds of character types without copy-pasting the same code over and over? How can a Warrior, Mage, and Archer all "attack" differently but be treated the same way in battle? diff --git a/docs/concepts/javascript-engines.mdx b/docs/concepts/javascript-engines.mdx index 82160442..cd75edf7 100644 --- a/docs/concepts/javascript-engines.mdx +++ b/docs/concepts/javascript-engines.mdx @@ -1,7 +1,7 @@ --- title: "JavaScript Engines" sidebarTitle: "JavaScript Engines: How V8 Runs Your Code" -description: "Learn how JavaScript engines work. Understand V8's architecture, parsing, compilation, JIT optimization, hidden classes, inline caching, and garbage collection." +description: "Learn how JavaScript engines work. Understand V8's parsing, JIT compilation, hidden classes, inline caching, and garbage collection." --- What happens when you run JavaScript code? How does a browser turn `const x = 1 + 2` into something your computer actually executes? When you write a function, what transforms those characters into instructions your CPU understands? diff --git a/docs/concepts/modern-js-syntax.mdx b/docs/concepts/modern-js-syntax.mdx index d768e91b..2c27ed40 100644 --- a/docs/concepts/modern-js-syntax.mdx +++ b/docs/concepts/modern-js-syntax.mdx @@ -1,7 +1,7 @@ --- title: "Modern JS Syntax (ES6+)" sidebarTitle: "Modern JavaScript Syntax: ES6+ Features" -description: "Learn modern JavaScript ES6+ syntax. Covers destructuring, spread/rest operators, arrow functions, optional chaining, nullish coalescing, and template literals with practical examples." +description: "Learn ES6+ JavaScript syntax: destructuring, spread/rest, arrow functions, optional chaining, nullish coalescing, and template literals." --- Why does JavaScript code written in 2015 look so different from code written today? How do developers write such concise, readable code without all the boilerplate? diff --git a/docs/concepts/object-creation-prototypes.mdx b/docs/concepts/object-creation-prototypes.mdx index 5f20e6c1..ff525b11 100644 --- a/docs/concepts/object-creation-prototypes.mdx +++ b/docs/concepts/object-creation-prototypes.mdx @@ -1,7 +1,7 @@ --- title: "Prototypes & Object Creation" sidebarTitle: "Object Creation & Prototypes: How Objects Inherit" -description: "Learn JavaScript's prototype chain and object creation. Understand how inheritance works, the new operator's 4 steps, Object.create(), Object.assign(), and prototype methods." +description: "Learn JavaScript prototypes and object creation. Understand the prototype chain, new operator, Object.create(), and inheritance." --- How does a plain JavaScript object know about methods like `.toString()` or `.hasOwnProperty()` that you never defined? How does JavaScript let objects inherit from other objects without traditional classes? diff --git a/docs/concepts/promises.mdx b/docs/concepts/promises.mdx index 673af160..b75a7125 100644 --- a/docs/concepts/promises.mdx +++ b/docs/concepts/promises.mdx @@ -1,7 +1,7 @@ --- title: "Promises" sidebarTitle: "Promises: Managing Async Operations" -description: "Learn JavaScript Promises for handling async operations. Understand how to create, chain, and combine Promises, handle errors properly, and avoid common pitfalls." +description: "Learn JavaScript Promises. Create, chain, and combine Promises, handle errors properly, and avoid common async pitfalls." --- What if you could represent a value that doesn't exist yet? What if instead of deeply nested callbacks, you could write asynchronous code that reads almost like synchronous code? diff --git a/docs/concepts/regular-expressions.mdx b/docs/concepts/regular-expressions.mdx index e223fab2..660b8c90 100644 --- a/docs/concepts/regular-expressions.mdx +++ b/docs/concepts/regular-expressions.mdx @@ -1,7 +1,7 @@ --- title: "Regular Expressions" sidebarTitle: "Regular Expressions: Pattern Matching" -description: "Learn regular expressions in JavaScript. Covers pattern syntax, character classes, quantifiers, flags, capturing groups, and methods like test, match, and replace." +description: "Learn regular expressions in JavaScript. Pattern syntax, character classes, quantifiers, flags, and methods like test and match." --- How do you check if an email address is valid? How do you find and replace all phone numbers in a document? How can you extract hashtags from a tweet? diff --git a/docs/concepts/scope-and-closures.mdx b/docs/concepts/scope-and-closures.mdx index 94858af3..7691744e 100644 --- a/docs/concepts/scope-and-closures.mdx +++ b/docs/concepts/scope-and-closures.mdx @@ -1,7 +1,7 @@ --- title: "Scope & Closures" sidebarTitle: "Scope and Closures: How Variables Really Work" -description: "Learn JavaScript scope and closures. Understand the three types of scope, var vs let vs const, lexical scoping, the scope chain, and closure patterns for data privacy." +description: "Learn JavaScript scope and closures. Understand var vs let vs const, lexical scoping, the scope chain, and closure patterns." --- Why can some variables be accessed from anywhere in your code, while others seem to disappear? How do functions "remember" variables from their parent functions, even after those functions have finished running? diff --git a/docs/concepts/this-call-apply-bind.mdx b/docs/concepts/this-call-apply-bind.mdx index 607f2199..a622a742 100644 --- a/docs/concepts/this-call-apply-bind.mdx +++ b/docs/concepts/this-call-apply-bind.mdx @@ -1,7 +1,7 @@ --- title: "this, call, apply & bind" sidebarTitle: "this, call, apply, and bind: How Context Works" -description: "Learn how JavaScript's 'this' keyword works and how to control context binding. Understand the 5 binding rules, call/apply/bind methods, arrow functions, and common pitfalls." +description: "Learn JavaScript's 'this' keyword and context binding. Master the 5 binding rules, call/apply/bind methods, and arrow functions." --- Why does `this` sometimes point to the wrong object? Why does your method work perfectly when called directly, but break when passed as a callback? And how do **[`call`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)**, **[`apply`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply)**, and **[`bind`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)** let you take control? diff --git a/docs/concepts/type-coercion.mdx b/docs/concepts/type-coercion.mdx index 02a93b00..0e763349 100644 --- a/docs/concepts/type-coercion.mdx +++ b/docs/concepts/type-coercion.mdx @@ -1,7 +1,7 @@ --- title: "Type Coercion" sidebarTitle: "Type Coercion: How Values Convert Automatically" -description: "Learn JavaScript type coercion and implicit conversion. Understand how values convert to strings, numbers, and booleans, the 8 falsy values, and how to avoid common coercion bugs." +description: "Learn JavaScript type coercion. Understand how values convert to strings, numbers, and booleans, plus the 8 falsy values." --- Why does `"5" + 3` give you `"53"` but `"5" - 3` gives you `2`? Why does `[] == ![]` return `true`? How does JavaScript decide what type a value should be? diff --git a/docs/concepts/value-reference-types.mdx b/docs/concepts/value-reference-types.mdx index 451273ef..b899a36a 100644 --- a/docs/concepts/value-reference-types.mdx +++ b/docs/concepts/value-reference-types.mdx @@ -1,7 +1,7 @@ --- title: "Value vs Reference Types" sidebarTitle: "Value vs Reference Types: How Memory Works" -description: "Learn how value types and reference types work in JavaScript. Understand how primitives and objects are stored, why copying objects shares references, and how to avoid mutation bugs." +description: "Learn value vs reference types in JavaScript. Understand how primitives and objects are stored in memory and avoid mutation bugs." --- Have you ever wondered why changing one variable unexpectedly changes another? Why does this happen? diff --git a/docs/contributing.mdx b/docs/contributing.mdx index 798fb77b..42dfe5e8 100644 --- a/docs/contributing.mdx +++ b/docs/contributing.mdx @@ -1,6 +1,6 @@ --- title: "Contributing" -description: "How to contribute to 33 JavaScript Concepts" +description: "Want to contribute to 33 JavaScript Concepts? Learn how to submit improvements, fix issues, and help other developers learn." --- ## Welcome Contributors! diff --git a/docs/index.mdx b/docs/index.mdx index 2cc59ce8..27be5e54 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -1,7 +1,7 @@ --- title: "33 JavaScript Concepts" sidebarTitle: "Welcome" -description: "Learn JavaScript with 33 essential concepts every developer should know. Free guide with clear explanations, practical code examples, and curated resources for beginners to senior developers." +description: "Master JavaScript with 33 core concepts. Clear explanations, practical examples, and curated resources for developers at any level." --- Want to truly understand how JavaScript works? Not just copy-paste code, but actually know what's happening under the hood? diff --git a/docs/translations.mdx b/docs/translations.mdx index 752cb353..9390a4ef 100644 --- a/docs/translations.mdx +++ b/docs/translations.mdx @@ -1,6 +1,6 @@ --- title: "Translations" -description: "33 JavaScript Concepts in 40+ languages" +description: "33 JavaScript Concepts is available in 40+ languages. Find translations in Chinese, Spanish, Portuguese, Korean, and more." --- ## Community Translations From dc7fa1654a811c121c0c50385f3fb564df81c5bd Mon Sep 17 00:00:00 2001 From: Leonardo Maldonado Date: Sun, 4 Jan 2026 15:20:26 -0300 Subject: [PATCH 4/4] feat(docs): add IndexNow API key for search engine indexing --- docs/5c8wamucvfketshf1eyrw254gz94jwre.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/5c8wamucvfketshf1eyrw254gz94jwre.txt diff --git a/docs/5c8wamucvfketshf1eyrw254gz94jwre.txt b/docs/5c8wamucvfketshf1eyrw254gz94jwre.txt new file mode 100644 index 00000000..7aae8577 --- /dev/null +++ b/docs/5c8wamucvfketshf1eyrw254gz94jwre.txt @@ -0,0 +1 @@ +5c8wamucvfketshf1eyrw254gz94jwre \ No newline at end of file