<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Field Notes — Promise Okafor</title><link>https://promise-okafor.vercel.app/blog/</link><description>Notes on frontend architecture, product engineering and technical leadership.</description><language>en</language><lastBuildDate>Fri, 17 Jul 2026 08:00:00 GMT</lastBuildDate><atom:link href="https://promise-okafor.vercel.app/blog/rss.xml" rel="self" type="application/rss+xml" /><item><title>Building Paje to understand what frameworks hide</title><link>https://promise-okafor.vercel.app/blog/building-paje/</link><guid isPermaLink="true">https://promise-okafor.vercel.app/blog/building-paje/</guid><description>A close look at the tiny reactive UI runtime I am building—from hyperscript and action dispatch to DOM lifecycle, deliberate constraints, and the lessons hiding beneath familiar abstractions.</description><pubDate>Fri, 17 Jul 2026 08:00:00 GMT</pubDate><category>JavaScript</category><category>Runtime Architecture</category><category>Virtual DOM</category><category>Frontend</category></item></channel></rss>