A Brief History of Making Websites

Sometimes a hobby grows into something more.

I started making webpages in 1996. I used HotDog 1.0, one of the first programs written to edit HTML. HotDog was pretty great because it accomplished two important things: It put users in direct control of the code they were writing. And it offered help through documentation and dialog boxes.

To launch a website, I used my Windows computer’s modem to dial into the local internet service provider. Once connected, FTP made it possible to upload the files to the ISP’s web server.

It was exciting to come up with ideas, write the HTML, and see it all online in a matter of minutes. And I guess the timing was right. Later that year, I landed my first job as a full-time webmaster.

I picked up tools like Allaire HomeSite and Macromedia Dreamweaver. There were debates over WYSIWYG vs. hand-coding. The tools kept getting better, the browser wars raged, and improved server-side scripting came onto the scene.

Eventually, I managed a web server for family and friends. I would build blogs and websites with Movable Type, WordPress, and other solutions. I installed and configured these programs with a mix of web-based tools and a command line interface, accessed over SSH. I enjoyed the technical challenge.

These programs usually connected to a database where the content would be stored. When you were ready to publish your site, your pages would be generated on the server as static HTML files (e.g., Movable Type via Perl), or rendered dynamically in response to every client request (e.g., WordPress via PHP).

Time passed and the technology kept changing. Improvements in browser standards and JavaScript performance, plus new runtime solutions like Node.js, helped popularize new tools and new approaches to developer workflows.

My days of managing a web server are over for now. And that’s partly because it has become a lot easier to launch a website without relying on a dedicated server.

When I decided to build this website, I thought it’d be fun and interesting to use a Jamstack-style approach. I wanted the site to be:

  1. Free from JavaScript on the client, except where needed.
  2. Built with Node.js-based tools.
  3. Served as static files for fast performance.
  4. Deployed automatically through a Git repository.

I had been tinkering with Astro since it was in beta a couple years ago. It seemed to be a good fit for my goals.

Astro represents a remix of some new and old concepts. With its foundations in Node.js, the developer gets a robust local development environment. That makes it perfect for rapid prototyping and experimentation. Additionally, Astro puts a premium on rendering static files with little or no client-side JavaScript. This makes it ideal for a better, faster user experience.

Astro has some helpful features, including support for templates, JSX-style custom components, site map, RSS, image optimization, Markdown, and content collections. And it works well with my preferred editor Nova, thanks to an extension.

It’s all a bit geeky and technical. But with a bit of work to get things up and running, it’s just like the early days of the web. I can have an idea, write some code, and push updates to my GitHub repo. The site is then automatically deployed to Cloudflare Pages, where I can see it all online in a matter of minutes.

For me, learning how to make websites opened up a world of opportunity. It helped begin a career path in user experience design and development. And it served as a launchpad into making apps for iOS and macOS.

Thinking back to 1996, I wish I could say I knew where all of this was headed. But I didn’t.

Which is to say: Keep chasing your hobbies. You never know how life will surprise you.