Iterate Blog
I wanted a place to write down what I'm learning about AI and web apps, with posting as easy as sending a text.
I wanted a place to write down what I'm learning about AI and web apps, with posting as easy as sending a text.
A traditional blog makes posting a chore: a title, an editor, formatting, a publish button. So I didn't post. I wanted to capture what I was learning about AI, web apps, and technology while it was fresh, usually from my phone, usually a thought and a link.
I borrowed the posting model from a feed. There is a compose box at the top of the page, only visible when I'm signed in, and a post can be text, a photo, or a pasted link. A link becomes a preview card with the title, picture, and source. YouTube and Amazon links needed special handling, because both sites hand a server almost nothing to build a card from. The public sees a read-only feed. Each post also gets its own short link, and the share button opens the phone's share sheet. Pasted into a message, that link unfurls into a card showing the post.
There is no database. Each post is one small JSON file, and a copy is saved before every edit or delete. It's plain PHP and vanilla JavaScript on shared hosting, with no framework and no build step. Since the site is public and I'm the only author, the work went into the edges: a single signed-in admin, forgery checks on every change, uploaded photos re-encoded so location data never gets published, and a guard so the link-preview fetch can't be pointed at internal addresses.
The public feed: newest first, with a link turned into a preview card. This is the real blog.
A bare link, a short note with a card, and the share button on each post.
Posting takes seconds, so I actually do it. It's live at blog.ryanwhite.biz. What I post there is a running log of what I'm reading and trying.