41554 blogs · [ { "id": "01a087a1-21fa-7194-bd13-ec92cf441216", "title": "Speeding up the JavaScript ecosystem - oxlint and oxfmt", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-13/", "published_at": "2026-05-17T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d00ee784", "title": "DDoS'ing the human brain", "url": "https://marvinh.dev/blog/ddosing-the-human-brain/", "published_at": "2026-04-03T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d0bd61b4", "title": "Signals vs Query-Based Compilers", "url": "https://marvinh.dev/blog/signals-vs-query-based-compilers/", "published_at": "2026-01-04T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d19ac889", "title": "Building From First Principles", "url": "https://marvinh.dev/blog/building-from-first-principles/", "published_at": "2025-10-28T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d1f5d431", "title": "The missing link in JavaScript tools", "url": "https://marvinh.dev/blog/unifying-js-tools/", "published_at": "2025-09-11T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d2c783f2", "title": "Speeding up the JavaScript ecosystem - Semver", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-12/", "published_at": "2025-08-10T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d356d723", "title": "Speeding up the JavaScript ecosystem - Rust and JavaScript Plugins", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-11/", "published_at": "2025-02-23T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d412d5b4", "title": "The modern way to write JavaScript servers", "url": "https://marvinh.dev/blog/modern-way-to-write-javascript-servers/", "published_at": "2025-01-25T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d49d5820", "title": "Speeding up the JavaScript ecosystem - Isolated Declarations", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-10/", "published_at": "2024-07-06T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d58a2243", "title": "Speeding up the JavaScript ecosystem - Server Side JSX", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-9/", "published_at": "2024-05-15T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d60920d4", "title": "Speeding up the JavaScript ecosystem - Tailwind CSS", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-8/", "published_at": "2023-11-01T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d61d4da1", "title": "Speeding up the JavaScript ecosystem - The barrel file debacle", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-7/", "published_at": "2023-10-08T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d71b1d17", "title": "Speeding up the JavaScript ecosystem - Polyfills gone rogue", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-6/", "published_at": "2023-09-21T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d790bc4c", "title": "So you want to render colors in your terminal", "url": "https://marvinh.dev/blog/terminal-colors/", "published_at": "2023-04-23T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d88a5885", "title": "Speeding up the JavaScript ecosystem - draft-js emoji plugin", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-5/", "published_at": "2023-04-16T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d9483250", "title": "Speeding up the JavaScript ecosystem - npm scripts", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-4/", "published_at": "2023-03-19T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92d9f0deb8", "title": "Speeding up the JavaScript ecosystem - eslint", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-3/", "published_at": "2023-02-05T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92da2a1f72", "title": "Speeding up the JavaScript ecosystem - module resolution", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-2/", "published_at": "2023-01-15T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92da3b2c36", "title": "Speeding up the JavaScript ecosystem - one library at a time", "url": "https://marvinh.dev/blog/speeding-up-javascript-ecosystem/", "published_at": "2022-11-29T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92daf56363", "title": "Running 1000 tests in 1s", "url": "https://marvinh.dev/blog/running-1000-test-in-1s/", "published_at": "2022-10-02T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92db6c83a3", "title": "How to skew benchmarks in your favour", "url": "https://marvinh.dev/blog/benchmarks/", "published_at": "2022-08-01T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92dc3ece40", "title": "A look at web components", "url": "https://marvinh.dev/blog/web-components-in-2020/", "published_at": "2020-09-04T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92dd18022f", "title": "Portals considered harmful", "url": "https://marvinh.dev/blog/portals-considered-harmful/", "published_at": "2020-07-18T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92dd932c16", "title": "Stencil Store Challenge", "url": "https://marvinh.dev/blog/stencil-store-challenge/", "published_at": "2020-04-05T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92ddf06f29", "title": "State of Preact Devtools #2", "url": "https://marvinh.dev/blog/state-of-devtools-2/", "published_at": "2019-09-29T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92de3cc29e", "title": "State of Preact Devtools", "url": "https://marvinh.dev/blog/state-of-devtools/", "published_at": "2019-09-04T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92de4483ce", "title": "Hooks vs Classes a few months later", "url": "https://marvinh.dev/blog/hooks-vs-classes-a-few-months-later/", "published_at": "2019-06-13T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92df39f33e", "title": "Applying Preact minification tricks to CSS", "url": "https://marvinh.dev/blog/applying-preact-minification-tricks-to-css/", "published_at": "2019-04-15T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92e00a75a2", "title": "The Double Encoded VNode", "url": "https://marvinh.dev/blog/the-double-encoded-vnode/", "published_at": "2019-03-30T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92e0bb7c9c", "title": "When should I use preact compat?", "url": "https://marvinh.dev/blog/preact-vs-compat/", "published_at": "2019-03-23T00:00:00+00:00" }, { "id": "01a087a1-21fa-7194-bd13-ec92e0c98b53", "title": "Preact's best kept secret", "url": "https://marvinh.dev/blog/preact-options/", "published_at": "2019-03-17T00:00:00+00:00" } ] posts Claim your blog
Back to marvinh.dev
Blog · corpus.blog/blogs/marvinh.dev/posts

marvinh.dev

marvinh.dev

2026

2025

2024

2023

2022

2020

2019