My approach to building Tuff, my static site generator that I began working on last November, was to jump in as quickly as possible by publishing my personal website publicly very early in the development process. Doing so forced me to make rapid improvements and to focus on the most important features.
By spending 5am to 7am most weekday mornings I was able to publish my entire website publicly within 14 days of starting to code and I wrote a short blurb on how Tuff works within 30. Considering that my personal site has a portfolio, podcast, and thousands of blog posts I was surprised by that timeline.
As a quick aside, this 5am to 7am time slot for coding personal projects did not appear on my typical day post from January 2021 because I wasn’t doing it then. As I get older I find myself waking earlier and earlier. Rather than blow all of that time on YouTube (I love my YouTube) I decided, just a few weeks after that post, to begin working on personal projects instead. I’ve done a lot of programming, photography, and side hustle business during these early morning sessions over the last two years and I hope to continue. Waking early and being productive feels like a super power.
Development on Tuff has not stopped. I’ve been chipping away at improvements to this website, the efficiency of the build process, and adding the capability to build multiple websites. As you can see in the changelog, each release brings a few small improvements but they begin to add up over time.
One feature that I’ve missed the most since switching to Tuff for my personal website has been search, which I finished a first version of yesterday.
In very early January, just a month or so into development, I added a local command line search command to Tuff to help me find posts in my archive. It works pretty well and I continue to use this to help me find older posts. But I knew I needed to add on site search so that visitors to my site could do some basic searching. I wasn’t sure how I was going to go about it statically. Should I build a client side search forcing the visitor of the site to download some large index? Should I use a third party tool? Should I do what many have done and push people to a search engine?
I thought, don’t be dogmatic about building static. Most modern content management systems are full of bloat, load too much unnecessary junk on the page, and have far more features than most people need for a personal site. It is why I decided to build Tuff to begin with. But that doesn’t mean I have to get all self righteous about server-side code and only publish HTML, CSS, and JavaScript. I can sprinkle in some server-side code where it makes sense.
That is why I’m now calling Tuff a Static+ Site Generator. S+SG. Is this a thing? I don’t know. Don’t forget, in my original building Tuff post I mentioned that I never looked at other static site generators. And I still haven’t. I’m oblivious to best practices.
As of today, I use Tuff to build three sites; this site you’re reading now, a private local network website that showcases over 100,000 of our family photos by date, and a new static site for The Watercolor Gallery that I hope to finish before the end of the year. In addition to that I’d like to begin working on publishing Stripe Transfer, Stupid, and at least three other websites that I’ve yet to debut with it.
Tuff is now a tool I plan to use for the rest of my computing life (see also). I love it.