Changelog

  1. Store Thinking posts in D1 instead of fetching Micro.blog at build time
  2. Put Thinking delete actions on their own line below the blurb.
  3. Fix delete panel styling on mobile browsers.
  4. Fix Thinking delete confirmation italics under font-synthesis: none.
  5. Restyle Thinking delete confirmation as italic inline links.
  6. Use post-page delete confirmation instead of pop-ups.
  7. Fix mobile Thinking delete with buttons and admin archive list.
  8. Fix Thinking delete on Brave mobile via same-origin API.
  9. Fix microblog body styles dropped in delete link change.
  10. Style Thinking delete as muted links beside timestamps.
  11. Add Thinking delete on archive with Bluesky syndication tracking.
  12. Increase homepage archive arrow size.
  13. Revert homepage section dividers.
  14. Add horizontal dividers between homepage sections.
  15. Fix Reading sort: newest added first, preserve migration order.
  16. Restore optional 30-day remember-me for admin blog password.
  17. Harden admin security (step 1): rate limits, no stored password.
  18. Update colophon and README for current link and OG behavior.
  19. Remove build-time link preview cards; keep plain links in Thinking.
  20. Fix link preview titles and use compact Bluesky-style cards.
  21. Add OG images for Thinking/Writing and link preview cards in Thinking.
  22. Add MIT license for project code.
  23. Add README documenting rommy.blog stack and setup.
  24. Update colophon for current photo workflow and admin UX.
  25. Fix Thinking photo picker alignment; restore filename font size.
  26. Shrink Thinking photo filename and improve icon alignment.
  27. Remove PHOTO label from Thinking tab; keep icon picker row.
  28. Remove admin deploy timing note paragraph from HTML.
  29. Remove admin deploy timing note from footer area.
  30. Remove Thinking photo format and size hint from admin.
  31. Remove Writing photo workflow hint from admin.
  32. Center Thinking photo filename with icon using flexbox.
  33. Align Thinking photo filename with larger centered icon.
  34. Restore Thinking filename text size and space before format hint.
  35. Match Thinking photo picker to compact framed image icon.
  36. Replace Thinking file picker with photo icon and small filename label.
  37. Photo bar: link-style controls, hide when caret leaves image, more submit spacing.
  38. Polish photo toolbar: compact one-line layout, hide on deselect.
  39. Move photo wrap controls out of Quill toolbar into a dedicated bar.
  40. Make Writing toolbar Wrap and Delete labels always visible.
  41. Add delete/remove for photos in Writing and Thinking admin.
  42. Fix Writing image text wrap in Quill and published HTML.
  43. Add R2 image uploads to Writing with Quill wrap controls.
  44. Update colophon for D1, R2 photos, Bluesky compression, and portrait display.
  45. Show portrait thinking photos at half size with click to enlarge.
  46. Compress Thinking photos for Bluesky only; keep originals elsewhere.
  47. Clarify Thinking photo limits and per-service error messages.
  48. Add photo upload to Thinking admin (R2, Micropub, Bluesky).
  49. Center Compose and Drafts sub-tabs on WRITING tab
  50. Update colophon to reflect D1 backend migration
  51. Add spacing between WRITING lead and sub-tabs
  52. Redesign WRITING tab with Compose and Drafts sub-tabs
  53. Add delete post option on writing pages with confirmation
  54. Trigger Pages redeploy with D1 env vars
  55. Phase 2: migrate all blog content to Cloudflare D1
  56. Update colophon: hosting moved to Cloudflare Pages
  57. Restore changelog: fetch full git history on Cloudflare Pages builds
  58. Rebuild site
  59. Update thinking via admin
  60. Allow admin CORS from rommy-blog.pages.dev
  61. KV drafts + build-pages.mjs for Cloudflare Pages migration
  62. Revert KV drafts and Pages migration — back to localStorage + GitHub Pages
  63. Add build-pages.mjs for Cloudflare Pages (outputs to dist/)
  64. Add node_modules to .gitignore for Cloudflare Pages deploy
  65. KV-backed draft auto-save (cross-device, replaces localStorage)
  66. Rebuild site
  67. Update thinking via admin
  68. Link 'crunch a lot of numbers' to LinkedIn on About page
  69. Update contact link text on About page
  70. Rebuild site
  71. Update thinking via admin
  72. Rebuild site
  73. Update thinking via admin
  74. All site dates display in ET (linklog, thinking, changelog, /now)
  75. Display all dates in ET; fix Haiku #1 and #2 dates (were UTC)
  76. Rebuild site
  77. Update posts.json for: Haiku #3
  78. Add post: Haiku #3
  79. Rebuild site
  80. Update thinking via admin
  81. Update post metadata: haiku-2
  82. Edit post: haiku-2
  83. Update post metadata: haiku-2
  84. Edit post: haiku-2
  85. Update post metadata: haiku-2
  86. Edit post: haiku-2
  87. Update post metadata: haiku-2
  88. Edit post: haiku-2
  89. Update post metadata: haiku-2
  90. Edit post: haiku-2
  91. Update post metadata: haiku-2
  92. Edit post: haiku-2
  93. Update post metadata: haiku-2
  94. Edit post: haiku-2
  95. Update post metadata: haiku-1
  96. Edit post: haiku-1
  97. Update post metadata: haiku-2
  98. Edit post: haiku-2
  99. Update post metadata: haiku-2
  100. Edit post: haiku-2
  101. Revert Quill Enter override to default behavior
  102. Enter = soft line break in editor; double Enter = paragraph on save
  103. Update post metadata: haiku-2
  104. Edit post: haiku-2
  105. Rebuild site
  106. Update posts.json for: Haiku #2
  107. Add post: Haiku #2
  108. Hide draft notice after publish until new content is typed
  109. Rebuild site
  110. Update posts.json for: Haiku #1
  111. Add post: Haiku #1
  112. Move draft notice inline to the right of the Publish button
  113. Update post metadata: the-importance-and-power-of-routine
  114. Edit post: the-importance-and-power-of-routine
  115. One-click edit: post pages link to admin, admin handles ?post=slug
  116. Edit: remove comma in routine post
  117. Edit: add 'and wrote' to routine post
  118. Edit: add 'on Zoom calls' to routine post
  119. Strip Quill empty paragraph spacers from writing posts
  120. Add auto-save draft to Writing tab
  121. Rebuild site
  122. Update posts.json for: The importance and power of routine
  123. Add post: The importance and power of routine
  124. Rebuild site
  125. Update thinking via admin
  126. Clear thinking for resubmit
  127. Auto-link URLs as Bluesky facets in THINKING posts
  128. Rebuild site
  129. Update thinking via admin
  130. Revert thinking to previous post
  131. Update thinking
  132. Auto-link bare URLs in THINKING text
  133. Add /colophon/ page, Changelog // Colophon in all footers
  134. Rebuild site
  135. Update thinking via admin
  136. Fix contact form submit button visibility (wrong CSS variable)
  137. Add spacing before Get in touch link on about page
  138. Add /contact/ page with Formspree form, link from about page
  139. Add GA4 tracking (G-L1CC5F3DP8) across all pages
  140. Fix THINKING section layout on homepage after div/span change
  141. Match THINKING text formatting on homepage and /now/ to the thinking page
  142. Rebuild site
  143. Render newlines in THINKING text as line breaks on homepage and /now/
  144. Rebuild site
  145. Add sharing: 10 Best Solid Colognes for Men | Man of Many
  146. Rebuild site
  147. Rebuild site
  148. Update thinking via admin
  149. Rebuild site
  150. Update thinking via admin
  151. Trigger follow-up rebuild after THINKING post for micro.blog sync
  152. Rebuild site
  153. Update thinking via admin
  154. Mirror THINKING posts to Bluesky via app password
  155. Thinking: individual static post pages, dates link internally
  156. Replace '← Home' with '←' on all pages
  157. Home: show only arrows on see-more links
  158. Now: section headings match homepage style (caps, grey, small)
  159. Now: update Working blurb
  160. Thinking: more space between heading and first post
  161. Thinking: add space between post and timestamp
  162. Rebuild changelog
  163. Thinking: move datetime below post content
  164. Rebuild site
  165. Update thinking via admin
  166. Writing: YYYY-MM-DD date format on post pages
  167. Thinking: only show posts from 2026 onward
  168. Rename /microblog/ to /thinking/
  169. Microblog: add // separator between date and time
  170. Microblog: YYYY-MM-DD HH:MM date format
  171. Microblog: YY:MM:DD HH:MM 24h date format
  172. Rebuild changelog
  173. Microblog: link dates to original posts on rommy.micro.blog
  174. Rebuild site
  175. Update thinking via admin
  176. Schedule hourly rebuild for microblog feed
  177. Thinking: add See more link to /microblog/
  178. Rename microblog page heading to micro.blog
  179. Microblog: use YYYY-MM-DD date format
  180. Add /microblog page from micro.blog feed
  181. Mirror THINKING posts to micro.blog via Micropub
  182. Rebuild site
  183. Update thinking via admin
  184. Rebuild site
  185. Update thinking via admin
  186. Footer: admin link lowercase in parens, left-grouped with copyright
  187. Add Admin footer link; hide tabs until signed in
  188. Admin: fix mobile zoom on tab switch, responsive layout
  189. Fix italic not rendering in Quill editor
  190. Rebuild changelog
  191. Writing tab: Quill rich text editor with theme-aware styling
  192. Rebuild site
  193. Update thinking via admin
  194. Admin: Login tab with remember-me, session-gated forms
  195. Admin: persist login session for 30 days via localStorage
  196. On Intention: replace 'whereas' with 'and'
  197. Rebuild: No Longer Human first in reading
  198. Rebuild changelog after rebase
  199. Reading: preserve insertion order (newest first)
  200. Rebuild site
  201. Update thinking via admin
  202. Rebuild site
  203. Add reading: No Longer Human
  204. Rebuild site
  205. Update thinking via admin
  206. Rebuild site
  207. Update thinking via admin
  208. Fix infinite scroll: anchor sentinel to body bottom, not after list
  209. Fix changelog: fetch full git history in CI
  210. Rebuild site
  211. Update posts.json for: On intention
  212. Add post: On intention
  213. Admin: fix spacing between Body label and hint text
  214. Admin: capitalize WRITING in new post lead text
  215. Remove House of the Spirits test entry from reading
  216. Reading tab: remove bookshop search, manual URL entry only
  217. Rebuild site
  218. Add reading: House of the Spirits
  219. Reading tab: search bookshop.org on submit instead of on-type
  220. Reading tab: auto-fetch bookshop.org URL from title search
  221. Sharing tab: auto-fetch page title from URL
  222. Admin: add Reading and Sharing tabs
  223. Admin: rename New Post tab to Writing
  224. Admin: tabbed UI for Thinking vs New Post
  225. Extend admin with new post form and update worker
  226. Point reading links to bookshop.org product pages
  227. Rebuild site
  228. Update thinking via admin
  229. Rebuild site
  230. Update thinking via admin
  231. Rebuild site
  232. Update thinking via admin
  233. Rebuild site
  234. Update thinking via admin
  235. Rebuild site
  236. Update thinking via admin
  237. Configure admin API URL for Cloudflare Worker
  238. Add admin UI and worker for updating Thinking
  239. Reword Veri post opening as two sentences
  240. Update Veri post opening paragraph
  241. Reword opening line in Veri post
  242. Fix spelling: enamored in Veri post
  243. Add NYTimes bubble house article to sharing
  244. Fix wording in Veri post
  245. Update thinking
  246. Add Veri post with floating Reddit ad image
  247. Add Inside the Box by David Epstein to reading
  248. Add new post: It's the beginning of spring...
  249. Update thinking
  250. Update thinking
  251. Update thinking
  252. Update thinking
  253. Update thinking
  254. Revert See more to right-aligned (option 1)
  255. Style See more as centered rule divider
  256. Style See more as flush-left underlined CTA
  257. Right-align See more link
  258. Align See more link with list link column
  259. Rename section heading to Thinking
  260. Rename NOW section heading to Microthought
  261. Add Buttondown subscribe link to footer on all pages
  262. Fix reading time flex layout on mobile (wrap date in span)
  263. Move reading time to same line as date, right-justified
  264. Add nownownow.com to sharing
  265. Use grid layout for post lists on all screen sizes
  266. Add /now page linked from Elsewhere section
  267. Move Changelog to same line as Atom feed in footer
  268. Add OG tags, reading time, back-to-top, infinite scroll, and changelog
  269. Use fixed 6.5rem date column on mobile to prevent wrapping
  270. Fix wrapping dates on mobile with nowrap and max-content column
  271. Restore date column min-width so reading links align with other sections
  272. Fix mobile grid to not affect desktop layout
  273. Mobile rendering improvements for iPhone
  274. Update Cursor to Sonnet 4.6 in AI post title and meta
  275. Preface Cursor post title with [AI]
  276. Fix datetime on Artsy link so it sorts to top
  277. Add [Purchased] Scott Sueme Overlap to sharing
  278. Add dark/light mode toggle to footer
  279. Switch to light mode: warm off-white background, dark text
  280. Rename Thinking section to Now
  281. Sharing: add Kengo Kuma Angers Cathedral (Dezeen)
  282. Update Thinking
  283. Add sharing archive page and update sitemap
  284. Sharing: add Empty Chairs by Liu Xia (Poetry Foundation)
  285. Sharing: add Upcoming readings by J.T. Price
  286. Add post: I asked Cursor to describe this blog as a web designer
  287. Cap sections at 5 with auto-generated archive pages and See more link
  288. Strip hashtags from Sharing titles; link photos on About page
  289. Add About page linked from Elsewhere
  290. Sharing: remove OPEN SPACE channel link
  291. Sharing: add No Small Parts Life Aquatic clip
  292. Sharing: add Team Coco Jim Downey shorts
  293. Update Thinking
  294. Add post: On walking...a lot
  295. Remove site subtitle from homepage and feed
  296. Sharing: add OPEN SPACE YouTube channel
  297. Footer: make Atom feed link more visible
  298. Site subtitle: Unsolicited thoughts & opinions
  299. Update Thinking
  300. Site tagline: Unsolicited opinions
  301. Sharing: add Jim Jarmusch Criterion YouTube interview
  302. Remove colophon line; smaller footer typography
  303. Footer: copyright above subscribe, smaller muted styling
  304. Add © 2026 copyright line at bottom of site and posts
  305. Remove date from Thinking section and data
  306. Add Thinking section above Writing (single updatable thought)
  307. Revise "dressing well" post copy
  308. Add "What happened to dressing well and feeling good?" post
  309. Update site tagline
  310. Fix Bookshop link for Ten Planets
  311. Add Reading section
  312. Add dated Links section to homepage
  313. Add robots.txt and sitemap.xml
  314. Add LinkedIn to Elsewhere
  315. Remove Farcaster from Elsewhere
  316. Switch posts to folder-style URLs
  317. Use GitHub avatar as favicon
  318. Open only Elsewhere links in new tabs
  319. Add Farcaster and open links in new tab
  320. Order same-day posts by time
  321. Add "Vibes...coded." post
  322. Rename site title to rommy.blog
  323. Update CNAME
  324. Update CNAME
  325. Create CNAME
  326. Create README.md
  327. Move blog files to repository root
  328. Remove second post and update GitHub link
  329. Rename hello-world post to hello-from-cursor
  330. Update site name across pages and feed
  331. Update posts.json
  332. Update posts.json with site info
  333. Initial blog template upload