My stack in one picture (Grok, Cursor, Cloud, GitHub)
modern problem solving
TL;DR — Grok Heavy for live research. Cursor Pro on my laptop. GitHub holds the repo (
origin). Cursor Cloud Agent ships from my phone. GoDaddy owns the domain names and DNS; OVH runs the webserver (nginx → pm2 → Next.js). The big monthly lines for me are Grok + Cursor, not Vercel.
This post is for a short collab later — something I can screen-share without reading twelve paragraphs. Pictures first, words second.
If you have not picked why you need any of this yet, start at You dont need another tool. If you want tool-by-tool depth, Which tool when is the honest split between Cursor, Claude, and Grok.
The whole thing (one diagram)
┌─────────────────────────────────────────────────────────────────────────┐
│ YOU (phone or laptop) │
└───────────────┬───────────────────────────────┬─────────────────────────┘
│ │
research / drafts code + deploy
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ GROK (grok) │ │ CURSOR │
│ live search │ │ desktop IDE │
│ + quick take │ │ Agent / diff │
└───────┬───────┘ └───────┬───────┘
│ │
│ paste facts into │ push branch
│ Cursor / notes │
│ ▼
│ ┌───────────────┐
│ │ GITHUB │
│ │ rdeeds/mike │
│ │ origin remote │
│ └───────┬───────┘
│ │
│ PR + merge │
│ │
│ ┌───────▼───────┐
│ │ CURSOR CLOUD │
│ │ AGENT │
│ │ VM + secrets │
│ └───────┬───────┘
│ │
│ ./scripts/deploy-*.sh
│ │
│ ▼
│ ┌───────────────┐
│ │ GODADDY │
│ │ domains + DNS │
│ │ A → OVH IP │
│ └───────┬───────┘
│ │
│ ▼
│ ┌───────────────┐
└──────────────────────►│ OVH VPS │
copy / link citations │ WEBSERVER │
│ nginx :443 │
│ pm2 → :3008… │
│ MongoDB local │
│ postfix mail │
└───────┬───────┘
│
solvesmyproblem.com :3008 │ arbrostrees.com :3003
sennoutdoorservices.com │ (+ other vhosts)
▼
visitors / users
Read it left to right: Grok is upstream research. Cursor is where files change. GitHub is the handoff point everyone trusts. Cloud Agent is Cursor without me at the desk. GoDaddy is where the domain names live and DNS points at the box. OVH is the webserver that actually serves HTTPS.
Monthly cost (what I actually pay)
These are my numbers as of Sep 2026 — not list prices for everyone. AI subs dominate the bill.
| Layer | What it is | $/mo | Notes |
|---|---|---|---|
| Grok Heavy | Live search + high usage tier | $300 | My heaviest subscription. Research, drafts, current facts — not repo edits. |
| Cursor Pro | Desktop IDE + models + Cloud Agent | $200 | Includes the async Cloud Agent VM workflow from phone / web. |
| OVH VPS | Linux webserver 15.235.118.142 |
~$15–40 | One box — nginx, pm2, MongoDB, postfix. Many sites share it. |
| GoDaddy domains | .com registrations |
~$1–2 each | Amortized monthly (solvesmyproblem.com, arbrostrees.com, client names, aliases). |
| GoDaddy DNS | A/CNAME/MX/TXT records | $0 | Included with domain; API keys in Cursor Cloud for SPF/DKIM/DMARC scripts. |
| GitHub | Private repo, PRs | $0–4 | rdeeds/mike monorepo — personal tier is enough for me. |
| nginx + certbot | Reverse proxy + HTTPS | $0 | On the OVH box. Configs live in repo under deploy/nginx/. |
| MongoDB (self-host) | App data on same VPS | $0 | No Atlas bill — arbos, solves dbs on localhost. |
| Let's Encrypt | SSL certs | $0 | Auto-renew via certbot. |
| postfix + OpenDKIM | Outbound email | $0 | Self-hosted on OVH; DNS auth records at GoDaddy. |
Totals (napkin math)
| Bucket | $/mo |
|---|---|
| AI (Grok Heavy + Cursor Pro) | $500 |
| OVH webserver | ~$15–40 |
| GoDaddy (domains, ~10 names guess) | ~$10–20 |
| Everything else above | ~$0–4 |
| Rough total | ~$525–565/mo |
The story for a collab: I spend more on Grok + Cursor than on hosting. The OVH + GoDaddy layer is cheap because I run nginx myself instead of paying per-site SaaS hosting.
What I do not pay for in this stack:
- Vercel / Netlify / managed Node hosting (nginx → pm2 on OVH instead)
- MongoDB Atlas (self-hosted on the same box)
- Separate email SaaS for client sites (postfix + GoDaddy DNS when needed)
- Documenso / DocuSign (custom sign flow in Next.js where needed)
Box 1 — Grok (research bot)
Question with a date on it Grok searches live
─────────────────────────► ┌─────────────────────┐
"What changed in Aug 2026?" │ grok.com / X app │
│ links + short take │
└──────────┬──────────┘
│
▼
I paste the *link* into Cursor
or a note — not the whole thread
Job: fees, policy pages, "what shipped this month," two public options compared.
My tier: Grok Heavy — $300/mo. Worth it to me because stale training-data answers cost more time than the subscription.
Not its job: editing twelve files in solves/ or deploying nginx. That is Cursor.
Series if you want the habit: Getting started with Grok → Keep the thread.
Box 2 — Cursor desktop (files on disk)
repo on laptop Cursor Agent (Cmd+I)
┌──────────────┐ ┌──────────────────┐
│ src/ │ ──────────► │ search + edit │
│ package.json │ │ terminal + diff │
└──────────────┘ └────────┬─────────┘
│
▼
git commit → push to GitHub
Job: anything that already lives in a folder — Next.js sites, deploy scripts, Mongo stores.
My tier: Cursor Pro — $200/mo (includes Cloud Agent access from phone / web).
Rule I repeat: one real problem, one folder, read the diff. Night-one guide: Getting started with Cursor.
Box 3 — GitHub (origin)
Git calls the default remote origin. Mine points at github.com/rdeeds/mike — a monorepo with sibling apps:
mike/
├── solves/ → solvesmyproblem.com
├── web/ → arbrostrees.com (Arbros)
├── connor/web/ → sennoutdoorservices.com
├── scripts/ → deploy-*.sh, OVH SSH helpers
└── .cursor/ → Cloud Agent environment
Job: source of truth, branches, pull requests, "what shipped."
I do not treat Grok chats or Cursor threads as the archive. GitHub is.
Box 4 — Cursor Cloud Agent (phone → PR → deploy)
Phone: "fix the header, deploy Solves"
│
▼
┌────────────────────────────┐
│ Cursor Cloud VM │
│ - clones GitHub branch │
│ - edits + commits │
│ - opens / updates PR │
└─────────────┬──────────────┘
│ Runtime Secrets (not in git):
│ OVH_SSH_PRIVATE_KEY, GODADDY_*
▼
./scripts/deploy-solves.sh
│
▼
OVH pm2 reload :3008
Configured once at cursor.com → Cloud Agents → Secrets. The repo's .cursor/environment.json runs setup on build so the agent can SSH.
Job: async work when I am not at the desk — collab prep, copy tweaks, "ship it."
Cost angle: Cloud Agent ships PRs and runs ./scripts/deploy-*.sh — included in my $200/mo Cursor Pro line, not a separate hosting bill.
Box 5 — GoDaddy (domains + DNS)
GoDaddy is not where the code runs. It is where the names live and where the internet learns which IP to hit.
Browser types solvesmyproblem.com
│
▼
┌─────────────────────────┐
│ GoDaddy DNS │
│ A record → 15.235.118.142
│ MX / SPF / DKIM / DMARC │ (email auth for client sites)
└────────────┬────────────┘
│
▼
OVH nginx :443
What I store at GoDaddy:
- Domain registrations (
solvesmyproblem.com,getsolves.com,ssolves.com,arbrostrees.com, client domains, …) - A records pointing at the OVH VPS IP
- Email DNS (SPF, DKIM, DMARC) for sites that send mail from the box
API keys (GODADDY_KEY, GODADDY_SECRET) live in Cursor Cloud secrets — same pattern as the SSH key. Scripts like setup-godaddy-dns.sh push records without clicking through the GoDaddy UI.
Cost: registration renewals only (~$12–20/yr per .com, ~$1–2/mo amortized). DNS management is included.
Box 6 — OVH webserver (nginx + pm2 + friends)
This is the physical (virtual) machine. Everything public hits nginx first, then a pm2 Node process on localhost.
HTTPS request
│
▼
┌──────────── nginx :443 ────────────┐
│ TLS (Let's Encrypt / certbot) │
│ vhost per domain │
│ proxy_pass → 127.0.0.1:PORT │
└──────────────┬────────────────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
pm2 :3008 pm2 :3003 pm2 :3006
Solves Arbros Senn
│ │ │
└───────────┴───────────┘
│
MongoDB (localhost)
postfix (outbound mail)
One machine, many nginx vhosts, pm2 processes on different ports:
| Site | pm2 name | Port |
|---|---|---|
| solvesmyproblem.com | solvesmyproblem |
3008 |
| arbrostrees.com | arbrostress |
3003 |
| sennoutdoorservices.com | sennoutdoor |
3006 |
Deploy pattern (every app):
laptop or cloud agent
│
▼
rsync / tar → /home/ubuntu/.../web
│
▼
npm ci && npm run build
│
▼
pm2 startOrReload ecosystem.config.cjs
Why I still do this: predictable ~$15–40/mo server bill, I own the stack, five+ sites share RAM. Tradeoff: I am on the hook for nginx configs (deploy/nginx/), cert renewals, and pm2 save after reboots.
Nginx snippet (Solves): port 443 terminates TLS, proxies to pm2 on 3008:
location / {
proxy_pass http://127.0.0.1:3008;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
Configs are in the repo; copy to /etc/nginx/sites-available/ on the box when a vhost changes.
Collab cheat sheet (30 seconds)
| If the question is… | Open… |
|---|---|
| "What does United charge this month?" | Grok Heavy ($300/mo tier) |
| "Fix the login in our Next app" | Cursor Pro + GitHub |
| "Can you ship that while I'm driving?" | Cursor Cloud → PR → deploy script |
| "Where is prod?" | OVH — pm2 list, nginx logs |
| "Why doesn't the domain resolve?" | GoDaddy DNS — A record → 15.235.118.142 |
| "Where is the code?" | GitHub (origin) |
What I would tell someone copying this
- Start with one repo and one site — do not copy my five-vhost zoo on day one.
- GitHub before fancy hosting — if
originis messy, Cloud Agent will be messy too. - Secrets live in Cursor Cloud, not git — SSH keys never commit; deploy scripts read runtime env.
- Grok is upstream, Cursor is downstream — research in Grok, implementation in Cursor, archive in GitHub.
- Draw the diagram on a whiteboard — if you cannot sketch the arrows, you have too many tools.
Related: Which tool when · Getting started with Cursor · Getting started with Grok · Week one mistakes
Last updated Sep 3, 2026. My line items: Grok Heavy $300/mo, Cursor Pro $200/mo — re-check OVH and GoDaddy renewals before you quote hosting.