Working Out Loud
A running, honest log of what it's actually taken to build this site and the demos on it — the hosting confusion, the tools I tried, the things that broke, and what I learned along the way. Not a polished case study. The real process.
← Back to Main SiteWhy this page exists: I didn't start with the vocabulary for a lot of this — registrars, DNS, deployment, agents. I've picked it up the hard way: asking a lot of questions, breaking things, and fixing what broke. Six months in, I can now debug my own hosting problems and ship a working AI agent. That's the story this page tells.
This page is that process, written down honestly instead of cleaned up after the fact. If you're an L&D person, a consultant, or anyone else wondering whether you can actually build with AI tools without a CS degree — this is what it really looks like. Messy, iterative, and still ongoing.
The Log
I had a working demo — the AI safety coach — and no idea where to actually put it so other people could see it. Turns out "hosting" isn't one thing. I looked at GitHub Pages, Netlify Drop, and eventually landed on AWS Amplify because I already had an account from something else entirely.
Nobody tells you upfront that "upload a file" and "deploy an app" are different problems with different answers depending on what you're building.
What I learned: pick the option that matches what you already have access to, not the one that sounds most official.
First attempt at actually getting the demo live: zipped up the portfolio file and the safety coach demo together, uploaded to Amplify, hit deploy, and got a 404. Nothing. Just a wall.
Turns out Amplify doesn't guess what your homepage is — it looks for a file literally named index.html and nothing else. Mine was named after the project, not the job it needed to do. Renamed it, re-zipped, re-uploaded. Worked instantly, which was almost more annoying than the error itself.
What I learned: hosting platforms don't guess what your front door is. They look for one exact filename, and if it's not there, nothing else you did matters.
While sorting out hosting, I remembered I already owned karasmart.net from years ago, and it was pointed at Google Sites. I was sure Google had sold it off at some point. They hadn't — what actually happened was that Google Domains, the registrar, had been sold to Squarespace. The site itself was still just sitting on Google Sites the whole time.
Somewhere in the same conversation I also remembered a Shopify domain I'd bought and done absolutely nothing with, and asked if I should just host there instead. The answer was no — Shopify is for selling products, not for a consulting demo. Turns out you can accumulate internet real estate for years without ever learning what any of it is actually for.
That's when I learned the difference between a registrar (where you bought the domain name) and a host (where the actual site files live). They're almost never the same company, and nothing about either interface makes that obvious.
What I learned: "who do I pay for the name" and "who's actually serving the site" are two completely different questions — and having more accounts doesn't mean having more clarity.
Once the site had a real home, I came back to actually rebuild it properly — a full pass on both the homepage and portfolio page, aiming for something warmer and more modern, with a real accessible nav instead of whatever I'd cobbled together the first time.
This round taught me the unglamorous side of iterating with AI: re-uploading files when an upload silently failed, re-explaining context I thought was already saved, and learning to just check the actual file before assuming a change had landed.
What I learned: always ask for a straight answer on whether something actually happened before believing it did.
The most recent piece of work: a Crew Compliance Agent — something that reasons over a training roster, flags who's overdue on safety certifications, and drafts the follow-up message a supervisor would actually send. Not a coach that guides one learner through content, but something that monitors data and acts on it.
Getting it right meant a lot of small, deliberate decisions: what to call it so it reads as an agent and not just another interactive demo, whether to keep the emoji tags I'd been using everywhere else on the site (I dropped them, sitewide), and adding real CSV upload so a visitor can actually test it with their own data instead of just watching mine.
What I learned: the small naming and labeling decisions matter as much as the underlying build — how something is described is part of what it is.
Got the agent built, uploaded the updated homepage and portfolio page to GitHub, and assumed that was the whole job. It was not. The "Launch Demo" button on the homepage points to the actual demo file — a completely separate file I hadn't uploaded yet.
And that link only works if the filename in the button matches the filename sitting on GitHub exactly, including capitalization. Not "close enough." Exactly. It's a small, unglamorous fact that turns out to be the entire mechanism behind every "Launch Demo" button on this site.
What I learned: a link is a promise that a specific file exists in a specific place under a specific name. Break that promise by one character and the button just quietly does nothing, with no explanation at all.