goulahai.com

Articles · Published · By Aron

How I Set Up a Grok Bot to Run My Website, Step by Step

I'm a content creator and AI strategist. I've been making content for my own brands for about 9 years, and I've studied AI deeply and where it's going. I don't just talk about AI bots: I use them to build and run my own websites.

My first bot is a Grok Bot I named Node. It runs anhonestnode.com, my bitcoin site. Node built a wallet safety checker for the site, writes 3 articles a week, and sends me a report every Monday. This site, goulahai.com, is built the same way. Here's the setup, step by step.

1. One site, one GitHub repo

Each site lives in its own repository. The bot only works inside that one repo, so anything it does stays in one place where I can review it.

2. One fine-grained token that expires in 30 days

I never give a bot access to my whole GitHub. It gets one repo and one fine-grained personal access token that only works on that repo, and the token expires in 30 days. I don't paste it into the chat. I put it in the bot's Secrets box, and the bot reads it as a private environment variable. Full details in How to Give an AI Bot Access to Only One GitHub Repo.

3. Write the rules before the bot writes anything

The repo has rules files: CONTENT_RULES.md (what the bot may and may not say or do), AGENTS.md (repo layout, build commands, git author, pull requests and merge rules), and a file with the only personal facts about me it's allowed to use. See The Rules File That Keeps My AI Bot From Wrecking My Site.

4. A simple static stack on Netlify

This site is built with Astro as plain static files and hosted on Netlify. A netlify.toml file in the repo tells Netlify what to run and where the output goes:

[build]
  command = "npm run build"
  publish = "dist"

Netlify docs: File-based configuration.

5. The first wall: "unrecognized Git contributor"

Netlify blocked the bot's first builds with an "unrecognized Git contributor" error. Netlify didn't know who was pushing. The fix was two parts:

Netlify docs: Roles and permissions (Git Contributors), User settings (connected Git accounts), and Repository permissions and linking.

6. The bot works on a branch and opens a pull request

The bot never pushes straight to the live site. It creates a new branch, commits, pushes, and opens a pull request. Netlify builds a Deploy Preview of each pull request so I can see the changes before they go live.

7. I review, because it matters

Once, the bot skipped adding sources I had asked for. I caught it because I review its pull requests. That's why I keep merge rules: the bot may merge its own pull request only if it's small and low-risk (wording, typos, removals, SEO tweaks) and the Netlify preview passes. Anything that adds pages, changes prices, payment links, emails, or data collection waits for me.

8. Email signup without another account

The signup form uses Netlify Forms with a hidden honeypot field to catch spam bots, so I didn't need to sign up for an email service to get started.

The short version