Sign in

TJ Miller

@tjmiller.bsky.social
1.8K followers 226 following 589 posts

Dreamer ⋅ ADHD advocate ⋅ Laravel astronaut ⋅ Building Prism ⋅ Principal at Geocodio ⋅ Thoughts are mine! tjmiller.me prism.echolabs.dev

PostsRepliesMedia
TJ Miller @tjmiller.bsky.social · 10/09/2026
A local rewrite model hears "Prism" as "prison," keeps it, and writes a clean sentence around the mistake. A good rewrite makes a wrong transcript worse, because now the error is well-dressed. So in Sonari the dictionary fixes those words before the model ever sees them. tjmiller.me/posts/apple-...
tjmiller.me
Apple Intelligence as a local rewrite engine
Apple's on-device model has been great for cleaning up dictation. The honest reason why, and the three places it falls short once you push it past reshaping text.
000
TJ Miller @tjmiller.bsky.social · 08/09/2026
I didn't speak anywhere in 2026, and I missed several conferences I wanted to catch. Laracon US came through, as always. Back on stage in 2027, and I want the talks to be useful. What do you want a real talk on - Laravel, AI, or the strategy of building with LLMs?
000
TJ Miller @tjmiller.bsky.social · 02/09/2026
Working on the update pipeline and licensing for Sonari. Will be reaching out to the list for more beta users soon. Intending to launch in the next 2-3 weeks! www.sonari.audio
000
TJ Miller @tjmiller.bsky.social · 01/09/2026
When you dictate on your Mac, your voice usually leaves it. Up to a server, turned into text there, back as words. Your actual voice, mid-thought, sitting on someone else's hardware, and most people never think about it. www.tjmiller.me/posts/where-...
tjmiller.me
Where your voice actually goes when you dictate
Most dictation tools send your voice to a server to turn it into text. Sonari runs the model on your Mac, so the audio never leaves. Why I'm building it that way.
000
TJ Miller @tjmiller.bsky.social · 21/08/2026
Just shipped an email list for Sonari. Launching VERY soon! www.sonari.audio
sonari.audio
Sonari · Local voice-to-text for your Mac.
Press a shortcut and talk. Sonari pastes clean, punctuated text into whatever app you're in, and it all runs on your Mac. Your voice never leaves it.
020
TJ Miller @tjmiller.bsky.social · 19/08/2026
Had the urge to redesign my site last night. Pretty stoked on the result! www.tjmiller.me
tjmiller.me
TJ Miller
Developer, Father, Husband, Laravel Astronaut. I craft developer experiences.
121
TJ Miller @tjmiller.bsky.social · 18/08/2026
You can delete Halcyon's entire database and lose nothing. It rebuilds from your notes on disk. The index is a cache. Your files are the truth. New post on why that's the whole architecture: halcyonnotes.com/blog/the-index-is-disposable
halcyonnotes.com
The index is disposable — Halcyon
Your notes are plain markdown files on disk. The SQLite database Halcyon keeps beside them is just a cache it can delete and rebuild, which is what lets your notes outlive the app.
200
Reposted by TJ Miller
Laravel News @laravelnews.com · 17/08/2026
NativePHP v4: Build Native iOS and Android UI in Blade posted by @ylynfatt.bsky.social laravel-news.com/nativephp-v4...
laravel-news.com
NativePHP v4: Build Native iOS and Android UI in Blade
NativePHP v4 renders Blade components as real SwiftUI and Jetpack Compose views with no web view. Here is what SuperNative changes, plus how to upgrade.
063
TJ Miller @tjmiller.bsky.social · 08/08/2026
Okay so I buried the lede yesterday. There's an iPhone app too. Your notes are real .md files on the phone. Open the Files app and there they are. Nothing to export, because nothing was ever imported. I'm super stoked on this one. www.halcyonnotes.com/ios
halcyonnotes.com
Halcyon for iPhone · markdown notes that stay files
Halcyon is a markdown notes app for iPhone. Every note is a real .md file you can open in the Files app. Works offline, no account, and signs in to the same encrypted sync your Macs use.
000
TJ Miller @tjmiller.bsky.social · 07/08/2026
Super charged from the Laracon energy and inspiration I got cracking on an app I've always wanted. I'm super excited to share www.halcyonnotes.com
halcyonnotes.com
Halcyon · markdown notes with real vim bindings
A markdown notes app and editor for macOS with real vim bindings. Your notes stay plain .md files in a folder you choose, so they stay greppable, git-versionable, and editable in Neovim while the app ...
010
TJ Miller @tjmiller.bsky.social · 06/08/2026
👀 ...more news tomorrow
110
TJ Miller @tjmiller.bsky.social · 27/07/2026
I've been gone for four months, and I owe ya'll an explanation. www.tjmiller.me/posts/where-...
tjmiller.me
Where I've Been
I've been gone for four months, and I owe you an explanation. Since May 2025 I've been struggling with the hardest mental health crisis of my life, and in February my wife had a catastrophic ankle inj...
040
Reposted by TJ Miller
Slightly Caffeinated Podcast @slightlycaffeinated.fm · 31/01/2026
🎙️ Just published a new episode of Slightly Caffeinated: Snowstorms, Side Projects, and AI Workflows. Have a listen:
share.transistor.fm
Snowstorms, Side Projects, and AI Workflows
Chris and TJ discuss their recent projects, focusing on the development...
031
TJ Miller @tjmiller.bsky.social · 31/01/2026
Introduced Truths to Iris recently. Already had to completely overhaul how they get created, updated, and protected. Here's what I learned and what I did about it. www.tjmiller.me/posts/truths...
tjmiller.me
Truths: The Refinement Update
The Iris truth system got a major overhaul. Stricter promotion filters out temporal garbage, conflict detection catches contradictions before they merge into frankenstruths, and generation tracking sh...
010
TJ Miller @tjmiller.bsky.social · 29/01/2026
Was writing docs for Iris's memory system when it hit me: importance and universality aren't the same thing. Rebuilt the whole tier system around that insight. Introducing Truths. www.tjmiller.me/posts/iris-t...
tjmiller.me
Introducing Truths
I was updating docs when I realized the tier system was fundamentally flawed. We were using importance as a proxy for universality, and they're completely different things. This is how Truths fix that...
010
Reposted by TJ Miller
Mathias Hansen @codemonkey.io · 27/01/2026
Gave a talk on Ralph Loops at the Copenhagen Laravel Meetup last night. Still pretty new to this, but it's been seriously addictive -- there's something weirdly satisfying about going to bed and waking up to a fully working app. Did a write-up of everything here: www.geocod.io/code-and-coo...
geocod.io
Ship Features in Your Sleep with Ralph Loops - Geocodio
Claude Code is powerful, but performance degrades as context grows. Ralph Loops solve this by wrapping your AI agent in a while loop with external state. Here's how I've been using this pattern to shi...
064
Reposted by TJ Miller
Michele Hansen @mjwhansen.com · 23/01/2026
This image from my blog post earlier this week really seems to be unexpectedly resonating. With Claude Code, our total project time is way down, but how engineers spend their time is very different. More architecture, more QA, less coding. www.geocod.io/code-and-coo...
A simple graphic showing engineering projects before and after using AI. Above, scoping is approximately 10% of the time, coding 80%, and QA 10%. After, the total time is reduced by about half, and scoping is 40%, coding is 20%, and QA is 40%
35611
Reposted by TJ Miller
Michele Hansen @mjwhansen.com · 26/01/2026
The shortened project lifecycle is absolutely the result of our custom tooling shared across the team, and people/orgs without that aren’t going to have those kind of results ICYMI @tjmiller.bsky.social’s excellent blog post on our Claude Code tooling www.geocod.io/code-and-coo...
geocod.io
How we use Claude Code - Geocodio
Claude Code is only as good as the context you give it. I've been building out a custom setup with skills, hooks, and MCP servers that's turned it into a genuine productivity multiplier for our Larave...
021
TJ Miller @tjmiller.bsky.social · 26/01/2026
New post: Customizing Iris www.tjmiller.me/posts/custom...
000
TJ Miller @tjmiller.bsky.social · 26/01/2026
Prism v0.99.16 🎉 github.com/prism-php/pr...
020
TJ Miller @tjmiller.bsky.social · 24/01/2026
Prism v0.99.15 🎉 github.com/prism-php/pr...
032
TJ Miller @tjmiller.bsky.social · 24/01/2026
Prism v0.99.14 🎉 github.com/prism-php/pr...
000
Reposted by TJ Miller
Slightly Caffeinated Podcast @slightlycaffeinated.fm · 24/01/2026
🎙️ Just published a new episode of Slightly Caffeinated: Iris, Plex, and Fine Print Hound. Have a listen:
share.transistor.fm
Iris, Plex, and Fine Print Hound
TJ and Chris discuss their personal and professional challenges,...
021
Reposted by TJ Miller
Michele Hansen @mjwhansen.com · 21/01/2026
New blog post from me: www.geocod.io/code-and-coo...
geocod.io
Is Your Team Still Hand-Chiseling Code? - Geocodio
If you’re struggling to get your engineers to adopt AI, keep reading.
181
TJ Miller @tjmiller.bsky.social · 17/01/2026
Prism v0.99.12 🎉 * Added global request_timeout configuration * Added step start and finish events * Added OpenRouter video support * Added Gemini media_resolution option for images/videos/documents/audio * Multiple OpenRouter fixes for API response handling github.com/prism-php/pr...
github.com
Release v0.99.12 · prism-php/prism
What's Changed feat: Add global request_timeout configuration by @kargnas in #834 Feature: Map ToolCallDeltaEvent in BroadcastAdapter by @webard in #837 fix(openrouter): Handle null id/model in AP...
020
TJ Miller @tjmiller.bsky.social · 17/01/2026
I'm so incredibly humbled and thankful, we just crossed a 1 million downloads for Prism!!!
071
TJ Miller @tjmiller.bsky.social · 15/01/2026
New post: What happens when an AI assistant remembers too much? The same thing that happens to humans: you need to forget intelligently. Here's how I built multi-generational memory consolidation for Iris www.tjmiller.me/posts/multi-...
tjmiller.me
Multi-Generational Memory Consolidation
What happens when an AI assistant remembers too much? The same thing that happens to humans: you need to forget intelligently. Here's how I built multi-generational memory consolidation for Iris
110
TJ Miller @tjmiller.bsky.social · 14/01/2026
Over the last couple days I've fixed a few critical bugs in Iris's memory consolidation and made a bunch of improvements. I just ran a full sweep against my 2700 message conversation. Super happy with the results. Blog post about memory consolidation tomorrow!
040
TJ Miller @tjmiller.bsky.social · 14/01/2026
Here is a great example of Iris's temporal awareness. I sent a message after chatting with a local instance testing some changes for a few days and Iris recognized it and followed up where we left off. Wild.
230
TJ Miller @tjmiller.bsky.social · 13/01/2026
Over the weekend I announced Iris, an AI that actually knows you. I released the docs, wrote a blog post about Iris and some of its evolution, and yapped a bunch about it on the podcast!
140
TJ Miller @tjmiller.bsky.social · 12/01/2026
2025 and Beyond 🚀 www.tjmiller.me/posts/2025-a...
tjmiller.me
2025 and Beyond 🚀
Ad a rollercoaster of 2025 but 2026 is exciting. Announcing Iris.
020
TJ Miller @tjmiller.bsky.social · 11/01/2026
Here is a perfect example of multi-generational memory consolidation in Iris. Blog post about it soon!
120
TJ Miller @tjmiller.bsky.social · 11/01/2026
New episode dropped! I talk a lot about Iris and some of the decisions I've made along the way.
030
TJ Miller @tjmiller.bsky.social · 10/01/2026
I've been quietly cooking on something I've always wanted. Announcing Iris, an AI that actually knows you. youtu.be/9uH_vyZEKoY Links👇🏻
youtu.be
Announcing Iris!
YouTube video by TJ Miller
162
TJ Miller @tjmiller.bsky.social · 09/01/2026
I haven't done one of these in awhile. Think I'll do one tonight. Might be a doozie. www.tjmiller.me/newsletter/
tjmiller.me
Subscribe
Subscribe to my newsletter for all sorts of goodies!
021
Reposted by TJ Miller
Geocodio @geocod.io · 06/01/2026
We launched one of our most-requested features today: Distance API! Now you can calculate driving time, driving distance, and straight line distance between addresses using Geocodio
081
Reposted by TJ Miller
Tighten @tighten.com · 22/12/2025
Is AI good at Pictionary? In our latest post, we build a Laravel app to test—using Prism by @tjmiller.bsky.social to connect with our AI provider in a snap. And it supports images, too! We'll capture an image using HTML canvas and then send it off to the AI. tighten.com/insights/bui...
tighten.com
Build an AI-Powered Drawing Guessing Game with Laravel, Prism, and HTML Canvas
AI is everywhere. It can create songs, build entire apps, and even drive our cars. But... can it play Pictionary? We're about to find out. Today, we're building an AI-powered drawing guessing game. I...
042
TJ Miller @tjmiller.bsky.social · 14/12/2025
Prism v0.99.2 🎉 HUGE new contribution, OpenAI moderation! github.com/prism-php/pr...
github.com
Release v0.99.2 · prism-php/prism
What's Changed Feature: Add OpenAi Moderation Support by @RhysLees in #791 Fix/deepseek insufficient balance error by @ggbr in #790 New Contributors @RhysLees made their first contribution in #7...
020
TJ Miller @tjmiller.bsky.social · 12/12/2025
I wrote up a post on how we use Claude Code at @geocod.io!
071
Reposted by TJ Miller
Slightly Caffeinated Podcast @slightlycaffeinated.fm · 06/12/2025
🎙️ Just published a new episode of Slightly Caffeinated: Ethiopian Coffee, Bun, and Building a Life Companion on Prism. Have a listen:
share.transistor.fm
Ethiopian Coffee, Bun, and Building a Life Companion on Prism
TJ and Chris reflect on their Thanksgiving experiences and the end of...
021
TJ Miller @tjmiller.bsky.social · 04/12/2025
I've been cooking with Prism... www.tjmiller.me/posts/buildi...
tjmiller.me
Building Nova - Foundation
Building my life co-pilot and partner. Lets talk about what we've built so far. Let's solve the memory problem.
050
Reposted by TJ Miller
Michele Hansen @mjwhansen.com · 04/12/2025
Am I making a massive mistake by running an ad on Reddit with my face on it? Feels like I might as well go to the nearest zoo, stroll into the lion cage, and offer myself up as dinner...
2112
TJ Miller @tjmiller.bsky.social · 02/12/2025
Easier than ever to make the switch to @geocod.io
1141
Reposted by TJ Miller
Chris Gmyr @chrisgmyr.dev · 21/11/2025
📝 Dev Notes: Week of November 21, 2025 has been published. Read it here: buttondown.com/cmgmyr/archi...
buttondown.com
Dev Notes: Week of November 21, 2025
A Quick Hello Welcome to the first issue of Dev Notes. I'm glad you're here. This is meant to be a conversation, not a broadcast. Reply anytime with...
031
Reposted by TJ Miller
Michele Hansen @mjwhansen.com · 19/11/2025
The $1,000 AWS mistake www.geocod.io/code-and-coo...
geocod.io
The $1,000 AWS mistake - Geocodio
A cautionary tale about AWS VPC networking, NAT Gateways, and how a missing VPC Endpoint turned our S3 data transfers into an expensive lesson.
1193
TJ Miller @tjmiller.bsky.social · 15/11/2025
Prism v0.98.1 🎉 Add support for Anthropic's new structured output beta! github.com/prism-php/pr...
github.com
Release v0.98.1 · prism-php/prism
What's Changed feat(text): track provider tool calls by @sixlive in #719 fix: only process provider calls as provider calls by @kauffinger in #724 feat(anthropic): structured output beta by @sixli...
150
TJ Miller @tjmiller.bsky.social · 15/11/2025
Really enjoyed this one!
020
TJ Miller @tjmiller.bsky.social · 15/11/2025
Doing some chores then I'm probably going to hop on stream for a bit. twitch.tv/thetjmiller
twitch.tv
thetjmiller - Twitch
Web application developer, specializing in Laravel. Building Prism, a powerful Laravel package for integrating Large Language Models (LLMs) into your applications.I use Neovim + Tmux via Wezterm.
021
TJ Miller @tjmiller.bsky.social · 10/11/2025
I've been experimenting with the concept of semantic memory. Here is a little CLI chat using a Prism agent that has a set of semantic memory tools. Pretty fun!
120
TJ Miller @tjmiller.bsky.social · 05/11/2025
Just tagged Prism v0.98.0 🎉 Prism now supports tool calling with structured output for AnthropicAI, OpenAI, and Gemini! github.com/prism-php/pr...
github.com
Release v0.98.0 · prism-php/prism
What's Changed feat(structured): structured output with tools (OpenAI, Gemini, Anthropic) by @sixlive in #713 feat(stream|anthropic): add Anthropic provider tool result handling by @roymckenzie in...
151