125: No Turning Back

🔗 **Source:** [125: No Turning Back](https://share.snipd.com/episode/ba632039-663d-43c7-a4d1-aaefe7a8f425)
## Highlights
- **Force A Hard Ship Date**
- Do set a hard internal launch date to force progress and get feedback quickly.
- Aaron committed to April 6th so Ian could log into Outro and provide real-world testing and fixes before wider release.
Transcript:
Ian Landsman
Okay. What's the latest due date on Elfro?
Aaron Francis
See, some people are giving me a hard time on the old X.com, everything. All people. Yeah. But here's the thing I remember. I've rebuilt this thing four times, right? It's like four apps. It's not one app, because I keep Laravel newing right?
Ian Landsman
I don't know that that helps your case.
Aaron Francis
It is, though, because you think I've been, oh, he's been talking about this since like last June. But that's a whole different app last June. It's totally different. The app's gone. Yeah.
Ian Landsman
I just keep rebuilding it. I don't think this is helping the way you think it's helping, if I'm being honest.
Aaron Francis
See, I'm a deliver a complete product kind of guy i know all the kids out there like hey just ship it with one form and yeah it just sends an email and that's all it does and then we'll iterate
Ian Landsman
But no i'm not like let's iterate the whole app kind of guy i got all right brass brass tacks yeah what features are done okay how close are we to using it for our purposes so outro since we
Aaron Francis
Get some complaints about this is a podcast planning will be a podcast planning that's right that's right it will be if it ever exists okay so here's what exists. Okay. Trello board Kanban type thing that you could put your segments on. You can have all different types of segments, whatever, blah, blah. You have a bunch of different views of that. So you can see it just for one show at a time, or you can see it across multiple shows at a time, all with their Kanbans together. And you can move between shows and whatever all kinds of stuff between shows not episodes right so this is at the show level okay no no everything so like the can't every episode is a column And you can have a view where it's just episodes for one show but you can also have like all your episodes across all your shows so now i don't think everybody needs that but i think if you Do have a podcast that covers similar terrain, you can move between the shows potentially. You can certainly, of course, move between episodes within a single show. If you just want to look at it that way, that's fine. That's, that's basically done. I mean, there's the only thing left there is that like, I have some AI generated UI elements in like the, of the um like modal kind of forms and things like that which i'm not too happy with So that has to get re gone over by me to like clean that bit up so but it's functional it's working okay so we have we we can have segments that's we can have segments we can do what we use trello For right now is built, and we could do that. Yeah. We could replace that right now. We have a library tool, which is like a simple little file manager setup. So, like, we have a Trello, like, kind of column right now that has, like, our show art and, like, some random files and stuff. Got it. So, like, this is the random files. Like a vault or something yeah like it's like a random file spot you could put raw audio in there if you want to like get rid of your dropbox and like just put raw audio there to pass around Amongst producers and things whatever um and then uh let's see what else we have we have the gopher. So that's like the AI features are all working. Like the gopher himself, he needs a little bit of tweaking. We're getting shaky.
Ian Landsman
We're getting shaky out here. They're all working. Yeah.
Aaron Francis
But it's just that he responds a little more than I'd like and stuff like that. I want him to be a little less chatty. So there's some stuff with the gopher that's also worked out. But the gopher, he can make segments. He can make episodes. He can search for things. He can do all that stuff. So the gopher is working. And so the gopher does other cool stuff. He can go get URLs and do stuff. So you can give him a URL and say, make a segment out of this. You can say, make a bunch of segments out of this, out of the content from this, whatever. It'll build it all out for you. Yeah. So that's, you know, working enough, especially for our purposes. The show notes generator, like blog post generator, social media note generator is working that needs those prompts needed like more work but the like structure is there but so it's That's like coming along and we don't necessarily need that ourselves for day one but i think it's a cool feature that i want to be there at some point okay so what what remains this is a Lot what what remains why are we not using well like i said the ui stuff we gotta do we gotta do uh i mean there's like guest management which i have the very basic structure of but it doesn't Like do anything yet so it doesn't you can make a guest then you can apply a guest onto it like as a segment of a show like introduce taylor outwell whatever uh but it doesn't have the stuff Where you can invite a guest to then pick a time and make an episode based on that time and stuff like that. So that's still got to happen. But that doesn't have to happen for us. So that's a little bit farther. What else? I have a couple of things over there. Oh, the mailbag. I haven't done anything with the mailbag. So that part is still to be done, which is a little unfortunate. But again, we don't necessarily need that for our purposes. Day one. So we're pretty close. I would say the main thing for me is before we use it i want to get like a new home page like the home page restructured to more of a real like coming soon landing pagey thing which should be Pretty quick i have a design already and we're gonna move the who've signed up already for outro, which is like three or 400 people on the waiting list. Yeah, that's not bad. So they, I have to suck them into somewhere. Cause that's like a, that's the last June version of outro, which was like, it'll do all that stuff, but it's not gonna do any of that stuff. So I got to put those people into bento and, you know, before I blow away the current production setup which has all these people on it i don't want to blow away all these people so i'll put That in bento and uh yeah you know there's some other kind of magic bits the onboarding stuff needs to be done for if we're gonna have other people using it which i think i got some cool ideas
Ian Landsman
There for onboarding people so we're close man we're close we're close i just i just want to say yeah that you and john o'nolan and producer steve yeah for the longest time we're given We're giving me the hardest time about me not shipping anything forever. Yeah, I understand. And then I shipped a bunch of stuff, and Ian's like, whoa, brother, you're shipping too much stuff. Like, what are you doing? I'm still doing. You're doing too much. Yeah. So you got to ship. You got to ship. I want to use it. I want to use it.
Aaron Francis
We do have to ship. To us, we have to ship soon. So I think I'm ready. You know, I think there's a couple, like just in last week, I made a little couple database structural changes. It's so nice when you're just in development mode and it's like ([Time 0:05:33](https://share.snipd.com/snip/d3a5c3da-7cc2-4aab-8b98-f6ea14032cfc))
- **Safeguard Signups Before Rebuilding Production**
- Do migrate existing waitlists and users before blowing away production to avoid losing signups.
- Aaron will move 300–400 people from the current Outro waiting list into Bento before resetting the site and onboarding.
Transcript:
Ian Landsman
Close i just i just want to say yeah that you and john o'nolan and producer steve yeah for the longest time we're given we're giving me the hardest time about me not shipping anything forever. Yeah, I understand. And then I shipped a bunch of stuff, and Ian's like, whoa, brother, you're shipping too much stuff. Like, what are you doing? I'm still doing. You're doing too much. Yeah. So you got to ship. You got to ship. I want to use it. I want to use it.
Aaron Francis
We do have to ship. To us, we have to ship soon. So I think I'm ready. You know, I think there's a couple, like just in last week, I made a little couple database structural changes. It's so nice when you're just in development mode and it's like hey ai don't worry about any of this just blow it all away no don't worry about making migrations and old data we've got migrations This is a well-trod path like it you know it's like it always makes everything so much more complicated so All right.
Ian Landsman
Give me a date. I'm going to get – I've got a post-it note. Okay. I've got a pen, zebra pen, 0.7 millimeter. For you and me to get there.
Aaron Francis
Assuming nothing crazy happens.
Ian Landsman
Nope, nope, nope, nope, nope. We have had some crazy – I've had a little bit of craziness in the past week. You don't have a gallbladder anymore. There's nothing else that could happen. All right. The pen is ready.
Aaron Francis
You and me.
Ian Landsman
You and me.
Aaron Francis
Let's get you and me in there. Do I go aggressive or do I go safe?
Ian Landsman
Whatever you're going to hit because there's no leeway. No turning back.
Aaron Francis
There's no turning back. Let's go by next episode. Whoa. I'm telling you, we're're close i don't lie i say when i'm close i'm close i don't like to say i'm close i'm close so i will be able to log in to outro.fm on monday. April 6th. All right. Wow. You got me to commit to a date, which I almost never do for anything. Let me tell you. I know. You are locking me in here. I'm locking you in. But I think it's doable. I mean, it works now. So it'll be good to get you in there, get some feedback, see what you think. ([Time 0:11:46](https://share.snipd.com/snip/5362fea8-6458-46aa-849c-cd21b27a3aaf))
- **Use Structured AI To Generate Specs And Plans**
- Structured AI tooling (like Superpowers) can accelerate building larger features by producing specs and implementation plans.
- Aaron credits Orba Superpowers for breaking tasks into spec, plan, and implementation steps that he feeds into counselors and tools.
Transcript:
Aaron Francis
You've got to try the superpowers. Have you tried the superpowers yet?
Ian Landsman
I've not tried the superpowers.
Aaron Francis
You're on about the superpowers. Literally, the only reason you're getting outro is because of superpowers. The superpowers are so good. Every day they had like 10,000 GitHub stars. It's nuts. Whoa. But it's really good. It's like really good. So try the superpower. Just search AI superpowers, whatever.
Ian Landsman
You'll find it on GitHub. It's like Orba superpowers?
Aaron Francis
Orba, yeah. It's like Orba superpowers. It's really, really good. It's like the perfect amount. ([Time 0:16:21](https://share.snipd.com/snip/be9cdab9-8cc4-4cd0-93ab-3c6dfa5aa3ff))
- **Durable Objects Make Edge State Practical**
- Durable Objects combine single-threaded state, embedded SQLite, and Cloudflare alarms to make edge-hosted real-time systems safe and simple.
- Ian built a live auction demo leveraging WebSockets, in-process SQLite, and scheduled alarms to avoid race conditions and scale workers at the edge.
Transcript:
Ian Landsman
Oh, okay.
Aaron Francis
See, this is interesting because you probably had to do a little bit of work on this one. This isn't like, you know, it's database stuff. You know the basic structure and yeah, you've got to find the details, but like, you know indexes and selects and whatever this is this is learn a bunch of new stuff um it'll be free totally
Ian Landsman
Free um it's like i and this was all part of the pitches this is going to be a shorter one so it's like 30 videos not 100 um and i gotta say after all my research and my playing and my teaching, Durable objects are really impressive.
Aaron Francis
Oh, I know, dude. I just see all these things Cloudflare has.
Ian Landsman
It's really something. Um, so we'll talk about that in a second, but yeah, I got all the videos done. Um, you know, the worst part about recording videos is starting like the despair of like oh i gotta start this how am i gonna do this what's the angle what's the topic like what's the domain And um so throughout this series we build a like a live auction platform um oh that's a good shtick yeah so and it leverages so many of the durable objects primitives which is like the web Socket connection the single threadedness so you're not dealing with race conditions at all the embedded sequel light um which is super cool um the fact that the worker sits in front Of the durable object and the worker scales infinitely but there's only ever that one durable object per auction and so you're safe and it's just like it's really it turned out really Good i think um to pat myself on the back but um durable objects are impressive so they're they're like i think you know one of the questions is what the hell is a durable object hopefully That's the first video that is that is the first video and then we spend the next 30 like fleshing that out um but a durable object is interesting because you know they've got their workers Platform and that's most analogous to like Lambda or some sort of like serverless compute. Right. So a request comes in and a worker can serve it at the edge, anywhere, JavaScript, runtime, super fast super scalable um that's like your stateless compute mechanism the durable object Is state full and the interesting thing is um all of the guarantees that the platform gives you and the most interesting guarantee is that it's single threaded. And so in this course, or in this series, we're doing stuff that like, if you were doing it on an app server, would be really dangerous, right? Like we're pulling stuff out of the database, doing a little bit of like logic around it, and then writing stuff back to the database. And like, in my head, alarm bells are going off like this is this is not atomic this is like you're having a time of check time of use race condition but the platform just guarantees that As long as you don't like do like an async await in there no other requests can come in the door and you're just like a hundred percent safe it's so cool it's so weird it's like all the reasons
Aaron Francis
That people like use sqlite in like a real app and i'm like sqlite in a real app sounds kind of terrible because like yeah it's just one file sitting somewhere and whatever all that stuff Which i obviously get the upside of that in some ways but like so this is like the upsides yes also without the terrible part of like if that server gets blown away all your data is gone and
Ian Landsman
All that yes or the terrible part of like i need to invent a locking mechanism right because the the durable object itself is locked like from the outside so once you're inside you're Like all safe and cozy yeah and you don't have to have all this defense in depth because you're like well the platform handles that um and it has SQLite built in. And of course SQLite in process is just wicked fast. And so you're just like reading and writing and reading and writing. And then once you let it go, then another request can come in. It's just very cool. Um, and the web sockets are awesome because the durable objects can go to sleep and the platform will maintain the web socket connection. So like you don't get billed for your hibernation time and you don't disconnect all of your connected clients. So then you wake back up and you're still connected and you can like broadcast out like bob bid this much and alice bid this much and whatever um and then there's cloudflare lets you schedule Alarms which is like hey wake me up at this certain time and so in our use case for the process or whatever yeah so we can we can tell cloudflare like hey the auction ends at this time i want You to wake me up at this time so like if no final bids are coming in the durable object is asleep nobody wants this item we don't want to oversleep our auction end date and so we just tell Cloudflare hey wake me up and cloudflare will wake you up and then you wake up and you end the auction and you broadcast the results to all the WebSocket connections and then it's over. So it's super duper cool. It's almost like it's like the worker becomes like the load balance layer where you can receive requests from anywhere. And then the durable object becomes like the – it's almost like the app server, the database, the all of that all together in one. So it's really, it's very interesting primitive. And I had a lot of fun recording it. So look for that later this week. It's coming out later this week. Oh, wow. Okay. For free. ([Time 0:20:56](https://share.snipd.com/snip/48acd2fd-7fba-40c5-8a2e-436f2414f788))
- **Offer A Simple Flat Intro Price**
- Do offer straightforward, predictable pricing tiers for developer cloud platforms to reduce billing anxiety.
- Aaron suggested a flat $99/month Laravel Cloud plan that absorbs small spikes so users stop obsessing over picosecond billing.
Transcript:
Aaron Francis
Shade but it's a little weird.
Ian Landsman
No shade to cloud.laravelle But even their pricing is like, you want the database? How long is it on? How much does it use? You want Redis? What size? How long is it on? How much does it use? And it's like, I got to read three pages of pricing to figure out what this thing's going to cost. I will be curious to see what Void Zero evolves um and hopefully gets bought out by cloudflare and they just make like a world class totally locked in i'm fine if the whole if the whole pitch From the beginning is this is a framework for cloudflare i'm fine right i think where where versell went wrong was there like this is a framework for everybody but it really only works On Vercel. I think that's where people got frustrated. But if the whole pitch from the beginning, which it already is, is this is built for Cloudflare primitives, then I'm super on board with that.
Aaron Francis
I saw Laravel Cloud just released a more granular pricing explanation, which is kind of interesting. I do think Laravel Cloud, if I may give a little marketing advice to Laravel Cloud crew, there is like a, given Laravel's like existing customer race and everything, I kind of feel like There is a world where there should be like a $99 a month Laravel Cloud plan. That's like, you don't think about any of that stuff. And it's just like out of the box you get stuff whatever whatever you know you're paying nine nine dollars a month and it's like reasonable for most things and then like you know whatever You could flop over maybe internally they do some magic so you get like hey if you spike for an hour because you get linked like we just absorb that right like whatever we're gonna take Care of you but then and we're probably overcharging you which is i think is also fine like for most people being overcharged 99 a month but it's like i don't have to worry about anything So i just pay it and then yeah whatever obviously as you grow you go into like per resource but this is your this is your amp by previously source graph this is your amp complaint like i don't Want to see the dollars tick up just like no i don't want the stress to overcharge me yeah overcharge me 11 out of 12 months you're going to get one over on me by charging me 99 a month and one Month you're going to take an l and i'm going to cost you 200 but you're going to be fine because every every month for years emotionally i'm never going to worry about it i'm never going To worry i'm never leaving dollars yeah i'm never thinking about this right like i'm just i'm never i'm never giving a moment's thought because i just pay the money and i just move on so
Ian Landsman
Yeah that is man that's hard like i don't envy i don't envy their position but if you think about like you kind of got to think about who do they want to be? Do they want to be AWS? Because AWS charges by the picosecond. You know, it's just like pure usage. Vercel, I think I don't use them for much. I think it's like $20 per user seat. And then, yeah, I think that's like their intro or like their, you're, you're like, uh, under some reasonable limits plan. And then of course, beyond that, you get charged $50,000 randomly on a Tuesday. Right. So even Vercel doesn't quite have this figured out. Um, but yeah, it is, I don't, I don't envy that because the resources cost money by the picosecond. And then how do you, yeah, I don't know. That's tough.
Aaron Francis
There's a scale element there, I think, of like you need to be big enough to like absorb, which apparently even Vercel is not big enough to absorb. But, you know, like CloudFlare doesn't even care about bandwidth because they like have so much bandwidth that's irrelevant. That's why they don't even charge for like R2 outbound bandwidth and stuff because they're like, we don't care. We have infinite bandwidth, right? So on a flare of all clouds, we're going to get to having infinite bandwidth. But there's a world where as you have more scale, you get better pricing and blah, blah.
Ian Landsman
And Cloud Flare's free tier is kind of insane. So like they have that part going for them where you can do like, I forget. It's like. You get a ton of resources on the free on a durable object it's something insane like a hundred thousand or like two million reads per day for free yeah and so their their free tiers are Pretty generous um but yeah figuring out the i bet i bet laravel has a whole i think they do a whole team just dedicated to tracking pricing and doing usage billing. ([Time 0:31:50](https://share.snipd.com/snip/431f1edb-301e-4f14-87c2-fb48a18569d4))
- **Spawn Ephemeral Subagents For Short Tasks**
- Try ephemeral agent instances for short tasks so your workspace doesn't accumulate long-lived bots.
- Aaron and Ian discussed spawning temporary Codex subagents via MCP and removing them when the main task finishes.
Transcript:
Aaron Francis
All right. What's going on?
Ian Landsman
Solo is your all-in agentic development environment.
Aaron Francis
Do we have to say this every time now? I don't think so. I don't want to say it every time. I feel like once a month or once every six weeks is enough for us. Find out more at solocherm.com.
Ian Landsman
Okay. First, to keep the thread, MCP. Last week we talked about using the MCP to allow processes to speak to each other. Yeah. I did that this week. Okay. And I had Claude orchestrating a team of codexes. Okay. And it was awesome okay it was crazy um so the mcp server in solo allows you to just send you can send text but you can just send raw bytes and so the uh the clod is like watching codex and it's Like oh codex needs permission to do this let me send the enter character so that it can just like continue on um and it understand it's it's doing an okay understanding oh yeah how to use This okay oh yeah it's just like it's just pulling it's pulling output so there a tool to like get get output. And it sees that, you know, the current bytes transform into like this question of can I do this? And then it sends back the, you know, the key down enter bytes and it just like progresses on. And with Claude, Claude Code CLI, they have a new loop feature where you can type slash loop and then a duration. So like slash loop 1M for one minute. And so that's what I did. I said, you know, I had it dispatch all of the like, so I had four codexes running and I told Claude, hey, can you figure you are and it's like yes i am claude i'm process number 13 i was like Can you see the other the the four codexes and it was like yep i can see them they're all idle what do you want me to do i'm like uh this is cool and so i described everything i was working on We like made a plan and then i said break this up uh and you know dispatch the codexes as you see fit and it did that and so it sent you know these long prompts and the cool thing is i can just Click on the tab and solo and see what's going on and be like oh that's interesting yeah and i can i can even click in and steer it like if the codex starts to get lost i can be like hey whoa back Up it's. Um, so I still have full visibility, but after that, after those four prompts were dispatched, um, I just put Claude in a loop, an infinite loop of, you know, two or three minutes, whatever It was and said, your job is to just monitor these codexes. And as they get stuck, if you deem the permissions to be reasonable you can approve it and just like keep going and so every minute or two minutes it would wake up it would pull the output Of all the codexes and be like oh this one's idle oh this one you know is requesting to read a file that's in this directory yes you're allowed to do that um and it would just keep them going
Aaron Francis
Keep them on the rails it's it's very cool this is like how to make the codex cli not suck it's like you can now just use the codex cli through the clod cli exactly yeah interesting interesting Now i think this is one of these features and as you get deeper into this you'll see the features where it's super powerful, but like how do you get people to use it or even know about it? Because it's like the layers deep way past what you're normally using the app for. But it does seem cool. There is something here like orchestrating it all or even like you can imagine like things that are more specialized than even codecs, like as there are more specialized models or tools. It's like, well, here's this tool just sitting out here. When you need this tool, like it's in its own little zone over here, but you can like go over there and do it. And it can do that with raw terminal panes.
Ian Landsman
It's not just agent to agent. Right, yeah. So it could spin up. It could do stuff. It could spin up some complex command line 2E. Instead of like spawning it in the background or like doing a tmux workaround it just has a pain where this complex you know in-house tool is running yeah codex or clod can just pull the Latest output and navigate with ([Time 0:39:50](https://share.snipd.com/snip/60982dd9-b579-47a0-82c5-ad5e8ffb6c6d))
- **Claude Orchestrated Multiple Codex Agents**
- Aaron ran Claude as an orchestrator monitoring several Codex agents and approving actions, keeping sub-agents progressing autonomously.
- He used Claude's loop feature to wake periodically, read Codex outputs, and send keystrokes to continue work without manual intervention.
Transcript:
Ian Landsman
Solo is your all-in agentic development environment.
Aaron Francis
Do we have to say this every time now? I don't think so. I don't want to say it every time. I feel like once a month or once every six weeks is enough for us. Find out more at solocherm.com.
Ian Landsman
Okay. First, to keep the thread, MCP. Last week we talked about using the MCP to allow processes to speak to each other. Yeah. I did that this week. Okay. And I had Claude orchestrating a team of codexes. Okay. And it was awesome okay it was crazy um so the mcp server in solo allows you to just send you can send text but you can just send raw bytes and so the uh the clod is like watching codex and it's Like oh codex needs permission to do this let me send the enter character so that it can just like continue on um and it understand it's it's doing an okay understanding oh yeah how to use This okay oh yeah it's just like it's just pulling it's pulling output so there a tool to like get get output. And it sees that, you know, the current bytes transform into like this question of can I do this? And then it sends back the, you know, the key down enter bytes and it just like progresses on. And with Claude, Claude Code CLI, they have a new loop feature where you can type slash loop and then a duration. So like slash loop 1M for one minute. And so that's what I did. I said, you know, I had it dispatch all of the like, so I had four codexes running and I told Claude, hey, can you figure you are and it's like yes i am claude i'm process number 13 i was like Can you see the other the the four codexes and it was like yep i can see them they're all idle what do you want me to do i'm like uh this is cool and so i described everything i was working on We like made a plan and then i said break this up uh and you know dispatch the codexes as you see fit and it did that and so it sent you know these long prompts and the cool thing is i can just Click on the tab and solo and see what's going on and be like oh that's interesting yeah and i can i can even click in and steer it like if the codex starts to get lost i can be like hey whoa back Up it's. Um, so I still have full visibility, but after that, after those four prompts were dispatched, um, I just put Claude in a loop, an infinite loop of, you know, two or three minutes, whatever It was and said, your job is to just monitor these codexes. And as they get stuck, if you deem the permissions to be reasonable you can approve it and just like keep going and so every minute or two minutes it would wake up it would pull the output Of all the codexes and be like oh this one's idle oh this one you know is requesting to read a file that's in this directory yes you're allowed to do that um and it would just keep them going
Aaron Francis
Keep them on the rails it's it's very cool this is like how to make the codex cli not suck it's like you can now just use the codex cli through the clod cli exactly yeah interesting interesting Now i think this is one of these features and as you get deeper into this you'll see the features where it's super powerful, but like how do you get people to use it or even know about it? Because it's like the layers deep way past what you're normally using the app for. But it does seem cool. There is something here like orchestrating it all or even like you can imagine like things that are more specialized than even codecs, like as there are more specialized models or tools. It's like, well, here's this tool just sitting out here. When you need this tool, like it's in its own little zone over here, but you can like go over there and do it. And it can do that with raw terminal panes.
Ian Landsman
It's not just agent to agent. Right, yeah. So it could spin up. It could do stuff. It could spin up some complex command line 2E. Instead of like spawning it in the background or like doing a tmux workaround it just has a pain where this complex you know in-house tool is running yeah codex or clod can just pull the Latest output and navigate with there's something cool there's something cool it's a lot and of course the codexes could talk back to the clod by you know writing to its input so there's
Aaron Francis
Something here hmm i think this is a thing that they're like you gotta find a way to expose to the twitter internet people because like i think people will get excited about it even if they Can't think of what they're going to do with it. But it's like, we can spin up 100 codexes from our 20 clods and do this or that and get the new thing, which is super useful for this.
Ian Landsman
The MCP allows – it has a tool for adding a new agent. So it can like say, I can just open Claude, just one Claude and say, hey, can you use the solo MCP to launch a codex, a Gemini and another Claude and then start controlling them? And it can just launch it and it shows up in the sidebar. It's like, it's very cool.
Aaron Francis
I feel like you need a temporary agent concept like so that well that's maybe only via the mcp but like so that you can it spins up ephemeral codexes that aren't permanently part of your Project do you know i mean because like it's going to spin them up and there's like now i have 10 codexes so that's interesting it can launch them and close them. It could delete them, I assume, yeah. ([Time 0:39:52](https://share.snipd.com/snip/09fe1c7b-d3b3-49d9-9c08-762d7f01ca8c))
- **Offload Terminal State To Rust For Performance**
- Moving terminal state handling into Rust and streaming screen diffs makes huge scrollback and many terminals snappy.
- Ian removed xterm.js, keeps emulator state in Rust, and sends small diffs so switching large buffers is near-instant.
Transcript:
Ian Landsman
So the issue that I've experienced, you've experienced, is when the scroll back gets huge, things start to kind of fall apart, right? Yeah, that's the worst part. We're replaying 10 megabytes of buffer to get to our current state. Right.
Aaron Francis
So now this is this is shocking even to me okay i have removed x term js altogether oh i knew that was coming that was obvious next it's gone no there was no doubt in my mind i was like because This thing it's got to be weird you're trying you're you're going to be constrained by whatever it's weird problems are whatever it's gone and it's just not going to work okay so you're
Ian Landsman
Gone it's a fundamental mismatch of like responsibilities x term is incredible but it wants to be the full terminal emulator right it wants to contain and be responsible for the internal State of emulating the terminal which is great if you just have like a terminal that's great but if you have 30 of them you start to run into this problem if you have these you know five hour Long sessions with clod or codex or whatever you start to run into a problem um and so i mentioned this briefly i think on the last one but now it's like fully baked um the the system is simply Simply the system is such that um yeah the terminal emulator lives in Rust. That's it. It controls just Rust. It controls the inner state. It controls the representation of the current screen, the cursor mode, all of that. It controls everything.
Aaron Francis
So it's drawing the screen. In memory, yeah. Yeah, right, okay.
Ian Landsman
Then the uh react front end all it is is a dumb renderer for whatever rust tells it okay so it's still react the actual terminal quote the actual terminal is still react okay i see but it's Incredibly cheap because uh rust can send diffs over and say like this, this portion of the screen changed. Like, just repaint this row. Repaint this screen. So you're maxed out at, like, whatever your terminal width is, like 180 by 80 or whatever. And that's the max amount of cells that you'll see. So now switching between uh running processes is almost instant all right because all we get all we get is this thin transport of here's the screen this is what it looks like right now Yeah that's it and as things change we're getting events over the wire and it's super snappy scroll back still works we just are like it's almost like uh you know infinite loading but In reverse as you scroll back it's calling over to rust to be like hey what's above the viewport and it gets it back and um it's really really fast like switching between switching between Huge uh buffers of codex and claude and scroll back and everything all you get over the wire is just the current screen and then boom we're live and so like in the background rust is keeping Everything live and then in the foreground all you do is you paint and that's it there's no state there's no like cursor mode there's no anything It's all handled in Rust. And so we're getting very, very close, but my goal is make this like the most accurate and fastest like terminal multiplexer. And, you know, of course I'm leveraging huge open source libraries on the backend, VT 100, uh, create that kind of stuff. But then it's just so good now. So I'm still working out a few kinks of like, well, when Rust sends over some code that has like a hyperlink in it, cause you know how codex or amp will do that. We need to make sure that we're respecting those hyperlinks on the front end. So I'm just doing the final tweaks, but we're almost there on this thing is like rock solid i ([Time 0:47:54](https://share.snipd.com/snip/8943b08d-6053-44bd-af46-8da3f7ac2380))
- **Leasing A White Box Studio To Reduce Friction**
- Ian negotiated a lease for a 1,000 sq ft white-box studio to reduce production friction and create a permanent video setup.
- He plans turnkey camera positions, a back break area, and rent abatement to fund fit-out work.
Transcript:
Ian Landsman
I'm going to drop a bomb on you. Are you ready?
Aaron Francis
One hour mark even. He's dropping bombs. Okay. What do you got? You ready? Okay. I'm stabilized.
Ian Landsman
In my inbox, I have, after much negotiation, I have a lease for a commercial space.
Aaron Francis
Whoa! What are you talking about? The Aaron Francis Studio Light and Sound is moving? It's moving. Okay. Wait, happened? What happened to the current one? Didn't you just renew the current one?
Ian Landsman
I don't know. I don't know when this one expires.
Aaron Francis
Okay. So you got the current one. You got a new one coming. What's going on with the new one? Why do we have a new one? So I'm in an apartment right now.
Ian Landsman
And it has served me, it has served me well. It's always felt very temporary. And it's always felt like i'm gonna get busted one of these days you know i know you haven't worried about that yeah right um so it's been it's been fine it's been great i have always had My eye out for as we know some sort of like factory this is not a factory but this is this is a um it is a thousand square feet which is plenty it's a 50 by 20 perfect rectangle okay so it's just A big white box okay i don't know if i'm loving this but continue okay it's gonna to be perfect because the widest space I have in this current setup is 11 feet, which constrains camera Placement and desk placement quite a bit. So 20 feet being the narrowest space in that other one is awesome already. That's great. Fact that it's a white box is perfect because I can get in there and make it exactly what I want it to be. Um, it does have, it does have storefront, which I obviously don't need. Um, it's in a, it's in like a little five door kind of little strip mall thing. Okay. Not in like a, not in a super great area. So it's not very expensive. Well, it's, it's fine for me. Like, it's not like a.
Aaron Francis
But it's not like you can walk to cool stuff. It sounds like.
Ian Landsman
No, but I can drive across the street to Chick-fil I wouldn't. Well, what else do you need? It's like 0.2 miles. I'm not going to walk that. Are you crazy? But the good news is it's not like a dangerous spot it's just not a very sexy spot so it's not terribly expensive um so yeah the plan is to to sign this lease move over there set up the chalkboard Set up the main space and then start you know building out a more permanent setup to do the whole thing and potentially um have somebody local come in and help me from time to time with like
Aaron Francis
Video stuff right okay so we've had we've dabbled with this previously. We have, yeah. Like a local person to come in. I like this idea. I worked in a storefront office once. We like, you know, fuzzied out the glass.
Ian Landsman
I'll frost the glass for sure.
Aaron Francis
That kind of thing. Okay. Do you feel like, what do you feel like about, this feels like a big undertaking. Are we worried about distraction? Always.
Ian Landsman
Yeah. Okay. Definitely. All right. For sure.
Aaron Francis
Are you just moving what you have when redoing some camera placements? Are you reconstructing? Are you doing multiple sets? What do we think?
Ian Landsman
Step one will be copy and paste. That's step one. And then once I'm in there, it will be let's make this uh let's make this a delightful place to like work um and hopefully i'll have steve come down to dallas and help me but i want to set up More like turnkey video production like just sit down and push this button right maybe i need to get some some like less this camera is a canon r6 maybe i need to get some less powerful just Like studio cameras black magic has some studio cameras interesting um that are way less flexible but when you just like plant them and lock them off that is their purpose they stay in That spot forever um and i think i want to do that so that i'm not like because this morning i had to go out there and grab the camera and bring it back in here like an idiot like it was like 15
Aaron Francis
Steps i'm like oh what the hell am i doing um well you gotta readjust the focus if it's a zoom you gotta maybe adjust the focal length and stuff and the lights out there are different so i
Ian Landsman
Had to like change the settings for back in here. And so there's just a lot of like, I don't know, it's just everything that adds friction to the video production process just makes me not want to do it. And so the more that I can decrease that, the better.
Aaron Francis
About what the other kids are doing, right? Is they're just like YOLO in, I got an iPhone, like whatever's behind me. Yeah, don't like it. Okay. So you're going to stay with the high production value. High production. Okay. All right. Well, I mean, this doesn't sound too bad. I like this idea. If you copy and paste what you got, at least you're not going to go off on a whole detour of like months of figuring it all out. Obviously over time you can chip away at it. I assume you're going to bring the couch in case you got to sleep in the storefront. It'll be not as fun a place to sleep as an apartment, I would think. But it's possible. How far? What's the difference between your house and here?
Ian Landsman
So right now, it takes me about three minutes to get to work. This one will take me about six or seven. Okay.
Aaron Francis
So you're still very close to home. Still very close. Yeah. Okay. All right. Like it. I'm excited. It's happening. You got a little office party. I'll come down. We'll do the grand opening.
Ian Landsman
That's another thing. Like if we do another one of these cloud code meetups, I can just host it. Yeah, that'd be cool. I can host it in my office.
Aaron Francis
So you think you're going to be able to construct it such that there is like 20 feet of the 50 is like utility like where the couch is i think yeah you can have people hang out or whatever i
Ian Landsman
Think in the back right now uh there's a bathroom in the back that'll need to be touched up because it's kind of just like a contractor bathroom it's pretty gross um yeah i think back there I'll put just like a maybe even these cabinets like a bank of cabinets and a sink and a microwave and a mini fridge and then i think back there will be the seating area as well. So I'll have that couch. I'll maybe buy two armchairs and a rug and something. So the back part will be kind of like typical break area. Front part will be different sets, different desks, that sort of thing.
Aaron Francis
Okay. All right. We're going. What's next to you what's around what's in this what's the other five stores a fred lawyer insurance um and it's just a nothing ([Time 1:00:22](https://share.snipd.com/snip/13b153eb-343e-4ebe-9448-8fdab0784b27))