Why I fell in love with the View Source button
Web
Juan Cardena reflects on the 'View Source' button's legacy in teaching deterministic architecture and contrasts it with the challenges of building reliable systems with opaque LLM agents. Explore patt
Before browsers had developer consoles, before frameworks had command-line interfaces, there was a simple, profound invitation hidden in a right-click menu. You’d land on a website—some marvel of DHTML drop-downs, a trailing cursor of sparkling stars, or a form that cleverly validated your input without a page refresh—and the question wasn't what it did, but how. For me, the answer was always two clicks away: "View Source."
That plain text file, filled with a mess of angle brackets and cryptic JavaScript functions, was the most important classroom I ever entered. It was free, it was universal, and it taught me the foundational lesson of my career: great work is meant to be inspected.

A Blueprint in Plain Text
My first encounters with source code were humbling. I was looking for the secret to a shimmering button effect and instead found byzantine, nested <table> tags used for layout. It was messy, semantically wrong, and an absolute nightmare for accessibility, but it was also a blueprint. For the first time, I could see the hidden skeleton that held the digital skin in place. I saw how spacer GIFs—tiny, transparent 1x1 pixel images—were stretched to force columns into alignment.
This wasn't elegant, but it was profoundly deterministic. If you arranged the tables and cells in a certain way, the browser would reliably render the page you designed. There was no ambiguity. It was a system of rules you could learn by observation. In the early days, the web itself, as envisioned by Tim Berners-Lee in his original proposal for the World Wide Web, was founded on openness—a system where information, and crucially, its underlying structure, was designed to be shared and inspected. This direct relationship between code and outcome is the bedrock of deterministic automation. It’s the same principle that governs a well-written SQL query, a Terraform script, or a compiled binary. The inputs produce a predictable output, every time. Learning to read that raw HTML was my first lesson in systems architecture: structure is everything.

Copy-Paste as Apprenticeship
After deciphering structure, I moved on to behavior. I wanted the cascading menus, the on-hover image swaps, and the little clocks that ticked away in the corner of the screen. This was the domain of JavaScript, and "View Source" was my library. I would hunt for the <script> tags, copy the entire block, and paste it into my own sad, static HTML file.
Most of the time, it broke. But the process of debugging—of figuring out I was missing a specific function, a variable, or an HTML element the script depended on—was the real education. This "copy-paste-debug" cycle was a form of pragmatic apprenticeship. It forced me to understand a script's dependencies and environment—what HTML elements it needed, what functions it called. I learned about the DOM, event handlers, and scope not from a textbook, but from the immediate need to make a desired feature work. This hands-on adaptation of existing patterns, rather than pure invention, is often how we truly learn to integrate new technologies.
From View Source to Opaque Models
For decades, my career has been grounded in that "View Source" world. Even with proprietary software or complex operating system internals, we usually had clear APIs and documented behaviors. You could trace a system's logic, if not always to source code, then to predictable contracts. Then came the rise of large-scale ML, and now, LLM-powered agents. The core logic of these systems presents a fundamentally different kind of un-inspectability. You can't "View Source" on a 175-billion-parameter model to understand why it hallucinated a specific fact. The logic is an emergent property of the weights, a probabilistic ocean of floating-point numbers.
This is the central tension in modern architecture. We are building composite systems: one part is the glass-box, "View Source" world of deterministic automation we've spent decades mastering. The other part is the black-box, agentic world of AI, which offers incredible capabilities but resists inspection. As eloquently articulated in research like "On the Dangers of Stochastic Parrots" by Bender, Gebru, et al., these models present profound challenges related to interpretability, bias, and control, especially when deployed in critical applications. The failure modes are completely different. Deterministic code fails predictably: a bug, a crash, an explicit error. Agentic systems, however, fail creatively—by subtly drifting off-topic, generating unexpected interaction loops, or confidently fabricating non-sequiturs.
Reclaiming the Spirit of Inspection
The spirit of "View Source" isn't about literally reading every line of code. It's about a commitment to observability and transparency. It’s a belief that a system should be understandable, debuggable, and predictable, at least at its boundaries.
So, how do we apply that ethos to a world with opaque models? We build robust, deterministic scaffolding around them. We can't view the model's internal source, but we can rigorously log its inputs and outputs. We can write deterministic validation layers that check its work. We can design agentic systems with clear state machines and explicit tools, so that even if the agent's reasoning is fuzzy, its actions and their consequences are tracked in a structured, observable way. We treat the LLM as a powerful, but untrusted, component in a larger, deterministic machine. Ongoing research in Explainable AI (XAI), such as the extensive survey by Arrieta et al., aims to shed light into these black boxes, offering post-hoc explanations or importance scores. However, these methods are not the same as direct inspection of the underlying generative logic; they are interpretations, not the source itself.
While the dedicated "View Source" button is largely superseded by sophisticated browser developer tools, its fundamental spirit persists. The mindset it fostered—curiosity, a desire to understand the machinery, and a deep appreciation for inspectable systems—is more valuable than ever. It's the anchor that keeps us grounded as we build the next generation of software, ensuring our creations are not just powerful, but also comprehensible.
Key Takeaways
- Value Inspectability: A system you can't understand is a system you can't truly own. Prioritize tools and patterns that let you look inside, even if only at the boundaries.
- Learn by Deconstruction: The fastest way to learn a new technology is often to take apart something that already works. This applies to code, configurations, and even complex prompt chains.
- Build Scaffolding Around Black Boxes: When you must use opaque components like LLMs, surround them with strong, deterministic, and observable systems. Don't let the black box become the entire architecture.
- Distinguish Two Failure Modes: Deterministic systems fail predictably (bugs, crashes, explicit errors). Agentic systems fail probabilistically (subtle inaccuracies, hallucinations, unexpected interactions). Your reliability strategy must account for both.