Blog

My Website Was Hacked in 2020. I Brought It Back From the Dead in Less Than 5 Hours With Grok Bots.

My website got hacked so bad in 2020 it corrupted all my content.

I’d put off rebuilding it ever since.

A friend pushed me to try Grok Bot. On Friday, Oct 23, I sent my first real ask. On Tuesday, Oct 27, the new bryantgarvin.com went live.

5 days on the calendar. Less than five hours of my time, mostly from my phone.

The bots did the research, the writing and the building. I did the talking… screenshots, voice messages and a yes or no.

Here’s every step, start to launch, with what each bot did, what I did, and the rules that came out of it.

Timeline titled 5 Days, Day by Day, with one column for each day from Friday, October 23 to Tuesday, October 27 and the times each milestone happened, ending with the site live on Tuesday.
My five days, Friday to Tuesday, day by day (Arizona time).

The site I lost in 2020

I started blogging in April 2007. I relaunched in April 2012, my first run at having my own site really.

Years of posts lived there. PPC rants. Vlogs. A match type debate that ran 14 comments deep.

The old bryantgarvin.com homepage in the Wayback Machine on April 18, 2014, branded The Dr. House of PPC, with a Google results page about Bryant Garvin, his Twitter bio and recent posts.
My old site at its best, April 18, 2014, from the Wayback Machine.

Then in 2020 the hack hit. Everything on it got corrupted. By 2021 all that was left was an empty folder.

Two Wayback Machine captures of bryantgarvin.com: on August 7, 2020 a WordPress parse error instead of a homepage, and on August 15, 2024 an empty Index of / folder listing.
All that was left was a WordPress error in Aug 2020 and an empty folder by Aug 2024.

It stayed on my list for years.

Where I started with AI

I wasn’t new to AI.

I’ve used Claude Cowork since February, when I HAD to use it as my “memory” after a massive TBI (Concussion). I’d forget everything an hour after a conversation, including sometimes that I’d had the conversation.

So I knew how to talk to AI.

But I’d never built a system that went and DID the work without me watching every step.

Friday, Oct 23, my first real ask

I’d signed up Thursday, named my first bot Moses and connected my email, calendar and X. That was setup before day one.

Friday I sent Moses my first real ask.

Fri Oct 23, 1:49 PM (Arizona time) · BG to Moses

"I had a buddy who built out a bot group like this… I am wanting to build out one similar to help me build a consulting business and website and content etc… I don't have notion or GitHub or other things yet but I want to start building out my bot system… Will you be my chief of staff? Or do I need to build a new bot?"

Then I asked him to look me up on the web and YouTube.

Saturday, Oct 24, I set up a team of bots

Saturday afternoon I asked Moses about leaving WordPress for GitHub and Cloudflare, and how to use him with other bots. Then I told him, “Yes, I’d be okay with you creating those bots now.”

When most people are zigging, I like to zag. I gave each bot its own job.

→ Website builds bryantgarvin.com

→ Content drafts my LinkedIn and X posts

→ Research finds posts worth replying to and rebuilds my network

All three went live Saturday afternoon. Research sent its first list of posts worth replying to that same afternoon.

Chat card titled Day 2: The Team Shows Up. On Saturday, October 24, the Website, Research and Content bots each send BG their first message.
The first messages from Website, Research and Content on Saturday, Oct 24.

Moses, my chief of staff bot, keeps them all pointed the same direction.

Yes, I named him Moses. Moses led the Israelites out of Egypt, through the wilderness, to the promised land. With my religious background, I thought it’d be hilarious to have my own Moses leading me through my start with Grok Bot and agents.

Diagram titled Who Does What. BG approves everything. Moses, the chief of staff, sits under BG, and under Moses are Website, Content, Research and Editor, each with its job.
Who does what. Moses is my chief of staff, and Website, Content, Research and Editor do the work.

Saturday, Oct 24, 19 years of my own words came back

While the team got set up, Moses went looking for everything I’d ever said in public.

→ 72 talks, podcasts, videos and write-ups, every link checked

→ 21 full transcripts, and 13 of those talks became my voice profile

→ More than 50 old articles, from my blog and Get Found First

Then he went after the old site itself.

The Wayback Machine had kept pieces of it. Moses checked 1,207 archived addresses. 233 pages still loaded.

→ 20 posts recovered in full, comments included, from 2012 to 2015

→ 6 pages, including my 2012 and 2016 About pages

→ 35 images saved

→ 26 more posts I only have titles for now

By Saturday night all of it was a knowledge base. My frameworks, my tests and results, my stories, my case studies.

→ Product, Content, Amplification, the three-legged stool I’ve taught for years

→ The Purple logo test, a 2,824% lift in brand search

→ Ozlo’s crowdfunding, over $8M

Every number traced back to where I’d said it.

Saturday evening I made my first image with Content. I told it the main point should always be the main point. That became its first standing rule.

Chat card titled A Fix Becomes a Standing Rule. BG tells Content the main point should always be the main point, and Content saves it as a standing rule for every visual.
On Saturday, Oct 24, I told Content the main point should always be the main point, and it became a standing rule.

Sunday, Oct 25, the plan and the first preview

Sunday morning I asked Website what we’d build on. I wanted it simple and secure.

The answer was the move I’d asked Moses about on Saturday. Astro for the site, GitHub for the code and Cloudflare Pages for hosting.

Sunday the site plan came together.

→ Every page, every offer and how booking works

→ What happens to every old post: republish, redirect or retire

→ 120 fixed redirect rules plus 10 pattern rules, so old links from 2012 to 2016 still land somewhere real

→ Mobile first, because most people will see this on a phone

That evening I connected GitHub and set up Cloudflare. A coding agent opened the first build of the site.

I told Website I go by BG. Purple became the brand color, and BG went in the logo.

Chat card titled I Go By BG. BG tells Website he loves purple and goes by BG, and Website replies it will use purple as the hero color with BG up front in the wordmark.
On Sunday, Oct 25, I told the bots "I go by BG" and picked purple as the brand color.

By Sunday night the first preview was up on a test address.

Chat card titled From Zero to a Preview Link. BG connects GitHub and Cloudflare, Website reports the first version is built in pull request 1, and BG shares the first pages.dev preview link.
On Sunday, Oct 25, we went from GitHub and Cloudflare setup to the first preview link.

I read the preview on my phone that night. Some lines were choppy fragments. And the bots’ internal sourcing notes, like “It is my claim.”, had leaked into the Ozlo and wasted-spend section.

Sun Oct 25, ~10:40 PM (Arizona time) · BG

"WAY too 'AI speak.' A human (especially me) doesn't write or talk this way."

Every page got rewritten against my Voice Guide that same night. That became a standing rule. Every public line follows my voice guide and sounds like me talking. And internal notes never show up on a public page.

Sunday we also landed my About line. I read it and said it sounds like me… and I like that a lot. It’s on the About page word for word.

I didn’t pick up human behavior naturally. I had to study it. Why people click, why they leave, why they buy. That’s why I see what most marketers miss.

Monday, Oct 26, an Editor and Keep It Stupid Simple

Monday I added the Editor. It checks every line against my voice guide before I ever see it. Every page, every post.

Its first review failed a LinkedIn draft from Content. It found a word I never use, two lines that sounded like AI and two facts I hadn’t approved.

Chat card titled The Editor Catches It First. On Monday, October 26, the Editor reports that a LinkedIn draft from Content failed review for a banned word, two AI sounding setups and two unapproved facts.
The Editor's first review on Monday, Oct 26.

The same day I gave the bots my oldest rule. KISS. Keep It Stupid Simple.

If a headline needs another sentence to explain it, it isn’t simple enough yet.

I also set how the old copywriting classics fit. The classics are the foundation. Modern attention spans win. So everything is scannable. Short blocks, one idea each, white space between them.

How my feedback became standing rules

I didn’t write long instructions. I’d send the bots a screenshot or just talk to them and say what to change.

Every fix became a standing rule. They don’t forget it next time.

→ Go by BG

→ No internal notes on public pages

→ No years on testimonials

→ Numbers need context

→ Catch what I’d catch before you show me

The testimonial one is a good example. On Tuesday afternoon the testimonials still showed a year next to each quote. I had them drop the years everywhere, name and company only. I know these people, and they’d all recommend me today. The quotes themselves stay word for word, only trimmed. That includes the “WTF” in Johnathan Dane’s.

A few more that came from one comment each.

→ My old blog posts keep my original wording. They just get easier to scan.

→ Old vlog transcripts never go up word for word. They get rewritten in my voice.

→ I can’t open files on the bots’ computer, so they send me things I can tap and read.

The last rule on that first list is the big one. I don’t want to catch the same mistake twice. So the bots check their work the way I would before it ever gets to me. Naming. My real words. Numbers with no context. Two buttons stacked on a phone screen.

They bring me fixes already made, along with the reasons.

Meanwhile, Content and Research kept going

The site wasn’t the only thing moving.

From Saturday on, Research sent me a short list of posts worth replying to.

Content started drafting my LinkedIn and X posts from the knowledge base. Every draft goes through the Editor first. Then it waits for me.

So by launch day I had a site, a content queue and a reply list. All in my voice.

The guardrails

The first thing people ask me is whether the bots post or spend anything on their own.

They don’t.

Nothing posts, sends or pays without my OK.

I get an approval list every weekday morning and afternoon. I read it, I say yes or no, and only then does anything move.

Tuesday, Oct 27, launch day

Tuesday was the last round. Testimonials with no years. Stage photos. A Speaking page with a request form.

I also told the bots that any number I’ve already shared in public, in a talk or a video, is fair to use. That cleared a lot of back and forth.

Booking went live on Cal.com. A free 15-minute intro call, and the paid Live Audit Call with payment at booking through Stripe.

The Cal.com booking page for the Free Intro Call with Bryant BG Garvin: 15 minutes on Zoom, with a November 2026 calendar and open times.
The booking page for my free 15-minute intro call on Cal.com.

Tuesday afternoon the first version was published. The contact form got tested until the emails landed in the inbox, not spam.

Then I switched the domain over to Cloudflare myself, and bryantgarvin.com went live.

→ Built on Astro, code on GitHub, hosted on Cloudflare Pages

→ My recovered posts back at their old addresses

→ Old blog links forward to the right pages

Chat card titled Launch Day. On Tuesday, October 27, Website tells BG the site is published, the request form email landed in his inbox, and bryantgarvin.com is showing the new site.
On Tuesday, Oct 27, the site was published, the form worked and bryantgarvin.com went live.
The new bryantgarvin.com homepage on a phone, with the headline Ads that sell now and build demand for later, a short intro and a Book a call bar.
The new homepage on my phone.
The new bryantgarvin.com homepage on a desktop screen, with the headline Ads that sell now and build demand for later and a Book a call button.
The new homepage on desktop.

Since launch

Since launch, the bots keep making quick fixes from nothing more than my screenshots and voice messages. And they keep adding new rules and guidelines as they go.

Tuesday night I went through the live site on my iPhone and my MacBook and sent what I saw. Nine more updates went live that night, with all of these fixes in them.

→ The “21+ years” block on the homepage read like AI. Now it says what I’d say. Get the product right first. Then make content people actually remember. Then put real money behind it.

→ The headline now reads “Ads that sell now and build demand for later.”

→ The stat cards named a brand and nothing else. Now each one says what the number is, like “Yearly sales growth at Groove Life.”

→ An iPhone screenshot showed two “Book a call” buttons stacked on top of each other. The extra one is gone on phones, across the whole site.

→ The performance branding FAQ now uses my own definition, checked against my podcasts.

→ Podcast cards were breaking on smaller laptop screens, and the Speaking page had too much white space on my MacBook. Fixed, plus one spacing system for the whole site.

→ “The brand has to pay for itself” isn’t my phrase. Swapped for lines I’ve actually said.

→ CABN is Conquest, Awareness, Brand, Non-Brand. Fixed everywhere it shows up.

→ Every “Book a call” now goes to the free 15-minute intro call. The Live Audit Call page keeps the paid booking.

→ The slanted “AND” in the headline was crowding “BUILD.” Fixed.

Side by side phone screenshots of the homepage hero, the launch build on the left and the live site on the right, with notes on what changed.
The homepage hero on a phone, at launch and live now.
Side by side phone screenshots of the homepage stat cards before and after. The after cards say what each number measures, like yearly sales growth at Groove Life.
The stat cards before and after I asked for context on every number.
Chat card titled A Screenshot Becomes a Rule. BG sends an iPhone screenshot of a Book a call button sitting on top of the sticky Book a call bar, Moses passes the fix to Website, and Website confirms it is live.
My iPhone screenshot of duplicate buttons, which became a fix and a rule.

The bots found a few on their own. A leftover line that didn’t sound like me. Their audits fixed a layout break at tablet width and a sitemap path, and the Contact page now says the intro call is free.

New rules came out of that night too.

→ Think ahead. Every bot now reviews its work the way I would before it shows me.

→ No new copy goes live until the Editor has seen it.

→ Check every page on a phone first, then at my MacBook’s size.

→ Long posts go on my site first. The X version links back.

Chat card titled I Want You to Think Ahead. BG asks Moses and the other bots to think ahead and catch things before he has to ask.
On Tuesday, Oct 27, thinking ahead became a rule for every bot.

Then the bots wrote their own audits

Then the bots turned what they’d learned into 5 reusable skills.

→ Design QA at phone and desktop sizes

→ Speed and Core Web Vitals

→ Content and trust QA, which checks for leaked notes, untraceable claims and free vs paid buttons

→ A DTC conversion audit

→ A Shopify landing page builder

Together they draw on Baymard, Nielsen Norman Group, Google and WCAG.

They ran the audits on my own site. The next site they look at won’t start from zero.

Table titled 12 Pull Requests, Sun to Tue, listing each pull request for the site, what it did, and its merge time on Tuesday, October 27. PR 4 was not merged.
All 12 pull requests, 11 of them merged by 7:41 PM Tuesday.

What I’d tell you if your site is still on the list

I put this off for years. What made 5 days possible came down to a few things.

→ Give the bots your real words. Old talks, old posts, old pages. They write like you because they read you.

→ Split the work. One bot per job, plus an Editor.

→ Turn every correction into a rule, so you only make it once.

→ Keep the final say. Nothing goes out without your OK.

Back in 2015 my old site offered “live audits.” The new one does too, as the Live Audit Call.

Wayback Machine capture of the 2015 Request A Consult page, which reads: I do however set aside time to do consultations and live audits.
My 2015 Request A Consult page offering "live audits," from the Wayback Machine, Nov 30, 2015.

I’m also signing up for Julia McCoy’s AI Labs today. Thank you, Julia, for the encouragement and for leading by example.

Chat card titled And Then This Article. On Wednesday, October 28, BG asks Moses to build the full article for his site first and an X Article that links back to it, with screenshots.
The ask on Wednesday, Oct 28 that turned into this article.

If you found this valuable, share it with someone who keeps putting off their own website.

Book a call