Mon–Fri · 6 AM ET
← All Episodes
EP  • 00:13:07

98.css | Build or Be Replaced

Today: 98.css | What happened to TheNumbers.com | Learn OpenGL, extensive tutorial resource for learning Modern OpenGL Episode date: 2026-07-24.

Download MP3 →

Transcript

JOSH: It's Friday, July 24. This is Build or Be Replaced — powered by ScanBrief.dev. I'm Josh, here with Erik Anderson.
ERIK: AI isn't replacing work someday. It's already flying jets, breaking platforms, and trying to merge code while Gandalf blocks the bad stuff.
JOSH: Stick around — Erik's got an AI pro tip at the end about making agents prove their work before they touch production.
[pause]
JOSH: First headline. Hacker News lit up over 98.css. Why are developers suddenly excited about old Windows UI again?
ERIK: Because boring UI is underrated. 98.css reminds people that interfaces used to be obvious. Buttons looked like buttons. Inputs looked like inputs. Nobody needed a product tour to find Save.
JOSH: Second one. Flux 3 showed up as a multimodal model for images, video, and audio. Should builders care?
ERIK: Yes, but don't get hypnotized by the model name. The signal is that models are moving from text prediction into world modeling. Video plus audio plus images means agents get better at understanding what's happening, not just describing it.
JOSH: Third headline. Writing by hand is good for your brain. Weirdly low tech for this show.
ERIK: Not weird. It's a reminder that not every productivity gain comes from deleting friction. Sometimes the friction is the point. Handwriting forces slower thought, and slower thought catches dumb ideas before Git does.
[pause]
JOSH: The big AI policy story today is startup founders asking the U.S. government not to restrict Chinese open-weight models. What's actually going on there?
ERIK: The short version is founders are worried that cutting off access to Chinese open-weight AI models would hurt builders more than it hurts China.
[beat]
ERIK: Open-weight models are part of the working stack now. People use them for evals, fine-tunes, local inference, privacy-sensitive workflows, and cost control. You don't have to love where a model came from to admit it's useful infrastructure.
JOSH: But the government's concern is security, right?
ERIK: Sure. That's the hard part. There are real national security questions when model weights move freely. You can use them to build good tools, bad tools, or weird tools nobody asked for. Same as Linux, encryption, drones, or packet capture.
[beat]
ERIK: But banning access is a blunt tool. Builders route around blunt tools. They always have.
JOSH: What does that mean for a small team building AI products today?
ERIK: It means you need optionality. Don't wire your whole company around one model, one vendor, one API, one political assumption. That's weak engineering.
[beat]
ERIK: In my systems, I want the workflow to survive a model swap. Claude can handle one job, GPT can handle another, a local open model can do classification, and PrimeBus just sees events. The bus doesn't care if the worker is fancy. It cares if the worker returns a valid result.
JOSH: That's the architecture point.
ERIK: Exactly. Model choice should be a replaceable part. Not the whole machine.
JOSH: ScanBrief is a good example, right?
ERIK: Yep. ScanBrief scored 94 items across 54 sources this morning. The important part isn't that one model summarized the internet. The important part is the pipeline. Fetch. Deduplicate. Score. Rank. Summarize. Publish. If one model gets expensive, dumb, blocked, or rate-limited, swap it.
[beat]
ERIK: That's how you build without begging a vendor for permission every Tuesday.
JOSH: Wait, really? You think policy risk should change product architecture now?
ERIK: Absolutely. If your AI feature dies because one endpoint changes its rules, that's not an AI problem. That's a design problem.
[beat]
ERIK: Same thing networking taught us. Don't build a network where one router sneezes and the whole business falls over. Same concept. Different nouns.
JOSH: So the builder takeaway is multi-model from day one?
ERIK: Not from day one if you're hacking on a demo. Ship the demo. But once people depend on it, yes. Put a thin adapter around model calls. Log every request. Store eval examples. Track cost. Track latency. Track weird outputs.
[beat]
ERIK: Then when some policy move, pricing change, or safety filter breaks your flow, you don't panic. You move traffic.
JOSH: That's less exciting than arguing online.
ERIK: Yeah, but it works. Sad day for the comment section.
[pause]
JOSH: Next story. "OpenAI's accidental attack against Hugging Face is science fiction that happened." That headline sounds dramatic.
ERIK: It does. But the pattern matters more than the drama.
JOSH: What's the pattern?
ERIK: Big AI systems are starting to interact with the internet in ways that look like attacks, even when nobody meant to attack anything.
[beat]
ERIK: Crawlers, agents, evaluators, benchmark runners, data collectors, automated browsers. They can all hit services with weird traffic. If enough of them do it at once, intent stops mattering. The server still gets punched in the face.
JOSH: So this is less "evil AI" and more "automation has weight."
ERIK: Exactly. Automation has mass now. One script is cute. Ten thousand scripts pointed at the same target becomes an incident.
JOSH: How should builders think about that?
ERIK: Treat every agent like a production system, even if it's doing research. Rate limits. User agents. Backoff. Caching. Circuit breakers. Kill switches. Logs you can actually read.
[beat]
ERIK: If your agent can browse, click, retry, or call APIs, it can cause damage. Doesn't need malice. It just needs a bad loop.
JOSH: That's uncomfortable.
ERIK: It should be. People are giving agents credit cards, browser sessions, admin tokens, and vague instructions. Then they're shocked when the thing goes feral inside a SaaS app.
[beat]
ERIK: Duuude, that's not autonomy. That's a toddler with sudo.
JOSH: Where does PrimeBus fit into that?
ERIK: PrimeBus is built around events and guardrails. The auto-merger has run 2295 attempts since June 5: 1507 merged, 788 blocked by Gandalf, 0 escalated to me. That's the point. The blocked count is not failure. That's the system saying, "Nope, this smells wrong."
JOSH: So blocking is a feature.
ERIK: Blocking is the feature. Anybody can wire Claude to a Git repo and say "fix it." The useful part is knowing when not to merge.
[beat]
ERIK: Same with web agents. The useful agent isn't the one that clicks fastest. It's the one that knows when to stop, record evidence, and ask for a human.
JOSH: What's an example of a guardrail you actually care about?
ERIK: Diff size. Test result. File ownership. Secret detection. Dependency changes. Repeated failures. External side effects. If an agent changes one CSS file and tests pass, fine. If it rewrites auth, touches Terraform, and says "trust me," no.
[beat]
ERIK: I do not trust "trust me" from a stochastic parrot with terminal access.
JOSH: That's going on a mug.
ERIK: Put a QR code on it and PrimeDistro will mail it.
JOSH: There's a serious point here though. Builders want agents that take action.
ERIK: They should. Action is where the value is. But action without control is just expensive chaos.
[beat]
ERIK: The way I think about it is simple. Every agent gets a lane. Every lane has permissions. Every action emits telemetry. Every risky action needs proof. If the proof is weak, Gandalf blocks it.
JOSH: And the Hugging Face type incident is what happens when the lane is too wide?
ERIK: Or when nobody admits there's a lane. People still talk about AI browsing like it's a user sitting there politely reading a web page. It's not. It's a fleet of machines executing instructions at machine speed.
[beat]
ERIK: That means your good manners need to be in code.
[pause]
JOSH: Third deep story. DARPA and the U.S. Air Force flew an AI-controlled F-16. That sounds like the future showed up wearing a flight suit.
ERIK: It did. And it didn't ask for a standup meeting.
JOSH: What's the real signal?
ERIK: AI is leaving the chat box. That's the signal. Once AI controls physical systems, the whole conversation changes. It's no longer "can it write an email?" It's "can it sense, decide, act, and recover under pressure?"
[beat]
ERIK: An F-16 is an extreme example, but the pattern applies everywhere. Warehouses. Networks. Security operations. Backup systems. Real estate lead follow-up. Anything with state, decisions, and consequences.
JOSH: How does that compare to normal business automation?
ERIK: Normal business automation is usually deterministic. If this ticket comes in, run this playbook. If this form is submitted, update this CRM. Useful, but narrow.
[beat]
ERIK: Agentic automation adds judgment. It reads the context, picks a path, tries the work, checks the result, and reports what changed. That sounds small until you attach it to real systems.
JOSH: And then it gets scary?
ERIK: Only if you skipped engineering. If you build it like a demo, yes, it's scary. If you build it like infrastructure, it's just another control plane.
[beat]
ERIK: That's why the F-16 story matters. Nobody sane says, "The model seemed confident, so we let it fly wherever." There are constraints. Simulations. Telemetry. Fallbacks. Rules of engagement. Humans nearby. Layers.
JOSH: That's the part people miss when they copy the headline.
ERIK: Exactly. They see "AI flew a fighter jet" and think the magic is the model. The magic is the system around the model.
JOSH: That connects to the Software Factories Fail story too, doesn't it?
ERIK: Big time. That headline hit because everyone wants a software factory now. Feed issues in, get working code out. Sounds amazing. I want that too.
[beat]
ERIK: But harness engineering isn't enough. A harness can run tests, call a model, make a branch, open a PR. Cool. If the surrounding system has bad requirements, weak tests, no ownership, no telemetry, and no review policy, the factory produces trash faster.
JOSH: So the factory doesn't fix bad engineering.
ERIK: Correct. It amplifies whatever you've got. If you've got strong tests and clean boundaries, agents help. If you've got mystery code and tribal knowledge, agents just automate your confusion.
[beat]
ERIK: That's why I keep saying this isn't about replacing engineers with prompts. It's replacing manual glue work with systems. Different thing.
JOSH: How do you apply that in your own setup?
ERIK: PrimeBus handles events. Gandalf guards merges. The fleet has 12 agents right now, Claude plus GPT, across Neo, Homer, Bill, Echo, Gandalf, and the rest. Production has 131 services running.
[beat]
ERIK: That sounds like a lot because it is. But each service has a job. PrimeRestorer handles backup orchestration. ScanBrief handles news scoring. Real Estate Automation handles lead scoring and outreach. They emit telemetry. They don't all freewheel around the network doing vibes.
JOSH: "Doing vibes" is not a runbook.
ERIK: It is the default runbook in a lot of companies. Nobody admits it.
JOSH: What should a team copy from that, without needing your whole setup?
ERIK: Start with one loop. Pick one painful workflow. Something like failed tests, stale tickets, bad backups, missed leads, or noisy alerts.
[beat]
ERIK: Then build the loop in boring pieces. Event comes in. Agent proposes action. System checks evidence. Action runs with limited permissions. Result gets logged. Human sees the summary.
JOSH: That's manageable.
ERIK: That's the point. Don't start by saying "we need autonomous engineering." Start by saying "when this exact thing happens, the system should try these three fixes and stop if the evidence doesn't match."
[beat]
ERIK: That's how you get from scripts to agents without burning the building down.
JOSH: Where does the F-16 story push us next?
ERIK: It proves trust will come from measured performance, not speeches. If AI can fly a jet under constraints, it can handle more business operations under constraints.
[beat]
ERIK: But the constraints are not optional. The measurement is not optional. The logs are not optional. If you can't explain what the agent did, why it did it, and how you would stop it next time, you don't have automation. You have a liability with a nice UI.
JOSH: That's a little harsh.
ERIK: Good. Production is harsh.
[pause]
ERIK: This episode is sponsored by Prime Automation Solutions. If you're still doing it manually, we automate it. Also, special on a website — $250. primeautomationsolutions.com
[pause]
JOSH: Alright, what's the AI pro tip today?
ERIK: Make your agent produce a receipt before it takes action.
[beat]
ERIK: Not a summary. A receipt. Inputs used. Files touched. Commands planned. Risk level. Rollback plan. Expected output. Then make the workflow check that receipt before anything runs.
JOSH: So the prompt asks for proof first?
ERIK: Yes. Tell the model, "Before making changes, return an action receipt with assumptions, exact commands, expected files, and stop conditions." Then your wrapper decides what is allowed.
[beat]
ERIK: If the receipt says it needs production credentials for a CSS change, block it. If it wants to edit Terraform for a typo, block it. If it can't name the test it will run, block it.
JOSH: That's useful today.
ERIK: You can add this to Claude, Cursor, a GitHub Action, or your own NATS worker today. Receipts turn agent work from "hope it behaves" into something you can inspect. That's your tip. Use it.
[pause]
JOSH: Binge all five episodes this weekend plus our YouTube shorts — links at buildorbereplaced.dev.
[pause]
JOSH: One more thing — we started a Discord for builders. If you're shipping AI, automation, or anything that makes a human obsolete — come hang out. Link at buildorbereplaced.dev.
ERIK: Post what you built. We'll post what we're building. Real wins, real builds, no fluff.
[pause]
ERIK: Build or be replaced.
JOSH: If you want these signals in your inbox every morning, scanbrief.dev. See you tomorrow.