Writing
Notes on the things I build and break.
- What Should a Payment Contract Sign? Designing Safe EIP-712 Orders
A practical look at EIP-712 payment orders: which fields must be authorized, which execution details should stay dynamic, and how minOut turns unsigned swap calldata into a bounded risk.
- A Blockchain Event Is Not Final: Building a Reorg-Safe Payment Indexer
A practical look at confirmation depth, canonical block hashes, idempotent event ingestion, cursor safety, and what a payment system should do when the chain rewrites history.
- Optimizing performance your React App with Vite.js and Typescript
Learn how Vite can significantly improve your React app's performance with faster builds, instant HMR, and a smoother development experience.
- How I Designed a Crypto Payment Engine That Survives Crashes, Retries, and Restarts
How I built a resumable crypto payment engine where durable state, idempotent effects, and auditable transitions make crashes and retries ordinary not catastrophic.
- How I Built Gasless EVM Transactions with ZeroDev as Sponsor
A practical guide to sponsored native-token transfers, ERC-20 transfers, and batched LI.FI swaps using ZeroDev, Dynamic, viem, and ERC-4337.
- Dynamic OG images in Astro, without next/og
Every post on this site shared one social image. Building a card per post meant swapping the renderer the spec assumed, closing an open endpoint, and finding out which of satori's features actually work.
- transform-obj library for manipulate data object
data type consistency is very necessary and considered in making an application between the backend and frontend. And this is the reason I created the transform-obj library