While I’m generally skeptical of hamburger menus, sometimes they seem unavoidable – or at least pragmatic in a resigned kind of way. So we might as well try to get the icon right.| prepitaph.org
Snippets| prepitaph.org
I recently helped build a website in stark mode: Intentionally gaudy colors on dark background. That design necessitated visual flourishes for top-level navigation links to stand out when activated.| prepitaph.org
by FNDJune 29, 2025 An effort to escape irksome constraints of enterprise software not only made me appreciate the impact of modern CSS when combined with JavaScript APIs, it also taught me a few things about progressive enhancement, performance and accessibility.| prepitaph
Joe Lanman’s inquiry about server-side templating prompted me to connect some dots for myself.| prepitaph.org
Subpar templating remains an obstacle to generating usable HTML.| prepitaph.org
Strict border controls are an anachronism, so why not have our CSS reflect that?| prepitaph.org
collaborationDigital Communication Hygiene| prepitaph.org
Colophon| prepitaph.org
When creating software, ensure there are working harnesses for testing, installation, and upgrade first.| prepitaph.org
I’m in the process of setting up a new-ish MacBook. Unusually, this isn’t currently my primary machine, which gives me some leeway to really start from scratch instead of just transferring all the cruft accumulated over the years.| prepitaph.org
Memoization with Lazy Getters| prepitaph.org
Routing HTTP requests is now fairly straightforward in JavaScript thanks to the URL Pattern API. That’s useful both in a browser context (e.g. for service workers) and on the server side with WinterCG-compatible runtimes.| prepitaph.org
by FNDNovember 18, 2024| prepitaph
by FNDNovember 15, 2024 If you’re forced to use Microsoft’s Outlook/Exchange infrastructure or erroneously employed IMAP, you might need an exit strategy.| prepitaph
If you want to be remote, learn to be literate. If you want your team to support remote workers, make time for literature.| prepitaph.org
journal by FNDJuly 26, 2024 Hot on the heels of yesterday’s inaugural journal, I’ve decided to revisit the handful of bookmarks I currently consider seminal: Pieces I often refer to in discussions, sometimes with myself.| prepitaph
journal by FNDJuly 25, 2024 Loosely inspired by Sara Joy’s Weak Notes, my breakfast brain decided a facile pun was necessary to finally try something I’d been considering for a while: Consciously review stuff I’ve bookmarked, re-assess with some distance and highlight things that still seem noteworthy.| prepitaph
snippet by FNDJuly 18, 2024| prepitaph
snippet by FNDJuly 17, 2024| prepitaph
snippet by FNDJuly 13, 2024| prepitaph
by FNDJuly 10, 2024 CSS allows for arbitrary shapes these days. Getting the details right turns out to be a little challenging.| prepitaph
by FNDMay 4, 2024 Turns out the HTML parser and DOM APIs don’t always agree on semantic constraints.| prepitaph
by FNDMarch 29, 2024 The cascade is what makes CSS powerful and special. And yet, sometimes we want to limit that power for containment purposes.| prepitaph
snippet by FNDMarch 23, 2024 Given my penchant for minimal test cases and local applications, I sometimes run into situations where I can’t load external JavaScript files. Typically that’s because ESM is unsupported for file:// URIs or because I don’t wanna rely on additional assets for a Web Worker.| prepitaph
snippet by FNDMarch 22, 2024 I’ve always liked Python’s defaultdict and occasionally find myself reimplementing it in other languages, notably JavaScript – typically for some kind of dynamic indexing.| prepitaph
by cdentFebruary 27, 2024| prepitaph
by FNDFebruary 4, 2024 Every so often I create another local web application, for myself or others – mostly because not relying on a server seems more sustainable and eternallytrustworthy, especially for personal, single-purpose projects. Sometimes all you want to rely on is a web browser.| prepitaph
snippet by FNDJanuary 28, 2024| prepitaph
snippet by FNDJanuary 24, 2024| prepitaph
snippet by FNDJanuary 10, 2024| prepitaph
snippet by FNDJanuary 7, 2024| prepitaph
by FNDDecember 31, 2023 Purveyors of software must exercise reasonable care to guard against decontextualization of architectural choices.| prepitaph
snippet by FNDDecember 19, 2023| prepitaph
snippet by FNDDecember 18, 2023| prepitaph
snippet by FNDDecember 17, 2023 I probably create dozens of HTML documents each month, usually for experiments or minimal test cases. Consequently, I’ve long maintained a carefully crafted HTML template, included below, which I typically reduce to only retain pieces that are strictly necessary (e.g. removing the external style sheet or .stack utility).| prepitaph
by FNDDecember 10, 2023 JavaScript bundles don’t need to be monolithic, even without surrendering control to inscrutable algorithms. Here’s an approach for explicitly sharing code between multiple bundles.| prepitaph
by FNDNovember 26, 2023 Constructable Style Sheets are useful to inject and control styles via JavaScript.| prepitaph
by FNDOctober 1, 2023 As we’ve learned from the brouhaha around Svelte’s use of TypeScript, JSDoc makes it possible to write plain JavaScript while getting the benefits of static typing.| prepitaph
by FNDAugust 31, 2023 There are many options these days for securely sharing sensitive data, but they typically require some kind of shared infrastructure. Sometimes all you can rely on is the web.| prepitaph
by FNDAugust 17, 2023 Every once in a while, I need to turn HTML strings into DOM nodes. The mechanisms for doing so are less than obvious and nuanced.| prepitaph
by FNDJuly 23, 2023 Reading about Excalidraw’s end-to-end encryption a while back piqued my interest: Given my TiddlyWiki background, the idea of using a server to exchange sensitive data without exposing details to anyone else seemed compelling.| prepitaph
by FNDJuly 15, 2023 View transitions are excellent, but might block concurrent animations as well as interactions while transitioning. NB: This article was updated a week after publication to include helpful comments from Mr. View Transitions himself, Jake Archibald, who was kind enough to respond in private.| prepitaph
by FNDMay 29, 2023 Having been roped into dealing with the excesses of RxJS lately, I’d been wondering about Angular folks’ excitement about signals. So I finally sat down in an effort to understand the furor.| prepitaph
by FNDApril 23, 2023 npm is slow, unwieldy and unsafe. Deno can now serve as a drop-in replacement for front-end development environments.| prepitaph
by FNDMarch 30, 2023 being sent to the dictionary is a gift| prepitaph
by FNDMarch 10, 2023 Allowing users to tinker in private is essential to enabling creativity.| prepitaph
by FNDMarch 3, 2023 Browsers begin rendering HTML even before the document has been fully downloaded, which can greatly improve perceived performance. Servers can support such progressive rendering by emitting partial HTML chunks as soon as possible.| prepitaph
by FNDFebruary 13, 2023 At face value, An Approach to Lazy Loading Custom Elements appears to propose a solution for on-demand loading of web components. It’s actually subtle propaganda for custom elements.| prepitaph
by FNDFebruary 10, 2023 Sometimes I need to generate HTML without relying on external dependencies.| prepitaph
by FNDNovember 3, 2022 After years of advocating transclusion as a simple and effective integration mechanism, we’ve identified patterns and pitfalls worth considering.| prepitaph
by FNDSeptember 2, 2022 In ruminations on how async-first communication could and should work within a rapdily growing team, I had concluded that unidirectional broadcasting of significant developments can provide tremendous value, if done well.| prepitaph
by FNDNovember 5, 2020 The data: URI scheme is an underappreciated trick for virtual files.| prepitaph
by FNDJune 23, 2018 After repeatedly teaching the basics of HTTP caching in an ad-hoc fashion, I decided it was worth briefly summarizing the fundamental mechanisms.| prepitaph
by FNDAugust 15, 2017 happy to help – it’s simple math: I spend 5 min. to save you 60 in the grand scheme of things, we just cheated god| prepitaph
by FNDDecember 2, 2016 This is a write-up of the “Progressive Web Components” presentation at GOTO Berlin.| prepitaph
by FNDJune 8, 2015 Bugs are an opportunity for the community to reveal itself.| prepitaph
Discussing isomorphic JavaScript at dotJS, I questioned the value of client-side templating – and was confronted once again with the “but … JSON is faster!?” assertion.| prepitaph.org
In order to avoid memory leaks and prevent subtle bugs, we typically need to remove event listeners when the respective DOM element disappears. Except the browser already takes care of this for descendants.| prepitaph.org