Little Programs

What it is: My homemade homepage. The website I built to showcase my work, present my writing and research, and practice the foundations of web development.

How it's built: This is a static website, built using HTML5, CSS, and a little JavaScript. It is deployed with GitHub Pages.

How to use it: You're using it right now! Welcome!

THE STORY

Little programs is a static website that I built from scratch. It uses a very limited set of technologies to serve an easy-to-use, welcoming site with a homemade feel.

By limited set of technologies I mean HTML5, CSS, and Github’s built-in deployment service. There is a little bit of JavaScript as well, but only to make my life a little easier.

I think it’s a good idea to make things easy on myself, whenever feasible.

For example, every CSS class that this website uses sits in one file. That’s insane! I imagine you saying. But I’m not ashamed of it.

For starters, it means there is at least one important dimension of the website where I can see the whole thing in one look. Don’t underestimate the value of this – it simply makes everything feel more manageable.

Another advantage is that I never have to hunt across files to find the inheritance heirarchy. I don’t have to track through the import of the import to find what class inherits from what. When relationships are broken up across files, it makes them harder to see.

Another unexpected gain comes whenever I introduce another developer to the project. If someone is trying to understand my codebase, there aren’t many questions to ask about what styling belongs where. It’s just one sheet, kept tidy.

And of course, it’s only about 500 lines. If I had a much larger site with many, many more pages I would inevitably need more structure. But just as more stuff means bigger containers, sometimes a smaller container leads to less stuff.

The single CSS sheet is just an example of my approach in building this site.

If you look at the code for little programs you will see a lot of HTML5 standards and CSS grid. I use JavaScript to load the navigation bar you see at the top so I don’t have to include that markup on every page. If you are viewing this on a phone, the hamburger menu in the top left is a little JavaScript exercise too.

But like sprinkles on a cupcake, those are just extra touches. I want this website to be something I can maintain for decades, and that means building it on a technology stack that is not constantly shifting under my feet. Did I need to go as basic as possible to acheive that? Not necessarily. But I hope there are people out there who can appreciate

As developers, we operate in an industry where new solutions are arriving on the market constantly. And that has some good effects. It expands the range of problems we can solve. It accommodates more diverse solutions. And, for better or for worse, it helps us conceive new problems.

But it’s worthwhile to remember that many problems don’t need a cutting-edge solution. A ton of value can be built with the most basic tools. little programs is my arena for mastering those basic tools. Then, when the time comes to reach for something new, there will be a solid foundation to build on.