Goldfinch.me is Now Open Source
Learn about why I’ve made the source code for my personal blog site publicly available on GitHub.
For the longest time, my personal blog didn’t have any smoke tests. 🫢 Like many side projects, it was always on the “I’ll get to it eventually” list… and never quite made it to the top.
That changed when I decided to see what would happen if I let AI handle it for me.
With just a few instructions, Claude Code installed xUnit, created smoke tests for my core pages (Home, Blog List, Blog Detail, About, and Speaking), added a GitHub Action to run them after deployments, committed everything, and even opened a pull request. All of this happened in minutes. ⚡
Now, every deployment runs smoke tests automatically, giving me confidence that the most important parts of my site are working without me having to think about it.
Why Smoke Testing?
Smoke tests are quick, lightweight checks that confirm a site is basically working. They don’t replace full end-to-end or regression testing, but they answer the simple question:
“After deployment, are the critical pages alive and loading?” 🤔
For a content-driven site like my blog, that means making sure:
Example Test
Here’s one of the tests it generated for my homepage:
[Fact]
public async Task HomePage_LoadsSuccessfully()
{
// Arrange & Act
var response = await Page!.GotoAsync(BaseUrl);
// Assert
Assert.NotNull(response);
Assert.True(response.Ok, $"Expected 200 status, got {response.Status}");
}
It’s simple, but that’s the point. Each test confirms that a page loads and displays the essentials. If something breaks, I’ll know right after deployment.
GitHub Action
The automation runs through GitHub Actions, triggering after a successful deployment to production.
The workflow installs Playwright browsers as part of the setup, so the tests run exactly as they would in a real browser.
name: E2E Tests (Post-Deployment)
on:
workflow_run:
workflows: ["Build & Deploy (Publish Profile)"]
types:
- completed
branches: [main]
permissions:
contents: read
jobs:
e2e-tests:
runs-on: ubuntu-latest
# Only run if deployment succeeded
if: ${{ github.event.workflow_run.conclusion == 'success' }}
env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET from global.json
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
- name: Restore
run: dotnet restore
- name: Build test project
run: dotnet build tests/Goldfinch.Tests.E2E/Goldfinch.Tests.E2E.csproj --configuration Release
- name: Install Playwright browsers
working-directory: tests/Goldfinch.Tests.E2E
run: pwsh bin/Release/net9.0/playwright.ps1 install chromium
- name: Wait for deployment to stabilize
run: sleep 60
- name: Run E2E smoke tests against production
run: dotnet test tests/Goldfinch.Tests.E2E/Goldfinch.Tests.E2E.csproj --configuration Release --no-build --filter "Category=Smoke" --logger "trx;LogFileName=test-results.trx" --logger "console;verbosity=detailed"
env:
BASE_URL: 'https://www.goldfinch.me'
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e-test-results
path: tests/Goldfinch.Tests.E2E/TestResults/*.trx
So whenever my blog deploys successfully, the smoke tests kick in automatically.
The Pull Request
Claude even opened a PR for me: View it here.
I still reviewed the code (AI isn’t a replacement for developer judgment), but it saved me the repetitive setup.
Why This Matters
✅ Peace of mind after deployments
✅ Automated quality checks without manual effort
✅ A real-world example of AI accelerating developer workflows
✅ Shows how easily this can be applied to Xperience by Kentico projects (or any .NET site)
Takeaways
This was a small win, but one that adds real value. By letting AI handle the repetitive setup, I got a feature I’d been putting off for months, in less than an hour.
For me, this was a reminder that AI doesn’t just write code: it can take care of the infrastructure around coding that makes projects more robust.
The result? My blog now has automated smoke testing on every deployment 😎
Learn about why I’ve made the source code for my personal blog site publicly available on GitHub.
Discover how SaaS DXPs are helping marketers streamline content and commerce for faster, smoother customer experiences.
Open source meets sustainability: the XperienceCommunity.Sustainability package brings green tooling to Xperience by Kentico - inspired by Umbraco, and already giving back to it.