56,966 blogs · [ { "id": "01a08791-e3c5-71a0-a438-b703702d78e3", "title": "JavaScript Reactivity (Part 4): Push vs. Pull Reactivity", "url": "https://jschof.dev/posts/2026/7/4-push-vs-pull-reactivity/", "published_at": "2026-07-23T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b703707e7466", "title": "JavaScript Reactivity (Part 3): Coarse vs. Fine-Grained Reactivity", "url": "https://jschof.dev/posts/2026/6/3-coarse-vs-fine-grained-reactivity/", "published_at": "2026-06-06T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70371700f71", "title": "JavaScript Reactivity (Part 2): Deep vs. Shallow Reactivity", "url": "https://jschof.dev/posts/2026/5/2-deep-vs-shallow-reactivity/", "published_at": "2026-05-22T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70372550d74", "title": "JavaScript Reactivity (Part 1): A Global Look", "url": "https://jschof.dev/posts/2026/5/1-javascript-frameworks-a-global-look/", "published_at": "2026-05-08T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70373152ade", "title": "Brooks' Surgical Team Model and AI", "url": "https://jschof.dev/posts/2026/4/brooks-surgical-team-model-and-ai/", "published_at": "2026-04-19T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70373d118aa", "title": "Concurrency with Workers", "url": "https://jschof.dev/posts/2026/3/concurrency-with-workers/", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037486521c", "title": "Asynchronicity and Promises", "url": "https://jschof.dev/posts/2026/2/asynchronicity-and-promises/", "published_at": "2026-02-22T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b703755fa82d", "title": "You Might Not Need an Abstraction", "url": "https://jschof.dev/posts/2026/1/you-might-not-need-an-abstraction/", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70375636716", "title": "Build Your Own Router", "url": "https://jschof.dev/posts/2025/11/build-your-own-router/", "published_at": "2025-11-11T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b703759f3f20", "title": "This is why we don't write date libraries", "url": "https://jschof.dev/posts/2025/9/dont-write-your-own-date-library/", "published_at": "2025-09-12T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70375ea7b3a", "title": "Using the Browser Highlight API", "url": "https://jschof.dev/posts/2025/9/using-hightligh-api/", "published_at": "2025-09-01T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70375f26cd3", "title": "Opinion: AI is bad for us", "url": "https://jschof.dev/posts/2025/5/opinion-ai-is-bad-for-us/", "published_at": "2025-05-17T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70376d48997", "title": "Element Attributes Are Not Element Properties", "url": "https://jschof.dev/posts/2025/4/attributes-are-not-properties/", "published_at": "2025-04-30T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b703778216e6", "title": "The Secret Lives of Classes: A deep dive into javascript prototypes and classes", "url": "https://jschof.dev/posts/2025/4/secret-lives-of-classes/", "published_at": "2025-04-05T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037819ec52", "title": "BYOF: Build Your Own Framework", "url": "https://jschof.dev/posts/2025/2/byo-framework/", "published_at": "2025-02-24T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70378646e5a", "title": "The Case for Services", "url": "https://jschof.dev/posts/2025/2/the-case-for-services/", "published_at": "2025-02-02T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b703790935ba", "title": "Global state and stores with web components", "url": "https://jschof.dev/posts/2025/1/global-state-with-web-components/", "published_at": "2025-01-18T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b70379915c5d", "title": "Some Web Component 'Render Prop' Patterns", "url": "https://jschof.dev/posts/2024/11/wc-render-prop-patterns/", "published_at": "2024-11-14T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037a3c1d87", "title": "The Differentiating Property of Web Components", "url": "https://jschof.dev/posts/2024/11/wc-distinctives/", "published_at": "2024-11-09T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037a4394b5", "title": "Web components + anchor positioning + popover API = I love the platform", "url": "https://jschof.dev/posts/2024/9/love-letter-to-the-platform/", "published_at": "2024-10-12T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037adf2606", "title": "Web Components and You (part 10): Provider patterns", "url": "https://jschof.dev/posts/2024/8/web-components-and-you-10/", "published_at": "2024-08-31T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037b022f23", "title": "Web Components and You (part 9): Handling empty slots", "url": "https://jschof.dev/posts/2024/8/web-components-and-you-9/", "published_at": "2024-08-12T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037b6eccf1", "title": "Web Components and You (part 8): Making a form element web component!", "url": "https://jschof.dev/posts/2024/4/web-components-and-you-8/", "published_at": "2024-04-26T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037bfb2cf1", "title": "Web Components and You (part 7): Let's talk about Shadow DOM mode", "url": "https://jschof.dev/posts/2024/4/web-components-and-you-7/", "published_at": "2024-04-14T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037cf9414f", "title": "Web Components and You (part 6): Slots and how to use them", "url": "https://jschof.dev/posts/2024/4/web-components-and-you-6/", "published_at": "2024-04-01T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037d7892bb", "title": "Web Components and You (part 5): Piercing the Shadow DOM", "url": "https://jschof.dev/posts/2024/3/web-components-and-you-5/", "published_at": "2024-03-24T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037dd84aeb", "title": "Web Components and You (part 4): Style", "url": "https://jschof.dev/posts/2024/3/web-components-and-you-4/", "published_at": "2024-03-11T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037e33ed3e", "title": "Web Components and You (part 3): Simplifying with Lit", "url": "https://jschof.dev/posts/2024/3/web-components-and-you-3/", "published_at": "2024-03-06T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037e63d978", "title": "Web Components and You (part 2): Attributes and Reactivity", "url": "https://jschof.dev/posts/2024/3/web-components-and-you-2-attributes/", "published_at": "2024-03-01T00:00:00+00:00" }, { "id": "01a08791-e3c5-71a0-a438-b7037f15bca6", "title": "Web Components and You (part 1): The Shadow Dom", "url": "https://jschof.dev/posts/2024/2/web-components-and-you-1/", "published_at": "2024-02-23T00:00:00+00:00" } ] posts Claim your blog
Back to jschof.dev
Blog · corpus.blog/blogs/jschof.dev/posts

jschof.dev

jschof.dev

2026

2025

2024