# iPro.golf: the golf course & resort marketing agency lander — not iLeague, not iTour

Source: https://www.michaelchurley.com/blog/ipro-golf-agency-lander-ecosystem-hub  
Published: 2026-06-22  
Author: Michael C. Hurley  
Tags: ipro, ipro-golf, golf-marketing, agency, golf-course, resort, country-club, ecosystem-hub, ileague, itour, iconference, nextjs, vercel, shadcn, hurleyus

![iPro.golf agency homepage mock: hero, ecosystem chips, services](/blog/ipro-golf-agency-lander-ecosystem-hub/screenshots/home.png)

## Who

I ship golf products that look like one brand family and are three different businesses. [iLeague.golf](https://ileague.golf) is the creator platform: scorecards, subscriptions, tips, fifteen percent fee. That pack already exists: `ileague-golf-patreon-meets-18birdies`. [iTour.golf](https://www.itour.golf) is the national creator-tour lander: sponsors, host bids, season schema, packed as `itour-golf-tour-lander-ahead-of-deploy`.

iPro.golf is the **agency**. Country clubs, courses, resorts. Retainers. Case-study theater. A brochure that also hubs the ecosystem.

If you care about multi-domain Vercel rewrites, agency landers that declare Stripe/Clerk/Convex and never wire them, or how to keep the creator-SaaS story off a URL that says "Pro": this is the field notes.

## What

I keep the live marketing site for the agency under `HurleyUS/iPro-main-web`.

README one-liner: connective tissue between influencers and golf courses, country clubs, resorts, and growing golf communities. Layout title that also wins on curl: **iPro.golf | Golf Course & Resort Marketing Agency**. Badge on the hero: the same phrase. H1: **iPro.golf**.

Stack on the box: **Next.js 16.2**, **React 19**, Tailwind v4, Geist, a full shadcn/Radix tree, Bun lockfile, Vercel. Package name **web**, version **0.1.0**. Repo private. Site public at [www.ipro.golf](https://www.ipro.golf) (apex 308s to www). Ten commits. HEAD `b8dfdba`.

![Retainer pricing mock: Starter / Growth / Premium](/blog/ipro-golf-agency-lander-ecosystem-hub/screenshots/services-pricing.png)

Agency retainers on the home page (this is the services brochure, separate from the creator billing product and the tour season product):

1. **Starter** $1,997/mo (refresh, social setup, GBP, reporting)
2. **Growth** $4,997/mo (most popular: full social, email, content, paid, strategy)
3. **Premium** $9,997+/mo (video, influencer campaigns, events, member acquisition, dedicated team)

Services grid: Brand Design, Web Development, Social Media, Local SEO, Email Marketing, Video Production. CTAs go to `/contact` and `/case-studies`.

What is also true on pack day:

- **Live www title matches HEAD**, unlike the iTour pack where production still serves a fake 2026 season shell.
- `layout.tsx` points Open Graph at `/og-image.png`. That file is missing from `public/`. curl returns **404**.
- Contact `handleSubmit` is a one-second `setTimeout` with a TODO for Resend. Phone is **(555) GOLF-PRO**. Email `hello@ipro.golf`.
- Case studies (Highland Links, Coastal Resort & Spa, Valley Municipal) are fiction. Feb 9 AUTOPSY said the quiet part out loud; home metrics later sit at 50+ / 35% / 2.5x / $1.8M instead of the autopsy's 120+ / 47% / $2.4M.
- `package.json` still lists Clerk, Stripe, Convex, PostHog, Resend, react-email. Fallow REVIEW: unused. No `convex/` tree. No `app/api`. Layout has no Clerk provider.
- `/ileague`, `/itour`, `/iconf` on this repo are **Coming Soon / waitlist shells**. The real products are separate repos and separate packs.
- Agency `/itour` copy still says **National Amateur Golf Tour** and a 2026 regional event grid. That fights the packed iTour creator-tour / May 2027 story. Call the conflict; do not merge the posts.
- Private vault `michaelmonetized/iPro` is already **SKIP**: logos, planning markdown, gitlink into this app. Do not retell it here.

![Ecosystem differentiation: agency vs creator SaaS vs tour vs summit](/blog/ipro-golf-agency-lander-ecosystem-hub/screenshots/ecosystem-diff.png)

## Where

It runs on Vercel as a prerendered marketing site (`x-nextjs-prerender: 1` on the 2026-09-08 probe). Dark theme, fixed header, footer with Services / Ecosystem / Company columns.

Surfaces that matter:

- Public agency pages: home, about, services, case studies, contact, blog listing, privacy, terms
- Ecosystem brochure pages: `/ileague` Coming Soon, `/itour` Coming 2026, `/iconf` Fall 2026
- `proxy.ts`: if host is `iconference.golf` or `www.iconference.golf` and path is `/`, rewrite to `/iconf`. Live iconference.golf returns **200** with `x-matched-path: /iconf`
- shadcn kit under `components/ui/*`: mostly unused; used pieces are Button, Sheet, form controls on contact

Live HTML on pack day did not need Clerk keys to render. There is no auth wall on the agency brochure.

![Honesty board: live wins vs remaining gaps](/blog/ipro-golf-agency-lander-ecosystem-hub/screenshots/honesty-board.png)

Related domains: **iPro.golf** (emerald agency, this pack), **iLeague.golf** (creator platform, packed), **iTour.golf** (tour, packed), **iConference.golf** (summit shell rewritten onto this project). Vault sibling SKIPPED.

## When

**November 24, 2025.** Create Next App. Init thrash. Empty license. Another init. The repo exists before the golf pitch is real.

**February 5, 2026.** `chore: prod deploy`: first push toward something live.

**February 9.** The meaningful day. `feat: Complete site rebuild with pages, navigation, and proper structure`: the App Router surface that still matches www. Same day: AUTOPSY updated with GoDaddy DNS instructions and a brutal inventory of placeholders. DNS later got fixed; the autopsy file did not get a matching rewrite.

**May 21.** `Fix iConference domain deployment`. CHANGELOG: production routing for iconference.golf onto the iPro Vercel project + UI compatibility so the Next production build passes. `proxy.ts` is the host rewrite.

**June 22.** Two `nightly` commits. HEAD `b8dfdba`. Package deps float forward; the brochure story does not.

## Why

The ecosystem needs a front door that sells **services to properties** without pretending it is the creator SaaS or the tour.

Operators reading three golf posts in a row deserve a clean split: agency retainers here, Patreon x 18Birdies there, sponsor/host season over there.

A domain rewrite for iconference.golf onto `/iconf` is a real ops story. A Coming Soon waitlist is still not shipping iConference.

The vault repo will keep tempting people to package logos as a product. Ship the app; leave the logo vault alone.

**Engagement Q:** When the agency lander links to Coming Soon ecosystem shells that already have live product domains elsewhere, do you keep the hub honest as a brochure, or do you outbound-link straight to the real products and delete the shells?
