New posts live here now
Plus a full index of everything I wrote on Medium
I've been writing on Medium at bluepnume.medium.com since 2015. Mostly JavaScript and TypeScript, a lot about cross-domain iframes from my years on PayPal Checkout, a run of Bitcoin posts, and more recently commerce and SMS from building OneText.
From now on, new posts will live here, at blog.danielbrain.ai.
At some point I'll move the old articles over too. Until then they stay on Medium, and every one of them is linked below, so if you're looking for something I wrote, it's here.
Everything on Medium so far (56 articles)
2026
- TypeScript’s number type is a lie (May 27)
2025
- A slightly better useState (Jun 10)
2024
2022
- Nine terrible ways to use TypeScript enums, and one good way. (Dec 15)
- The only kind of test I write (Dec 2)
- I’m interviewing a little differently this time round. (Oct 19)
- It’s not actually supposed to be difficult. (Oct 8)
- DTC brands have a huge blind spot: vaulting (Sep 12)
- Subscriptions are out, refills are in. (Aug 25)
- You don’t know jack about SMS (Aug 5)
2021
- The Magic of Serializing Functions (Sep 19)
- Fooled by Certainty (Jun 21)
- Bitcoin: cutting through the bullshit (Jun 13)
- Building Bitcoin in JavaScript (May 20)
- A follow up on Bitcoin’s S2F model (Apr 30)
- You don’t need S2F to value Bitcoin (Apr 24)
- Why Bitcoin? (Mar 31)
- Big questions I have about NFTs (Mar 15)
- Trading Crypto, and being able to sleep at night (Feb 15)
- The next chapter of BrainBlocks: Open Source (Feb 1)
2020
2019
- Iframes are just terrible. Here’s how they could be better. (Aug 18)
- Functional-ish JavaScript (May 15)
- Google Chrome’s Portals: like iframes, but better, and worse. (May 9)
- How many keywords can you place in a row in javascript? (Feb 7)
2018
- IE Intranet and Trusted Modes (Dec 4)
- JSX is a stellar invention, even with React out of the picture. (Nov 8)
- Blockchain is revolutionary. But could it be effortless? (Nov 4)
- Building a React-esque component using vanilla javascript. (Sep 16)
- xcomponent, PayPal’s open-source cross-domain-component library, is now zoid! (May 31)
- BrainBlocks and Nano, two months on! (Mar 24)
- Introducing BrainBlocks — my weekend hack project to build a simple checkout app for RaiBlocks (Jan 12)
2017
- Hacking Chrome’s Payment Request Api into PayPal’s iframe buttons (Oct 28)
- Introducing PayPal’s open-source cross-domain javascript suite (Oct 15)
- Reinventing cross-origin requests, without CORS (Sep 6)
- Safari’s new third party tracking rules, and enabling cross-domain data storage (Aug 30)
- Intentionally unleashing Zalgo with synchronous promises (Jun 15)
- Introducing support for cross-domain Glimmer components, with zoid (Apr 6)
- Turn your web-app into a cross-domain component with five lines of code (Mar 27)
- Creating a cross-domain React component, with zoid (Mar 20)
- Less is more: reducing thousands of PayPal buttons into a single iframe, using zoid (Mar 17)
- Allowing multiple domains to render your app in an iframe, using X-FRAME-OPTIONS (Mar 14)
- Even with async/await, raw promises are still key to writing optimal concurrent javascript (Feb 21)
- Every known way to get references to windows, in javascript (Feb 3)
- There’s no need to declare all javascript vars once at the top of a function, and there hasn’t been… (Jan 27)
- Configuration files, npm modules and lost sleep — why publishing front-end modules is painful, and… (Jan 18)
2016
- Introducing zoid — cross-domain, React-like components using iframes (Nov 28)
- Introducing post-robot — smart cross-domain messaging, from PayPal (Sep 30)
- Open Source javascript offerings from PayPal Checkout! #krakenjs (Jun 1)
- Dependency injection in Angular isn’t worth it. More lessons learned from scaling PayPal Checkout. (Apr 3)
- Auto-shrink-wrapping in PayPal Checkout, and how it’s saved us more than once (Feb 10)
- Understand promises before you start using async/await (Jan 19)
- Async javascript is much more fun when you memoize. (Jan 9)
2015
- Fighting technical debt and feature creep, with data (Oct 18)
- Sane, scalable Angular apps are tricky, but not impossible. Lessons learned from PayPal Checkout. (Sep 26)
You can also find everything else I've worked on at danielbrain.ai.
Comments
Join the discussionNo comments yet. Be the first to comment.