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.

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.

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

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.

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.

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.

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.

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

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.

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.

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



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.



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.

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.

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.

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

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