πŸ€cheeky❀️determinedπŸ€ΈπŸ»β€β™‚οΈfortunateβ˜•οΈgiddy✨thrilledπŸƒunstoppable❣️favored☁️blissful🌈forwardπŸ€luckyβ˜•οΈgleefulπŸ’purposefulπŸƒirreverent⚑️happy✨charmed☁️fresh❣️tenaciousπŸ’elatedπŸ€excited❀️joyful πŸ€cheeky❀️determinedπŸ€ΈπŸ»β€β™‚οΈfortunateβ˜•οΈgiddy✨thrilledπŸƒunstoppable❣️favored☁️blissful🌈forwardπŸ€luckyβ˜•οΈgleefulπŸ’purposefulπŸƒirreverent⚑️happy✨charmed☁️fresh❣️tenaciousπŸ’elatedπŸ€excited❀️joyful
← Cynthia McGillis

How I built this

A few people have asked. So here's the whole thing.

I built this site with Claude Code in about an hour. There's no CMS, no build step, no frameworks. Just a Laravel project that serves a static HTML file. The whole thing is under 200 lines of code. Claude wrote most of it while I told it what I wanted.

Here's exactly what I did β€” including a prompt you can drop into your own agent to do the whole thing in one shot.


What you need

That's it. You don't need to know PHP. You don't need to know CSS. You just need to be able to open a terminal.

And if you get stuck at any point β€” just ask Claude. Literally anything. "What does this error mean?" "Why isn't my font loading?" "How do I add a favicon?" There are no stupid questions. That's kind of the whole point.


Step 1 β€” Create a Laravel project

composer create-project laravel/laravel your-site-name
cd your-site-name

Laravel is just the wrapper here. It handles routing and gives you something to deploy to Laravel Cloud. The actual site is a single HTML file you'll put in the public/ folder.

Step 2 β€” Start Claude Code

claude

That's it. You're in. Claude Code can now read, write, and run code inside your project. It's genuinely magic the first time you use it.

Step 3 β€” Tell it what you want

This is the whole game. The more context you give it, the better the output. A good first prompt looks something like this:

"Build me a personal homepage. I'm [your name]. I [what you do, 1-2 sentences]. Keep it minimal β€” clean HTML and CSS, no frameworks. Serve it from public/index.html in this Laravel project. Update routes/web.php so the root route returns that file. My vibe is [describe it β€” clean? warm? playful?]. Include: [list what you want β€” bio, links, a photo, whatever]. Use [font name] from Google Fonts."

Claude Code will write the HTML, the CSS, the route β€” all of it. Then you just iterate. "Make the links turn red on hover." "Make the font a bit bigger." "Add a little scrolling ticker at the top." It handles all of it.

Step 4 β€” Push to GitHub

git init
git add .
git commit -m "Initial site"
gh repo create your-site-name --public --push --source=.

Install the gh CLI if you don't have it. It makes this a one-liner.

Step 5 β€” Deploy to Laravel Cloud

  1. Go to cloud.laravel.com
  2. Create a new project and connect your GitHub repo
  3. Deploy

Two minutes. Live URL. Done. Add your custom domain from the same dashboard.


The oneshot prompt

If you want to hand the whole thing to your agent and walk away, use this. Fill in everything in brackets.

"I want to build a personal homepage. Please do the following:

1. Open routes/web.php and replace the default route with:
Route::get('/', function () { return file_get_contents(public_path('index.html')); });

2. Create public/index.html as a complete, self-contained personal homepage. Here are the details:

β€” Name: [your name]
β€” Bio: [write 3–4 sentences about yourself in first person, casual tone β€” where you work, what you've done, what you care about]
β€” Links: [list your links β€” X/Twitter, LinkedIn, any projects]
β€” Vibe: [minimal and clean / warm and personal / whatever fits you]
β€” Font: use [font name, e.g. Manrope] from Google Fonts
β€” Colors: background [hex], text [hex], link hover [hex]
β€” Add a scrolling ticker at the top with words and emojis that fit my personality
β€” No frameworks, no external CSS libraries. Inline styles only. Keep it under 200 lines.

3. Make sure the HTML has proper meta tags, OG tags, and a canonical URL pointing to [your domain].

4. Initialize git, stage all files, and commit with the message 'Initial site'."

That's all I did. Then I pushed to GitHub, connected it to Laravel Cloud, and it was live. Building it was more fun than I expected β€” and I work in marketing, not engineering.

Questions? Find me on X.