It's all just to start a blog
The idea
I decided to start a personal blog. I could just open any text editor, type something and store it in the cloud, but then I would want to get back to those notes at any moment without remembering where I put them. I know there are tons of existing out-of-the-box solutions that do not require any coding skills. They are just there. But I wanted to have it really personal, so my own domain was a requirement. I went to Cloudflare and bought one. Now what? Wait 4 months before realizing that I can build and deploy a blog from the phone while lying in a hammock in the park.
The plan
So, I thought to myself — I have a $4 GitHub Pro account and on top of it Copilot Pro for $10, which I subscribed to mostly because I was tired of setting up Android Studio once a year when I want to fix something in my mobile app I built back in 2012. Then in addition I have Claude Pro and of course ChatGPT Plus. The latter is just for non-computer-science-related daily routines.
I talked to Claude (Sonnet 4.6) to understand what the easiest way would be, considering my setup, to create a site for a personal blog. I already had experience with deploying GitHub Pages with a custom domain, so the question was not about the deployment platform, but more about the tech stack for rendering. Apparently Jekyll was the default choice for GitHub Pages, but I also wanted my site to be optimized for mobile devices, since I mostly have time to work on personal stuff from mobile. It’s that simple — I don’t have my own laptop/PC and I do not wish to have personal stuff lying around on a work machine. After my brief explanation Claude suggested Astro instead.
Quote from Claude and the resource it took it from: “Astro’s islands architecture decouples content from interactivity, so pages render as lightweight HTML with zero JS unless needed — ultra-fast loads and great SEO, a dream combo for content-rich sites”.
The implementation
Ok, sounds fancy and simple enough. Next step was to ask Claude to prepare a prompt with technical details. And here is where I forgot to add an important phrase that I use in all conversations with AI about technical implementation — “Always search the web to double-check your suggestions about library versions and compatibilities between dependencies. Check the most recent official documentation and/or trusted communities”. I found this very useful and helpful. It significantly improves the planning phase.
I opened an issue in GitHub and asked Copilot agent to implement it using Sonnet 4.6. I asked Opus 4.6 (from mobile Claude Code using a remote environment I already had with access to my repos) to review the implementation. After a few rounds of reviews and fixes, caused by me forgetting the aforementioned instruction in the prompt, I finally approved the initial PR and deployment failed.
And this time it was another human mistake — I hadn’t yet added the custom domain, but the Astro site was deployed with config for it.
Now, it was time to decide how I would like to publish posts. I asked Claude on Sonnet 4.6 for the options, and it immediately suggested I install Claude Code action and add a workflow that uses it whenever I create an issue with some label.
But instead I just added a file to the commands folder for Claude with instructions on how to review and edit posts and added a reference to it in CLAUDE.md. Yes, no skills at this point. I was wondering if the GitHub Copilot agent would read CLAUDE.md when using Anthropic models. It worked fine, actually.
Next step was to check how a GPT model can handle this without adding vendor-specific instruction files. GPT-5.4 figured out what the task required, but it of course made a lot of extra steps. So, even though it worked, this was extremely inefficient.
Finally the obvious choice was to create a custom GitHub Copilot agent, which is analogous to Anthropic’s agents definition. Basically I just reused the same prompt. This produced almost identical results as the test with Anthropic models and CLAUDE.md.
The result
Now I have a personal blog built with AI in less than a day — all from mobile. Most of the time I spent adjusting prompts for different agent tasks and fighting with library dependency issues.
However, the approach I used for blog post AI review and editing is not at all deterministic. But it is ok for a quick start and I will improve it over time.
That said, publishing drafts from mobile using my custom setup turns out to be quite inconvenient — I had to copy-paste blog drafts into Copilot agent and Claude Code mobile apps. I’m planning to set up Obsidian with git sync so I can write posts and push drafts straight to the repo without needing a full dev environment.