41554 blogs · [ { "id": "01a087c9-3826-7370-ba39-adceb99bba48", "title": "Exfiltrating GitHub Gists", "url": "https://prepitaph.org/snippets/gist-exfil/", "published_at": "2026-05-14T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46c3df75d", "title": "Text Compression with Web Standards", "url": "https://prepitaph.org/snippets/text-compression/", "published_at": "2026-01-25T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46d1c0c78", "title": "Animated Hamburger Icon", "url": "https://prepitaph.org/snippets/hamburger-icon/", "published_at": "2025-09-19T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46d23dbf2", "title": "Animating Text Color", "url": "https://prepitaph.org/snippets/text-animation/", "published_at": "2025-08-31T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46dcff4c5", "title": "Faceted Filtering with Constructed Style Sheets", "url": "https://prepitaph.org/articles/facsseted-filtering/", "published_at": "2025-06-29T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46e40e9ba", "title": "HTML Templating Lessons", "url": "https://prepitaph.org/journal/templating-2025-06-29/", "published_at": "2025-06-29T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46e9d5e40", "title": "Elusive Markup Abstractions", "url": "https://prepitaph.org/articles/markup-abstractions/", "published_at": "2025-04-27T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46ef088ce", "title": "Permeable Borders", "url": "https://prepitaph.org/snippets/permeable-borders/", "published_at": "2025-03-26T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46f06b761", "title": "Automation Lessons", "url": "https://prepitaph.org/articles/automation-lessons/", "published_at": "2025-02-28T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46f655273", "title": "MacBook Setup", "url": "https://prepitaph.org/journal/mbp-2025-01-04/", "published_at": "2025-01-04T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a46f92a5f7", "title": "Memoization with Lazy Getters", "url": "https://prepitaph.org/snippets/lazy-getter-memoization/", "published_at": "2024-12-15T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4702318d9", "title": "HTTP Routing with Web Standards", "url": "https://prepitaph.org/articles/http-routing/", "published_at": "2024-11-22T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a470dca8cf", "title": "Constraints Are a Good Thing", "url": "https://prepitaph.org/articles/constraints/", "published_at": "2024-11-18T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a471da95d6", "title": "Exfiltrating Exchange E-Mails", "url": "https://prepitaph.org/articles/exchange-exfil/", "published_at": "2024-11-15T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a472c66879", "title": "Literacy", "url": "https://prepitaph.org/articles/literacy/", "published_at": "2024-08-05T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a472d037b3", "title": "Garbage Collection for Event Listeners", "url": "https://prepitaph.org/articles/event-garbage/", "published_at": "2024-07-29T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47306bea1", "title": "Readcently: Semmel Roll", "url": "https://prepitaph.org/journal/readcently-2024-07-26/", "published_at": "2024-07-26T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47362ae20", "title": "Readcently", "url": "https://prepitaph.org/journal/readcently-2024-07-25/", "published_at": "2024-07-25T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47380f12c", "title": "Debugging CSS Custom Properties", "url": "https://prepitaph.org/snippets/debugging-custom-properties/", "published_at": "2024-07-18T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4745cf86a", "title": "CSS-Only Ripple Effect", "url": "https://prepitaph.org/snippets/css-ripple/", "published_at": "2024-07-17T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4746cab32", "title": "CSS Nesting Syntax Conversion", "url": "https://prepitaph.org/snippets/css-nesting-esbuild/", "published_at": "2024-07-13T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4746d9acb", "title": "CSS Vector-Path Scaling", "url": "https://prepitaph.org/articles/vector-path-scaling/", "published_at": "2024-07-10T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a474ac11c0", "title": "Tricking Browsers into Nesting Forms", "url": "https://prepitaph.org/articles/nesting-forms/", "published_at": "2024-05-04T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a475468552", "title": "Subverting the Cascade", "url": "https://prepitaph.org/articles/subverting-cascade/", "published_at": "2024-03-29T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a475c74b1e", "title": "Virtual JavaScript Modules", "url": "https://prepitaph.org/snippets/virtual-modules/", "published_at": "2024-03-23T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4766d0890", "title": "Default Map in JavaScript", "url": "https://prepitaph.org/snippets/default-map/", "published_at": "2024-03-22T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4770a9209", "title": "Easy to Test, Easy to Change", "url": "https://prepitaph.org/articles/easy-to-change/", "published_at": "2024-02-27T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a477515ef3", "title": "File-System Access in the Browser", "url": "https://prepitaph.org/articles/web-fs/", "published_at": "2024-02-04T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a477c4d802", "title": "Scroll Shadows", "url": "https://prepitaph.org/snippets/scroll-shadows/", "published_at": "2024-01-28T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a477fa242c", "title": "CSS Color Scheme", "url": "https://prepitaph.org/snippets/css-color-scheme/", "published_at": "2024-01-24T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a478098f9e", "title": "EditorConfig", "url": "https://prepitaph.org/snippets/editorconfig/", "published_at": "2024-01-10T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a478790f12", "title": "Two-Factor Authentication on the Command Line", "url": "https://prepitaph.org/snippets/2fa/", "published_at": "2024-01-07T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a478a03cc3", "title": "Technology as Attractive Nuisance", "url": "https://prepitaph.org/articles/attractive-nuisance/", "published_at": "2023-12-31T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4794c034e", "title": "Subgrid for Nested Alignment", "url": "https://prepitaph.org/snippets/subgrid-alignment/", "published_at": "2023-12-19T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a4798329c5", "title": "Skeumorphic Text Highlighting", "url": "https://prepitaph.org/snippets/text-highlighting/", "published_at": "2023-12-18T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a479f245af", "title": "HTML Boilerplate", "url": "https://prepitaph.org/snippets/html-boilerplate/", "published_at": "2023-12-17T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47a19bbe2", "title": "Code Splitting for Humans", "url": "https://prepitaph.org/articles/code-splitting/", "published_at": "2023-12-10T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47aad8a1e", "title": "Theming with Constructed Style Sheets", "url": "https://prepitaph.org/articles/constructed-style-themes/", "published_at": "2023-11-26T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47b1d49ea", "title": "Augmenting JavaScript with Static Typing", "url": "https://prepitaph.org/articles/typed-javascript/", "published_at": "2023-10-01T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47b41a50c", "title": "Encrypted Web Documents", "url": "https://prepitaph.org/articles/encrypted-web-documents/", "published_at": "2023-08-31T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47bfb808e", "title": "From HTML to DOM Nodes", "url": "https://prepitaph.org/articles/html2dom/", "published_at": "2023-08-17T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47cc77447", "title": "Client-Side Secrets with Web Crypto", "url": "https://prepitaph.org/articles/web-crypto-secrets/", "published_at": "2023-07-23T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47dae8e2a", "title": "Perils of View Transitions", "url": "https://prepitaph.org/articles/view-transition-perils/", "published_at": "2023-07-09T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47dcf0e1e", "title": "Signals for Reactivity", "url": "https://prepitaph.org/articles/signals-reactivity/", "published_at": "2023-05-29T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47e9b8896", "title": "Banishing npm", "url": "https://prepitaph.org/articles/banishing-npm/", "published_at": "2023-04-23T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a47f886579", "title": "Dicurious", "url": "https://prepitaph.org/articles/dicurious/", "published_at": "2023-03-30T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a480075771", "title": "Creative Privacy", "url": "https://prepitaph.org/articles/creative-privacy/", "published_at": "2023-03-10T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a48059a3d7", "title": "Streaming HTML", "url": "https://prepitaph.org/articles/streaming-html/", "published_at": "2023-03-03T00:00:00+00:00" }, { "id": "01a087c9-3827-7056-b9f8-f4a481061459", "title": "Lazy Custom Elements: An Undercover Primer", "url": "https://prepitaph.org/articles/lazy-custom-elements/", "published_at": "2023-02-13T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaed8fa3047", "title": "Lightweight HTML Templating with JavaScript", "url": "https://prepitaph.org/articles/lightweight-html-templating/", "published_at": "2023-02-10T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaed9c3ad4e", "title": "Seizing the Means of Transclusion", "url": "https://prepitaph.org/articles/means-of-transclusion/", "published_at": "2022-11-03T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaed9fad38d", "title": "churnal: Digestible News", "url": "https://prepitaph.org/articles/churnal/", "published_at": "2022-09-02T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaeda5dd567", "title": "Data URIs", "url": "https://prepitaph.org/articles/data-uris/", "published_at": "2020-11-05T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaedac48410", "title": "HTTP Caching 101", "url": "https://prepitaph.org/articles/http-caching/", "published_at": "2018-06-23T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaedaf111eb", "title": "Cheating God", "url": "https://prepitaph.org/articles/cheating-god/", "published_at": "2017-08-15T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaedb62e5b2", "title": "Progressive Web Components", "url": "https://prepitaph.org/articles/progressive-web-components/", "published_at": "2016-12-02T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaedbce9c6f", "title": "Bugs Are Good", "url": "https://prepitaph.org/articles/bugs-are-good/", "published_at": "2015-06-08T00:00:00+00:00" }, { "id": "01a087c9-3828-709e-87ca-dcaedc0e1647", "title": "\"JSON is faster\"", "url": "https://prepitaph.org/articles/json-is-faster/", "published_at": "2014-11-18T00:00:00+00:00" } ] posts Claim your blog
Back to prepitaph.org
Blog · corpus.blog/blogs/prepitaph.org/posts

prepitaph.org

prepitaph.org

2026

2025

2024

2023

2022

2020

2018

2017

2016

2015

2014