On starting a website, pt 4
Part 4 of my posts on starting this website, helpful but frustrating LLMs, and current to-do list.
It’s been almost a month since launch and the site has already grown a lot. I feel happy with the state of its appearance and functionality earlier than expected, though admittedly I spent a lot of time making it happen.
There’s still plenty to do, but it’s increasingly feeling like I’ve got most of the building blocks I need to start shifting from functionality to content.
On AI assistance
ChatGPT has been equal parts frustrating and helpful in getting things done. Prior to starting this project, my familiarity with HTML, CSS, and JavaScript was around 3, 1, and 0 out of 10, respectively. Being able to use ChatGPT like an interactive search engine has been very useful for solving small syntactical issues, feeling out how I might implement an idea, and providing basic JS scripts. Sorry, StackOverflow — it’s not looking good for your future.
But interacting with the LLM has also been an exercise in patience. It so often and so confidently spits out wrong solutions and inconsistent code. It has a tendency to arbitrarily rename variables and even when you ask it to be concise, it loves to say more than necessary, repeat itself, and end every chat with a prompt. Gotta keep the end-user on the platform.
There’s a lot of time that goes into dissecting its answers and clarifying communication. And personally, I’m not interested in merely copy/pasting code without understanding what it is doing. When I do end up on StackOverflow, W3Schools, or reading documentation, I tend to learn more and get better results. But even accounting for the friction involved in using ChatGPT, it still saves time compared to using Google. Search engines have gotten so bad.
Probably the main reason AI has been helpful is that it integrates well with the typical learn-as-you-go coding workflow. I wasn’t very familiar with web-focused languages, but I did take Java courses in college and taught myself Python. I have a decent sense of how programming languages work even if I don’t know all the syntax, and AI is pretty good at teaching that.
I doubt it would be as useful if I had greater mastery over the specific languages I need. I’ve tried using ChatGPT for assisting me in writing, for example, but I’m a professional writer with years of education and experience. I always conclude I could write something better in less time than it takes to painstakingly craft hyper-tailored writing prompts. It’s just not that good.
As with coding, LLMs are better used as a search engine you can talk to — though as we all know by now, one must beware their fondness for inventing facts.
Coding building blocks
Fundamentally, programming languages are tools used to build scripts or programs that serve some function. The critical part is that you don’t need to learn everything; only the narrow set of things relevant to solving the next problem. (That’s really the case for all learning, but let’s not get carried away.)
Coding lends itself well to that one-problem-at-a-time approach because it’s very modular. When you learn a new trick, it becomes eligible for reuse elsewhere — sometimes very obviously so. As soon as you identify repetition in your workflow, there’s probably a way to automate it via some function.
When I work on a programming project, it is always an exercise in optimizing that modularity. Building a website from scratch has been like building a house, its foundation, and the tools and materials all at the same time.
Even though it seems inefficient, it is simply unavoidable in my mind. To avoid it — sticking to the house analogy — one would need:
- Advance knowledge of the type and quantity of stuff that will furnish the whole house (i.e. the content).
- Based on the above, an extremely precise plan for the layout of the house. How many rooms? And where? And how are they connected?
- A complete understanding of every tool, material, and technique necessary to actually build it.
That may be feasible with a project manager and a competent team, but I’m just one guy with limited web coding experience. This is why I was quite set on a launch-it-first-and-worry-about-the-rest-later approach.
I think it has worked out.
Major to-dos
There are still many things I want to work on, like:
- Add a Google Translate option
- Add custom banners for all content types
- Backfill keywords, descriptions, and excerpts for all content
- Rework tag system
And also the following:
Custom audio player
The basic HTML <audio> element is very limited and simply not good enough for my needs,
considering half of my website is dedicated to sharing music. My friend over at
enoodle.net uses Faircamp for the
album side of his site. This seems like it could be a good solution if I had only music on my
music subdomain, but I don’t — and I think I’ve decided that I won’t.
Besides, I’d like to challenge myself to create an audio player of my own. I’m hoping it will be good opportunity to properly sink my teeth into JavaScript, which hasn’t really been needed so far.
Better server hardware
I’m currently running this server on a disused laptop I bought in 2015. This was a great way to dip my toes into launching a website without any upfront cost. But it has a slow processor, slow hard drive, and consequently the connection to the website often times out (though I haven’t entirely ruled out other causes for that).
For the time being, traffic is light. But as I plan to increase my exposure and continue adding a lot of media files to the site, the laptop will not be suitable in the long term and I will need to look for a better alternative.


