To learn any programming language is to learn to debug. But malformed commands in Python usually generate error messages that always code from running, not something that fails brilliantly yet monstrously, outpacing its creator’s intent. With HTML, we’re all Doctor Frankensteins. One of my favorite websites is the Embroidery Troubleshooting Guide. Today it’s only available through the Internet Archive, unless (like me) you have a local copy. On the surface, it looks like a typical small business website, if a little dated. But when you look down, you immediately notice something strange. The text, all centered in Arial red and blue alternately, gradually becomes larger and larger, with phrases forced to wrap around the line or reach the edge of the middle of the word, filling the screen like Alice trying to squeeze through small and small doors in Wonderland. .If you look at the source code (is there any other program that makes it easy to see the source like a website?), you will quickly find what is wrong. Each line of middle text begins with or unclosed header tag. Each header tag—which only defines the relative size, not the absolute size, part of the semantic richness of the web’s flexible grammar—is built on the end, creating a larger nesting doll. Tags designed to define text hierarchies run amok, creating chaos. The fact that the words alone about how and why threads can break makes poetry.On itself, the Embroidery Troubleshooting Guide will be quite a clever piece of conceptual art. But by looking at resources, downloading files, and replacing instructions to solve common sewing problems with text you like, you can make your own artwork. I like to include my favorite poems, decontextualizing them and forcing me to read them with new eyes. “Broken” sites like this upend the great achievements of HTML semantics. As it developed, semantic HTML increasingly separated structure from presentation: Instead of tags, which determine whether text is italicized, we use tags to identify emphasis (or tags for book or movie titles, etc.). These elements can then be displayed in an italicized manner on a computer screen but read with a different intonation by a screen reader. Troubleshooting Guide Embroider hijacks semantic tags and does something you don’t want. The same building blocks that allow a single website to display responsively on a small phone or a very large television screen can make a website undisplayable. This is fun. I appreciate the utility of content management systems and complex sites that dynamically generate HTML, but there is joy in building a site from simple HTML files that can be edited by hand. I still edit my own website this way, cleaning it up so I can see every tag, section, and paragraph break. I even enjoy editing my own ebooks, turning PDFs into beautifully formatted HTML-based EPUB files that I never publish to anyone: a self-contained personal library of websites. During the pandemic, editing these files and style sheets by hand is a balm. Ultimately, although HTML has become the province of professionals, it cannot be maintained. This is what makes many programmers so anxious about the web, and sometimes so desperate to maintain the all-too-real walls that have been built between software engineers and web developers. But people who write HTML know that hierarchies are made to be thrown away. All you need is a tag that doesn’t close where you expect it to. What other programmers might say rudely is something HTML lovers embrace: Anyone can do it. Whether we use complex frameworks or very simple tools, the promise of HTML is that we can build, create, code, and do whatever we want.