Skip to main content

How AI is used in this blog?

ยท 6 min read
Brad Taniguchi
Brad Taniguchi
๐Ÿ“–6 min read

One reason why I started this blog is to create a space that is intentional about its use of AI, with a clear goal to not actually leverage it for content generation. That said, this blog does use AI for a number of other things, which I'll go over in this post.

Introductionโ€‹

One reason why I started this blog is to create a space that is intentional about its use of AI, with a clear goal to not actually leverage it for content generation. That said, this blog does use AI for a number of other things, which I'll go over in this post.

This blog utilizes a few of the AI standards I mentioned back here, along with some specific tools and workflows I use to help maintain it without spending too much of my limited personal time. These standards help solidify how I want to use AI in its limited capacity.

Repetitive tasksโ€‹

Dull development tasks are actually pretty common, but also a subjective topic. If you ask one type of dev, "writing unit tests" could be considered dull, whereas others writing critical software would consider unit tests critical and not dull. There's even a "developer term" for all this dull work, it's called "boilerplate". A blog is not a boilerplate heavy use case in regards to code, especially this specific version of the blog where I more or less leverage a pre-existing tooling in the form of Docusaurus. However, building and maintaining this blog still ends up having some "duller" moments.

The best example I have is the utilization of an agent skill, to help create new blog post boilerplate. Docusaurus blog posts utilize front-matter, where I follow a specific format for blog post titles, tags authors and dates. This is fairly easy to write myself, but having AI do it means saving a few seconds to kickstart a new blog. This of course isn't super impressive, but I did have a few instances in the past where creating a blog post incorrectly ended up causing some issues with the build, and ended up wasting a few more minutes of my time that could have been spent writing or fleshing out ideas.

Fixing and expanding toolingโ€‹

Docusaurus comes out of the box with a number of useful defaults, but I've had to tweak and change a number of things as the use-case of a "blog only" site is a bit different than the default "docs and blogs" use case. Along with this, I had a few customizations I wanted to add and work on, such as the "recent posts" on the main page, is actually a Docusaurus plugin I had Copilot write based on the docs. The styling of this doc was also "vibe coded", as I didn't want to deal with playing with color theory, or tweaking values continually. Copilot did an OK job at this that created some accessibility issues that still somewhat exist. But this again saved me a ton of time I spent writing more posts than tweaking colors.

Copilot has also fixed a number of small bugs that would have only taken me a few minutes to complete.

Workflow and toolsโ€‹

The main AI agent/tool I use is Copilot. The main reason for this is my use-case is not complex or fancy enough that I want more advanced options or fancy tooling. There is also one killer use-case for Copilot I haven't found an alternative for. The most obvious use case is simply booting up VSCode, opening the chat right sidebar and telling Copilot what I'd like it to complete. I use this pattern for creating new blogs, or fixing issues I know about and want to observe or guide myself.

The second more advanced case is assigning and writing github issues to Copilot on github. This works way better with a more detailed issue, along with keeping Copilot to focus only on small specific tasks. That said, I did have Copilot generate a number of core infrastructure, such as the deployment pipeline, adding in playwright to help test a build and test for accessibility issues. For example, this is the issue template I assigned to Copilot:

## Description

Playwright can be used for testing the build and look for accessibility issues using axe testing.

This can test the digital ocean PR deployment

## Why

To verify accessibility and the actual website works and loads properly

## Tasks (optional)


- [ ] research latest version of playwright and docs
- [ ] install the library using the documented method
- [ ] verify install against the example tests that should be installed automatically
- [ ] modify the installation to test the built site, verify the search bar exists and works, verify the blog post list, verify an article loads and tags redirect to the list of tags
- [ ] verify these test work in the PR build
- [ ] add axe accessibility testing to the playwright test and have a test for the homepage and a blog post
- [ ] re verify the PR build

This resulted in a solid initial PR, of which the only feedback I had was to ask Copilot to consolidate the github action yaml files and reuse the same build step. But overall this worked and saved me easily a few hours.

The final "killer use-case", at least for me personally, is I can write issues, and assign Copilot, and review its work all from my mobile device. This, for me is a great way to get ideas going and something in motion without anything more than a solid description of the issue. I was able to solve a number of smaller bugs all without being home, simply because I had the ability to dictate and control Copilot through the mobile app.

Future of AI tooling in this blogโ€‹

Practically there isn't much in regards to utilizing AI specifically for this blog, its already setup to handle maintenance issues, and has done a solid job at solving issues I don't want to spend "brain juice" on myself, so using a more fancy option, or fancier features just probably won't happen here. That said, I always have other project ideas, vibe coded and otherwise. These sorts of projects are probably something I do my usual "start quick and lose enthusiasm, stop and let it gather dust". With AI I hope I can actually get some of these off the ground more. Still, I acknowledge the environmental impact of using AI, which I plan to write about more in the future.

Until next time, keep learning, keep building, and keep asking questions!