First Post: The Tech That Powers This Blog

How This Blog Finally Happened πŸŽ‰

I bought this domain in April because my deep-dive notes never seem to stick. I'll obsess over a topic, document every detail, feel sure I will remember, and six months later draw a blank. Too many evenings vanish rebuilding knowledge I already earned.

Everything clicked in June while I was preparing for a guest slot on the Azure & DevOps Podcast. I spun up a simple Azure Static Web App, let the portal scaffold a GitHub Actions workflow, and tried the preview of OpenAI Codex. One prompt, one build, and a blank page suddenly displayed a smooth CSS animation. The rush felt like my first ChatGPT session. From that moment this site became my public tech diary, a single place to keep my research and, if my notes save you a few hours, even better.

Codex adds a CSS animation
My very first Codex task: one prompt, one pull request, instant animation

What I built, step by step

  1. Hello World
    Installed Eleventy locally and confirmed a static page could build in under half a second.

  2. Templates and collections
    Added a clean post layout and a posts collection so new articles surface automatically.

  3. Azure hookup
    Used the Azure portal to create the Static Web App. During that process Azure

    • authenticated with GitHub
    • pushed a ready-made workflow file that calls Azure/static-web-apps-deploy@v1
    • added the deployment secret (AZURE_STATIC_WEB_APPS_API_TOKEN_...) in Actions secrets
      No manual tokens required.
  4. Pull request preview, then production

    • First pull request against main triggered the workflow and Azure spun up a preview site at a temporary URL.
    • After reviewing the preview I merged the pull request, which ran the same workflow on main and published to the primary domain.
  5. Codex polish
    Asked Codex for quick CSS fixes, sample posts, and layout refactors. Each task finished in about five minutes.

  6. Open Graph basics
    Added Open Graph and Twitter meta tags plus a default preview image so every shared link shows at least one clean thumbnail.


Why I chose Eleventy

I briefly considered building my own engine in .NET, but that would have delayed writing for weeks. I needed something that let me stay in Markdown, version content in Git, and ship plain HTML. Eleventy met those goals with zero framework overhead. Markdown plus Nunjucks templates give me full control, the output works perfectly on Azure Static Web Apps, and there is no lock-in if I ever migrate. In Domain-Driven Design terms, my Markdown files are the domain layer and Eleventy is just an implementation detail.


Initial commit on July 15, live site on July 27. Twelve days of evening work and my GitHub contribution graph has never looked greener.

GitHub contribution graph for July 15–27
One sprint, lots of green squares

Why link previews were tricky

Issue What happened
Preview URLs are temporary Pull-request builds served HTML that still pointed meta tags to https://example.com/...
Validators saw a mismatch Twitter tried to fetch images from production that were not live yet and failed

Quick fix – ship one default OG image that already lives on production.

Next steps


How Codex fits into the loop

Codex task UI with completed PR
Codex task UI showing a merged pull request

I create a task in the Codex web UI, select the repo and branch, and describe the change. Codex spins up a container, edits the code, runs the Eleventy build, then shows file diffs and a summary. From there I click Create PR and a pull request appears in GitHub. About a minute later the Azure workflow adds a preview link to the PR comments. If the preview looks good I merge. When I need more tweaks I avoid manual commits, use the same task, and give Codex a new instruction. It updates the branch and I hit Update branch in the UI. Manual commits on the PR break the task, so I only edit locally if I plan to archive the task and start a fresh one.


Working with Codex day to day

Codex helps with Where I still step in
CSS tweaks and layout refactors Codex cannot push binary files. When it hits the "Binary files are not supported" error the task stops. I commit PNGs manually. See the OpenAI community thread.
Generating placeholder posts If I commit directly to the PR branch Codex loses context and the task breaks. I debug locally, then re-prompt Codex so it updates the PR.
Clear, self-describing commits I always add run the build to each instruction so the GitHub Actions pipeline passes. Tip from the Azure & DevOps Podcast.

Average task time is four to five minutes including container start-up.


Real-world hurdles and lessons


Portable content and Domain-Driven Design

Posts live in Markdown with YAML front matter. Markdown acts as the domain layer: independent, durable, and easy to move to any future framework.


The stack at a glance

Cloud cost so far: only the yearly domain fee.


What’s next

Call to action: Share this post on X or LinkedIn and watch the link preview appear. If the card looks odd please let me know so I can improve it.

Thanks for reading and see you in the next post!