Rebuilding this site
This domain used to host a React tutorial with a half-finished tic-tac-toe board on it. Here's what replaced it, and why.
This site started as a scratch repo for learning React and TypeScript. It was the Vite starter template with a tic-tac-toe board bolted onto the counter button. Once I felt comfortable with React and moved on, it sat unused. This update aims to remedy that. I have a lot of thoughts and opinions across a variety of subjects. While this is a common sentiment among blogs, I do believe my particular experience gives me some authority on the areas addressed: programming, gaming, and design, both as a gamer and developer.
There’s a practical reason too. I love making things, but there’s simply not enough time in the day. Building anything real needs a long uninterrupted run, and most of my time shows up in pieces too small to even reload where I was, at least while keeping my sleep schedule intact.
Writing fits in those pieces. A paragraph is something I can actually finish. I’m hoping this is something I can keep up with more consistently than the fractured development time I actually get.
It also serves as a sort of personal experiment. Opinions change quietly. You shift, your memory shifts with you, and you end up sure you always thought the current thing. There’s little to learn from that. Writing it down stops the change drifting without notice. It’s version control for opinions, and I can diff it against myself later.
That’s part of why I kept the tic-tac-toe board. The downside is obvious: I’ll be wrong in public, with a date on it, and it’s all indexed. I think that’s fine, even potentially important for making sure I grow from previously held wrong or poor opinions. If I’m not willing to write an opinion down, it’s already a target for more internal critique before bringing it to public debate.
What it is now
An Astro site. Posts are MDX files in
src/content/posts/, validated against a schema at build time, so a malformed
date or a missing title fails the build instead of rendering an empty page.
The parts that mattered when picking it instead of sticking with the old React/Vite setup:
- Static output. A prose page ships as HTML. No framework runtime loads unless a page actually needs one.
- MDX with components. Posts are Markdown, but a post that needs an interactive diagram can import a React component and render it inline.
- Feeds and metadata are built in. RSS, sitemap, and per-page Open Graph tags come from the content schema rather than being maintained by hand.
What the React detour was worth
Beyond the obvious “learning the basics of React” and “making a blog with it”,
I kept the tic-tac-toe board. Nothing on the site links to it any more, but it’s
still in the repo, unchanged, missing key props and win detection and all.
I left it because one line of it turned out to be the most interesting thing I got out of learning React. Changing a single cell of a nine-cell board means allocating a new array of nine, and working out why that’s the correct way to write it is what convinced me that immutability in web frameworks is an optimization wearing the costume of a moral principle. That argument got long enough to need its own post.
What I’m planning to write about
Three rough areas, and the split will probably move.
Engineering. Engine architecture and data-oriented design, partly out of building my own engine, partly out of being deep in the industry. Two threads so far. Code Critical is hard looks at patterns that get repeated without their reasons, which is where the immutability post lives. Design Dissection is the other register: how a thing actually works and what it costs. Importantly, with the context to determine when the design is valuable or not.
Games. The same dissection pointed at design instead of code. Rail shooters first, because the fixed camera keeps getting written about as a limitation when it’s the entire point. Reviews too, read for their systems rather than for a score.
Industry. Critique and analysis of the games industry, which is in enough of a state right now to deserve some. Decisions that look opaque from the outside are usually made under constraints nobody outside can see, and I’d rather write about those than hand out blame. A window into what actually goes on, and into the thinking of the people doing it at every level of it.
That’s the current plan and it’s still churning. Some of this gets written, some gets quietly dropped. Going back later to see which is half the point.
AI disclosure
I use A.I. to help with flow, structure, and early drafting. I also use it to help me do research to make sure I’m talking factually instead of simply based on how I feel. This is more important for the Industry criticisms as there are a lot of variables at play. The important part is that all the original ideas and talking points are mine and the A.I. is used as the glue to smooth out semantic gaps and readability. Ultimately, while I have goals for how to use this site and its content, I do it in my spare time, and I find that the assistance can help me get into a rhythm faster. I do it for fun, but I want to get to the meaty parts quickly.
Comments
Threads live in GitHub Discussions. Signing in with GitHub is what keeps the spam out.