← Writing

WAP phones I administered

Carrier-side Nokia handsets, WML decks, and a browser window the size of a postage stamp. Mobile web before anyone called it that.

The Nokia on my desk had a browser window the size of a postage stamp. I did not own the phone. I administered it. Carrier configuration, device profiles, deck URLs that had to resolve before billing started counting kilobytes. The handset was a managed object on my side of the contract. The person carrying it heard a ringtone and maybe checked weather once a week.

WAP arrived in the late nineties promising a web you could carry in a pocket. What landed on my bench was WML, Wireless Markup Language, decks of cards instead of pages, and latency that made dial-up look cooperative. Each card was one screen. Tap forward, wait, read four lines, wait again. The radio billed by the kilobyte on many plans, so every deck load was a line item someone would audit.

I learned WML because I could not administer a stack I could not read. Same rule I applied to LAMP boxes. If the markup lived in a repository I controlled, I could diff it, roll it back, and tell operations why Tuesday’s deck push broke login. If it lived only on a vendor portal behind credentials I did not hold, I did not own the service. I owned the outage ticket when the gateway returned a blank card.

What the constraints actually were

Headlines had to survive in a handful of characters if you wanted them visible without scroll. The viewport left no room for decoration. Images cost real money per byte on several billing plans, so most production decks were text and links. High latency meant you could not assume the user would tap again. Every wait was a chance to pocket the phone and forget what they had started.

The Nokia toolkit on my workstation rendered that same stamp-sized viewport in an emulator. Load a deck, watch it fail, fix the WML, push again. The loop was slow. It was also inspectable. I trusted it more than any floor demo I saw at a trade show.

Before the iPhone, mobile web ran on a contract between handset, carrier, and content server. WAP gateways translated HTTP into something the radio could carry. Errors showed up as empty cards or generic gateway faults that taught you nothing. Your job was to find which layer lied.

What stayed

I have not touched WML in years. The habit remained. When a phone, a browser, or an assistant cannot show me its configuration file, I assume I will debug it blind. WAP taught that lesson on hardware I could hold in one hand, where you could still read the deck and know what you owned.