41554 blogs · [ { "id": "01a08791-1ddd-7285-bb4f-4c1051e2b393", "title": "I built a Greek pottery roguelite with Claude Code in a weekend", "url": "https://josh.miami/posts/sisyphus-greek-pottery-roguelite", "published_at": "2026-08-16T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1051f335a4", "title": "Anthropic's Mythos card reads like a containment memo", "url": "https://josh.miami/posts/mythos-containment-memo", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c10520846b3", "title": "I built a starter template because I kept rebuilding the same thing", "url": "https://josh.miami/posts/monolith-industries", "published_at": "2026-03-21T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105295c23f", "title": "I built a Pokemon game inside Claude Code's statusline", "url": "https://josh.miami/posts/statusmon-day-one", "published_at": "2026-03-14T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1052e42962", "title": "TokenGolf hit v1.0 because the two-mode system was the wrong abstraction", "url": "https://josh.miami/posts/token-golf-v1", "published_at": "2026-03-13T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105387da5e", "title": "What I shipped today in TokenGolf v0.4.0", "url": "https://josh.miami/posts/token-golf-v040", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1053c6cf15", "title": "Sunday was when TokenGolf stopped feeling bolted on", "url": "https://josh.miami/posts/token-golf-sunday", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105482ef42", "title": "The repo looked done until I tried to run it", "url": "https://josh.miami/posts/token-golf-saturday", "published_at": "2026-03-07T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1054d6e73b", "title": "The Half-Second Buffer", "url": "https://josh.miami/posts/the-half-second-buffer", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1055351f29", "title": "Claudedogged the blog", "url": "https://josh.miami/posts/claudedogged-the-blog", "published_at": "2026-03-01T12:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1055b74b21", "title": "TokenGolf started with a simple question: what if AI cost had stakes?", "url": "https://josh.miami/posts/token-golf-origin", "published_at": "2026-02-28T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c10565d1360", "title": "Publishing blog posts from my phone with Claude and GitHub Actions", "url": "https://josh.miami/posts/publishing-blog-posts-from-my-phone-with-claude-and-github-actions", "published_at": "2026-02-28T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105691859f", "title": "Two Claude Code tricks I actually use every day", "url": "https://josh.miami/posts/claude-code-profiles-and-audio-hooks", "published_at": "2026-02-22T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c10573704f4", "title": "The Model Is Not the Variable Anymore. The System Is.", "url": "https://josh.miami/posts/the-model-is-not-the-variable-the-system-is", "published_at": "2026-01-22T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c10573de2a6", "title": "I Canceled Cursor. Claude Code Is the Default.", "url": "https://josh.miami/posts/i-canceled-cursor-claude-code-is-the-default", "published_at": "2025-10-09T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1057e7d956", "title": "Claude Code Was Winning. I Just Wasn't Listening.", "url": "https://josh.miami/posts/claude-code-was-winning-i-just-wasnt-listening", "published_at": "2025-06-26T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1058764720", "title": "I Stopped Defaulting to OpenAI", "url": "https://josh.miami/posts/i-stopped-defaulting-to-openai", "published_at": "2025-03-13T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c1058d5e8a3", "title": "The Interface Was Solved. The Model Wasn't.", "url": "https://josh.miami/posts/the-interface-was-solved-the-model-wasnt", "published_at": "2024-12-12T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105954eb94", "title": "Cursor Fixed the One Thing Browser AI Couldn't", "url": "https://josh.miami/posts/cursor-fixed-the-one-thing-browser-ai-couldnt", "published_at": "2024-06-06T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105a1a4890", "title": "Copying Code Into a Chat Box Is Not a Workflow", "url": "https://josh.miami/posts/copying-code-into-a-chat-box-is-not-a-workflow", "published_at": "2024-04-18T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105a1abb97", "title": "ChatGPT Replaced the Worst Part of Technical Search", "url": "https://josh.miami/posts/chatgpt-replaced-the-worst-part-of-technical-search", "published_at": "2024-01-18T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105b04f4ee", "title": "It Is Getting Easier to Spin Up Ideas Than Finish Them", "url": "https://josh.miami/posts/it-is-getting-easier-to-spin-up-ideas-than-finish-them", "published_at": "2023-11-09T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105b25d0c4", "title": "I Keep Opening It Before I Fully Trust It", "url": "https://josh.miami/posts/i-keep-opening-it-before-i-fully-trust-it", "published_at": "2023-08-17T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105bc2d098", "title": "ChatGPT Is Weirdly Good at Front-End Grind Work", "url": "https://josh.miami/posts/chatgpt-is-weirdly-good-at-front-end-grind-work", "published_at": "2023-05-11T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105bfd1c15", "title": "ChatGPT Is Replacing the Dumbest Part of Search", "url": "https://josh.miami/posts/chatgpt-is-replacing-the-dumbest-part-of-search", "published_at": "2023-02-16T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105c7e62f4", "title": "Redacting personal identifiable information with Pino.js", "url": "https://josh.miami/posts/redacting-personal-identifying-information-with-pino", "published_at": "2022-03-04T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105ca5e892", "title": "Yikes, It's Been a While", "url": "https://josh.miami/posts/yikes-its-been-a-while", "published_at": "2022-02-24T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105cfa8114", "title": "Front End Developers: Activate CSS Grid Layout in Chrome", "url": "https://josh.miami/posts/web-developers-activate-css-grid-in-dev-tools", "published_at": "2017-04-05T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105df2ef38", "title": "This Should Be the Miami MetroMover Extension", "url": "https://josh.miami/posts/this-should-be-the-miami-metromover-extension", "published_at": "2016-06-16T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105ec6bfb5", "title": "Parsing an RSS Feed in Ruby on Rails", "url": "https://josh.miami/posts/parse-an-rss-feed-in-ruby-on-rails", "published_at": "2016-03-16T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105f0cbbc4", "title": "The Bitcoin Halvening is Among Us", "url": "https://josh.miami/posts/the-bitcoin-halvening-is-among-us", "published_at": "2016-03-10T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105f210eb8", "title": "Set up an http server in node in 3 steps", "url": "https://josh.miami/posts/set-up-an-http-server-in-node-in-3-steps", "published_at": "2015-10-07T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105f7f82a9", "title": "Bitcoin Wallet Guide 101: Breadwallet Part 2", "url": "https://josh.miami/posts/bitcoin-wallet-guide-101-breadwallet-part-2", "published_at": "2015-09-09T00:00:00+00:00" }, { "id": "01a08791-1ddd-7285-bb4f-4c105fb528ec", "title": "Bitcoin Wallet Guide 101: Breadwallet Part 1", "url": "https://josh.miami/posts/bitcoin-wallet-guide-101-breadwallet-part-1", "published_at": "2015-09-09T00:00:00+00:00" } ] posts Claim your blog
Back to josh.miami
Blog · corpus.blog/blogs/josh.miami/posts

josh.miami

josh.miami

2026

2025

2024

2023

2022

2017

2016

2015