Websites

What follows are ideas for websites that you could build that don't require any back-end. This means there's no need for a database or a server to handle the requests. These are great ideas for getting started with web development by focusing on HTML, CSS, a little JavaScript, and some templating.

Starting Out

You'll need an editor and a browser! That's it. That's part of the joy of building software for the web. There's not too much you need. Start with editing HTML and CSS directly and opening the file in your browser. Don't worry about content management systems like Wordpress or creating themes or templates. Start with the basics and go from there.

Visual Studio Code is a commonly used and free editor. I'd suggest starting there.

With these projects, you'll learn about semantic structure, organizing information, making it look nice, and adding some light interactivity.

Resources

Once you're comfortable with the basics of HTML and CSS, the best resource is your web browser's Developer Tools for inspecting the source and seeing how other sites are constructed. Any website that loads in your browser has source code you can look at to understand the elements being used and the styles that are applied to it.

Tutorials

Hosting

You'll need a host to serve your website code to the world. Start with Neocities. It's a free website host where you can build simple websites and share them with others. It's fun, has a simple interface, and won't bog you down with a bunch of extra stuff, which is great when you're just getting started.

Other options that are free but a bit more advanced to use:

  • GitHub Pages
  • Netlify

Static Site Generators

When you're building more complex websites beyond just a few pages, a static site generator (SSG) will be massively helpful for sharing page HTML across reusable templates, authoring content in something other than HTML, and organizing the content.

There are so many static site generators that it's pretty exhausting. The nice thing is that they usually don't require you to know another language aside from whatever templating language they use (usually an extended HTML language).

Here are some of the ones I've used:

Content Management Systems

You may have heard of a Content Management System (CMS) before. Wordpress, a blogging tool, is a widely used CMS. Joomla is another popular one. They let you author content and manage your site, often via a web interface, with the ability to customize the site's templates. Content is often stored in a database, and they tend to be a bit more complex than SSGs under the hood.

You certainly can build a website with a CMS, but sometimes they hide the parts you want to learn via themes and templates. Wordpress is one of the earliest programming experiences I had, but it was years later until I started programming websites from scratch. I wish I had learned the fundamentals first.