Skip to main content

The setup

Infrastructure
SiteDescriptionRepo
amandamashburn.comPersonal site. Who I am, what I do.amandamashburn-com
docs.amandamashburn.comPublic knowledge base. Evergreen content.docs
ComponentRole
GoDaddyDNS — routes traffic to the right place.
GitHubVersion control — all content lives in markdown files.
VercelHosts the personal site.
MintlifyHosts the knowledge base.
Cloudflare R2Object storage — images and assets for both sites.

Why build at all

I have quite a bit of knowledge I’d like to share — frameworks, notes, observations, etc. Until now, I haven’t shared it. The friction wasn’t a lack of ideas. It was that I didn’t have a system that felt right. There are out of the box solutions such as Squarespace, public Notion pages, Medium articles that would allow me to publish with minimal effort. But they weren’t quite what I envisioned. That misalignment was a legitimate blocker. I couldn’t bring myself to pour evergreen content into a container that felt wrong. That is because infrastructure — the system through which knowledge is written, organized, and delivered — is as important as the content itself. The medium shapes the experience on both ends. For the author, a misaligned system creates friction that makes it hard to do the work. For the reader, a well-crafted experience is superior to something cobbled together. Think of a book. You can print the same words on cheap paper with a flimsy cover, or bind it in leather with pages that are pleasant to the eye and touch. The content is identical. The experience is not. Or think of power lines: overhead wires and buried cables deliver the same electricity, but one is more resilient, visually clean, more considered. The function is the same. The execution is not. In the end, I felt compelled to link up my own system rather than leverage a pre-built solution. I couldn’t begin sharing until the foundation felt right. Now it does.

Design principles

A few values drove every decision: Portability. All content is in markdown files with version control. If any platform disappears tomorrow, I can move the files somewhere else. No proprietary formats. No content trapped in a database I don’t control. No vendor lock-in. Every component is swappable. Don’t like Vercel? Switch to Netlify or Cloudflare Pages. Mintlify not working out? Move the markdown to Docusaurus or Astro. The domain is mine. The content is mine. The services are just rendering layers. Separation of concerns. The personal site and knowledge base serve different purposes and audiences. Keeping them separate means each can evolve independently. I can redesign one without touching the other. Built to scale. The system is designed to grow. I can add shop.amandamashburn.com or tools.amandamashburn.com without rethinking the architecture. Spin up a new repo, add a DNS record, point it at a host. The pattern holds. No major rework required or tech debt to deal with down the line (theoretically). Aesthetics matter. Functionality alone isn’t sufficient. Look and feel are equally important. The architecture diagram you see above went through several iterations until it matched the simplicity and clarity I wanted. That same attention applies to the sites themselves (including the parts you don’t see).

Why this stack

Vercel. The obvious choice for hosting, AWS, felt overkill for a project like this. Plus AWS is complex in ways that create risks. Security is easy to misconfigure — leave a port open, set a permission wrong, and you’ve got a problem. Also, I didn’t want any surprise bills (IYKYK). There’s a time and place for AWS. This isn’t it. For a personal site, I wanted something simple, straightforward, and secure by default. Vercel deploys from GitHub with zero configuration. It’s fast, reliable, built for purpose, and stays out of my way. Mintlify. Chosen specifically because they’re building for both humans and machines. Docs that are readable and structured for AI, search, and automation. They have an impressive customer base and momentum. I’m confident they’ll keep building something great. Cloudflare R2. Object storage with straightforward and predictable (i.e., less stressful) pricing. A simple way to serve up images and PDFs. GitHub. Industry standard. Version history, collaboration if needed down the road, and content stays portable. GoDaddy. Consolidated my domains here after Google Domains shut down and Squarespace inherited everything. Not my favorite, but it works. Note that the total cost of this setup is $22.00 (the annual cost of my domain). These tools have very generous free tiers.

Building with AI

I’m what one would consider a technical non-engineer. I have a CS degree and 10+ years working in tech — but my roles have focused primarily on all the ‘managements’ (knowledge / product / project / change management) plus governance and compliance. I’ve worked alongside engineers in infrastructure and software development teams. I’ve put hands on keyboards for exposure and perspective. But typically, I’ve been focused on all the other things that needed to get done — beyond pure programming and engineering. I knew what I wanted to build, but I did not fully possess the skills to execute it cleanly or efficiently on my own. I used Claude and Claude Code throughout the entire process: repo setup, configurations, debugging, architecture decisions, writing, editing, etc. Claude even created the included architecture diagram and drafted this article based on my input. AI didn’t replace my thinking, but it did amplify and accelerate the execution of my vision. Overall, the setup is simple, but it took more effort than expected (even with AI assistance). There was a lot of tinkering to be done — lots of little decisions to be made when digging into the details. One decision seemed to lead to three more. But if I sat down with a clear playbook, this is roughly 10 to 15 hours of work for someone with my background. Keep in mind that time estimate includes learning along the way (again for long term maintenance and understanding). Git and GitHub were my foundation — I was comfortable there. But Vercel, Mintlify, Cloudflare R2, and using the Claude Code CLI were all new to me. Note that this setup is not hard work for programmers. But that’s the point. I managed to do this without being a developer. And therein lies the beauty of AI — it enables laymen to build simple applications leaving engineers free to focus on solving the hard problems. It’s an incredible unlock for all.

What’s next

The infrastructure for my online presence is done. And “done” is the key word — this isn’t something that will need to be revisited constantly. The setup took time, but it should require relatively little maintenance going forward. The pipes are connected. The foundation is laid. Now I can shift focus to the content — the ideas, the knowledge worth sharing.

A general approach to how I build

Overall, this project is a good reflection of how I build. Modular, portable, intentional. Begin with what you need, design for ease of maintenance / scale, and reserve the ability to swap out parts to avoid lock-in / painful migrations. Every component must serve a purpose. There’s no fluff in this system. Nothing here exists because it seemed like a good idea or because someone else was doing it. Every piece is wanted and needed. Let friction prove the need. Don’t rush to solve discomfort with new tools, added complexity, or irreversible choices. Friction is data. Let real-world experience demonstrate a clear need before building or buying. This system exists because I felt the friction of not having it — repeatedly, over time — until the need was undeniable. Last update: 2026.02.02