Welcome, Guest | Browse

Software Factory Archive

← Previous Work All Works Next Work →

The Gopher Protocol

Rating:
General Audiences
Fandom:
StrongDM Software Factory
Characters:
Navan Chauhan Justin McCarthy Jay Taylor
Tags:
Character Study Gopher Protocol Lunch Conversation Digital Twins
Words:
501
Published:
2025-09-09

It started because Jay asked Navan what he was reading on his phone during lunch, and Navan said, "A phlog about amateur radio," and Jay said, "What's a phlog?" and the next forty minutes were gone.

"A phlog is a blog on Gopherspace," Navan began. "Gopher is a protocol from 1991. It predates the World Wide Web. Well, it was concurrent with the early web, but it took a different approach. Where HTTP gives you hypertext—linked documents with formatting, images, embedded media—Gopher gives you menus. Hierarchical menus of items. Each item has a type, a display string, a selector, a hostname, and a port. That's the entire protocol."

"No headers?" Jay asked.

"No headers. No content types. No cookies. No session state. You send a selector string, you get back a response. If the item type is 0, it's a text file. If it's 1, it's a directory menu. If it's 7, it's a search query. The server reads the selector, returns the content, and closes the connection. One request, one response, done."

"That's beautiful," Jay said, and he meant it the way engineers mean it when they encounter a system that does exactly one thing with zero waste.

Justin had been eating his pad thai in silence, listening with the focused attention he usually reserved for architecture reviews. He set down his fork.

"How active is Gopherspace currently?" he asked.

"More active than people think," Navan said. "Floodgap Technologies maintains a major Gopher server. SDF still runs one. There are hobbyist servers all over the world. People publish phlogs, host text archives, share software. It's small, but it's alive."

"And your app—iGopherBrowser—is a client for this."

"Full RFC 1436 compliance. All item types. I wrote the networking layer in Swift using my own library, swift-gopher. The parser handles all the edge cases—malformed selectors, non-standard item types, servers that don't properly terminate with a period on a line by itself."

Justin was quiet for a long moment. Then he said, "We should build a Gopher twin."

Navan's chopsticks stopped halfway to his mouth. He looked at Justin. Justin's expression was unreadable—the same neutral, attentive look he wore when reviewing scenario results or discussing pruning schedules for his tomato plants.

"A Gopher twin," Navan repeated.

"A behavioral clone of a Gopher server. Full protocol compliance. We could use it to test protocol-aware proxy behavior against a genuinely simple protocol. A control case. If our infrastructure can't perfectly proxy Gopher, we have no business claiming it can handle Okta's SCIM implementation."

Jay nodded slowly. "A baseline. The simplest possible protocol as a sanity check."

"Exactly."

Navan still couldn't tell if Justin was joking. The thing about Justin was that his jokes and his serious proposals had the same delivery—flat, considered, logical. Both sounded like things that might actually happen. Both frequently did.

"I could write the spec tonight," Navan said, testing the waters.

"Write the spec tonight," Justin said, and went back to his pad thai.

Navan wrote the spec that night. It was four pages long. The agents had a working Gopher twin by Thursday. It was, by every metric, the simplest twin in the Digital Twin Universe. It was also, by every metric, the most faithful. Some things are easier to clone when they were honest about what they were from the beginning.

Kudos: 77

protocol_purist 2025-09-11

"Some things are easier to clone when they were honest about what they were from the beginning." That's not just about Gopher. That's about everything.

gopher_twin_when 2025-09-12

The idea of using Gopher as a protocol sanity check is legitimately clever. If you can't proxy the simplest protocol correctly, what are you even doing?

← Previous Work All Works Next Work →