A marketing site, booking platform, and MCP server for Dallas Sport Collective, a six-trainer gym in North Texas. An athlete can book from whichever AI they already use, and the owner approves with a tap.

Preview · 9 frames
Web Design · Product Design · AI Integration · Next.js
The Dallas Sport Collective marketing site open on a laptop resting on a wooden stool

Enterprise plumbing for a gym with six trainers

2Join the

So the first build was the front door. Athletes create their own accounts, sign the waiver on the way in, and the owner assigns each new member to a trainer before anyone books a session.

Athlete login and registration. A hundred-plus people moving off text threads and a spreadsheet and onto one roster the software can work with.

The Dallas Sport Collective marketing site open on a laptop, on concrete
The marketing site
DSC athlete login screen, Unlock Your Peak
LoginUnlock Your Peak
DSC registration form, Join the Collective
Registration
The DSC scheduler open on a phone, resting on concrete
3From your AI

Book a session from your own AI.

An athlete never has to open the app. They ask whichever AI they already use, and it reads their real schedule and can put in a session request.

Eleven tools cover the gym overview, the program list, trainer profiles and availability, the athlete's own sessions and pending requests, slot suggestions, booking requests, and cancellations. Reads come back instantly, and a write only ever creates a pending request the owner has to approve. Connecting runs through an OAuth consent screen with short-lived, rotating tokens, and access revokes from the dashboard in one tap.

DSC in-app connect screen with the MCP server URL and live connection status
OAuth consent screen, Claude wants to connect, listing granted permissions
Claude listing every DSC trainer and their specialties through the connected tools
Claude listing Scott's real availability for the week through the DSC tools
Claude confirming a booking request, pending the trainer's approval
The MCP system3 clients · 11 tools · 5 checks · 6 records
3AI CLIENTSCLAUDECHATGPTMCP CLIENTS9READSgym_overviewlist_serviceslist_trainerstrainer_biomy_trainermy_trainer_availabilitymy_sessionsmy_pending_requestssuggest_slots2WRITESPENDING APPROVALrequest_sessioncancel_session5CHECKSAVAILABILITYCONFLICTSCAPACITYDURATIONCANCELLATION6DATA MODELATHLETES · 100+TRAINERS · 6PROGRAMSSESSIONSHOURSLOCATIONS · 2

The athlete asks their own AI, and the AI asks the gym

4What Athletes

Then the activity around it, the full trainer roster and the program menu. The same trainer data feeds the MCP server, so a connected AI describes a coach from the actual record.

Dashboard, trainer bios, and the program list. Each trainer expands to specialties and certifications. The programs run from strength and speed work to onsite physical therapy, prenatal fitness, and Combine prep.

DSC athlete dashboard showing the next session and recent activity
DashboardNext session
DSC athlete app trainer bio for the founder and head trainer
Trainer bio
DSC athlete app program and services list
Programs
DSC calendar open on a phone resting on concrete
5Run It From

Managing a packed week from a phone, between sessions.

The queue where every request lands, a week calendar with the session count per day, and a member list flagging waiver and trainer-assignment status.

The owner can say a whole week out loud: schedule Marcus with Scott every Monday, Wednesday, and Friday at 3pm for a month. The scheduler proposes the batch, accepts the ten clean slots, flags the three it skipped for conflicts, and waits for a "commit" before a single session lands.

However a booking comes in, it goes through the same checks

DSC owner home with booking requests and new registrations
DSC owner calendar week view with sessions per day
DSC owner athlete list with waiver and trainer-assignment status
DSC owner scheduler chat running a batch booking, ten accepted and three conflicts skipped
The DSC marketing site open on a phone, resting on concrete

A palette with no color in it, one type family doing all the work, photography shot on the actual gym floor, and the same kit at every size.

Pure black for type and structure, pure white for the ground, and a short ramp of greys for everything between. No accent color, because the photography and the weight of the type bring all the contrast the brand needs. Type is mostly one family. Avenir Next runs the brand voice: Heavy for the wordmark and section heads, Demi Bold for subheads and CTAs, Medium for the body. A monospace sits underneath for the technical labels, the MCP URLs and session times.

MarkMark: The markThe markMaterials: Paired studyPaired study
TypefaceDALLAS SPORTDALLAS SPORTWordmark & headlines
Palette
100+
AthletesUp from a handful
11
MCP toolsSchedule, trainers, booking
6
TrainersOne shared calendar
2
TX locationsFrisco HQ on the way
6Live at

Texts and notes and a spreadsheet.

The platform is live at both locations. Athletes sign in and book, the owner approves from a queue or schedules a month in one batch, and a connected AI reads the schedule as it actually is.

Services
Web Design
Product Design
AI Integration
Full-Stack Engineering
Stack
Next.js
Vercel
Model Context Protocol
OAuth 2.0
Claude + ChatGPT

That’s the study. Keep going and the work is back.