YOU DON'T NEED HTML!


Originally posted as part of HTML Hell's advent calendar.

While browsing Mastodon late one night, I came across this excellent blog post called HTML is all you need to make a website. It describes a few websites which are pure HTML. No CSS and no JS.

And I thought… do you even need HTML to make a website?

A few hours later, I launched the NO-HT.ML website. Proving, once and for all, that you don't need HTML to make a beautiful1 responsive2, and useful3 website which everyone will love4.

Go take a look and marvel at its magnificence - then come back here to discuss its profound importance.

How it works

If you look at the source code, you'll see it uses a tiny scrap of (mostly) invalid markup to kick things off.

<!doctype UNICODE> is a fake doctype. But it seems to be needed to convince some browsers into attempting to render the document.

<meta charset="UTF-8"> is real. Without this, text encoding sniffing takes places and some browsers just displayed rubbish.

<plaintext> is also a real HTML element. It was deprecated in HTML 2 back in the mid-1990s. What's particularly interesting is that the element cannot be closed. If you manage to find a website which lets you post HTML, that can be particularly fun!

From there, the page starts with some ASCII art. There are loads of text generators around. I remember when it used to take hours to hand-draw things like that.

Next is a bunch of Unicode abuse. There are loads of "letter-like" shapes. They're included for compatibility with rendering mathematical and scientific documents. There are also lots of punctuation marks - like bullets.

ASCII tables and flowcharts are pretty commonplace, although they sometimes go a bit wonky with non-fixed width characters.

And then, finally, the Arecibo message using the Geometric Shapes Extended Block.

Is this useful?

I've been reading "Reality is Broken" a book all about game design. In it, I found this quote:

Playing a game is the voluntary attempt to overcome unnecessary obstacles5.

It can be fun to give yourself arbitrary restrictions. In programming, there's a game called Code Golf - where players compete to solve a coding challenge in the fewest number of characters.

That's what's going on here. People are playing a game - the rules of which are "Do normal thing X without using normal thing Y".

I encourage all of you to play games. Go use your imagination to build something in a ridiculously restricted way. What do the constraints do to the way you express yourself? What sense of satisfaction do you get from successfully creating something in an impossible manner? What will you learn from experimentation?

But, above all, have fun and show off your beautiful messes.


  1. You ain't got no alibi
  2. In that it generates a violent response from web designers. 
  3. I assume it will be used as part of my insanity defence. 
  4. For some value of everyone
  5. Suits, The Grasshopper, 38. Katie Salen and Eric Zimmerman were among the first game researchers to outline these three characteristics as essential to a game, drawing on the work of Bernard Suits. Salen, Katie, and Eric Zimmerman. Rules of Play: Game Design Fundamentals (Cambridge: MIT Press, 2004). 

Share this post on…

6 thoughts on “YOU DON'T NEED HTML!”

  1. says:

    View Source shows nothing, but the page has content. The Page With No Code is the kind of puzzle that makes web developers unhappy.

    Reply
      1. @edent says:

        Because, when I tried that, some browsers would automatically try to download the content rather than display it.

        Reply
  2. This week we discuss whether HTML is necessary, get a new calendaring app, cover some productivity hacks, balk at AI Gone Wrong, and advise you how to wrap your x-max presents.

    Reply

What links here from around this blog?

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre> <p> <br> <img src="" alt="" title="" srcset="">