
Caboose Lake Campground – Custom CMS & Experience Design
Client: Caboose Lake Campground
Role: Brand & UX strategist
Deliverables: Custom CMS design, UX architecture, developer handoff
Team: Experience Designer (myself) + Full-Stack Developer Carlos Quiñonez
Role: Brand & UX strategist
Deliverables: Custom CMS design, UX architecture, developer handoff
Team: Experience Designer (myself) + Full-Stack Developer Carlos Quiñonez
Discovery & Strategy
I began by diving into the existing site structure and speaking with the campground's owner to understand their content pain points. It became immediately clear that WordPress had overwhelmed them in the past with too many settings, plugins, and unnecessary complexity. What they really needed was a clean interface that gave them control over:
- Basic pages like "About Us" or "Family Fun Zone"
- Rental descriptions with galleries
- Event posts they could add and remove throughout the year
- Contact information and links in the footer
- A simple, reorderable menu
Everything else—including the homepage, branding, and layout—would remain static.
I mapped out their entire site structure using a sitemap visualization to clarify content relationships and identify what could be editable via the CMS.


Content Modeling
With the structure clear, I worked with the developer to define the content model that would power the CMS. We chose a flat-file architecture (JSON-based), which would integrate cleanly with the static frontend and allow easy deploys via Vercel.
- The main content types were:
- Pages: Rich text with optional hero images
- Rentals: Title, body, gallery, reservation link
- Galleries: Standalone and linked image collections
- Events: Title, date, body, optional image
- Menu: Custom-defined JSON menu for global navigation
- Contact Info: Editable fields in the CMS that directly affected the footer
All of these were designed to reflect real, high-frequency content updates the campground staff needed to make on their own.

Interface Design
The CMS interface needed to be as intuitive as flipping through a physical campground brochure. I focused the UI on clarity and ease:
- A vertical sidebar for navigation, with clearly labeled categories (Pages, Rentals, Galleries, Events)
- A clean main panel with minimal distractions
- Direct WYSIWYG editing for page content
- Drag-and-drop support for menu organization and image galleries
Instead of cluttered dashboards, I designed a CMS that welcomed the client with a simple greeting, a list of quick actions (like “Add Event” or “Edit Contact Info”), and access to only the areas they needed.
Using Figma, I prototyped every major interaction. I then walked the client through the prototype in a feedback session to ensure it felt natural. Their response: “This finally makes sense.”









Developer Handoff
Once the UX and UI were validated, I created a developer handoff package that included:
- A structured content schema for each data type
- UI specs, spacing, and behaviors for the admin interface
- API routes and endpoints (for dynamic fetching if needed later)
- Static vs dynamic content guidance
- Recommended deployment flow: CMS writes JSON → triggers rebuild → frontend updates
The developer built the CMS using Node.js with a flat-file backend, which allowed the client to manage their site in real time, without ever touching code.

Launch & Client Onboarding
After development wrapped, I tested the CMS personally, simulating common content tasks (editing a rental, updating a gallery, reordering the menu). Once everything passed, I held a live training session with the client and delivered a short series of screen-recorded tutorials.
Since launch, the client has independently updated events, refreshed photo galleries, and even rewritten their About page—all without a single support request.
Outcome
The result is a fast, clean, and fully tailored content system that respects the simplicity of a static website while offering the flexibility the business needs.
Homepage stays static.
Content stays fresh.
Client stays in control.
Content stays fresh.
Client stays in control.
"This is exactly what I needed. I can finally make changes myself without breaking things."
— Client, Caboose Lake Campground
— Client, Caboose Lake Campground