The brief
Small professional services firm. Needed a clean marketing site: homepage, services section with individual service pages, about page, a blog, and a contact form. Timeline: tight. Budget: fixed. The kind of project where the question isn't whether you can build it — it's whether you can build it without spending three days on project scaffolding before writing a single line of content-specific code.
This is what that afternoon looked like.
One command to start
The cms-cli is the entry point. One command creates the local workspace and starts the file watcher:
npx @sleekcms/cli --token YOUR_AUTH_TOKEN
On first run, the workspace appears with three files before you've written anything:
my-site/
├── CLAUDE.md
├── AGENT.md
└── .vscode/
└── copilot-instructions.md
These context files are the key. CLAUDE.md for Claude and Claude Code. AGENT.md for GitHub Copilot in agent mode. .vscode/copilot-instructions.md for GitHub Copilot in VS Code. Each contains the complete SleekCMS site-building reference — file naming conventions, model syntax, template helpers, field types, content format.
Open the workspace in Cursor (or VS Code with Copilot, or Claude Code). The AI already knows how to build a SleekCMS site. No setup prompt, no pasting documentation.
The prompt
We kept it realistic — not a paragraph of precise technical specification, but the kind of description you'd give a developer on a call:
Build a professional services marketing site with:
- A homepage with a hero section, services overview, client logos, and a contact CTA
- A services page listing all services, and individual service detail pages
- An about page
- A blog with individual post pages
- A shared header and footer
- A contact form
- Tailwind CSS styling
- SEO meta tags on every page
What the AI generated
The output was a complete set of working files:
models/pages/_index.model
models/pages/services.model
models/pages/services[].model
models/pages/about.model
models/pages/blog[].model
models/pages/contact.model
models/entries/header.model
models/entries/footer.model
models/blocks/hero.model
models/blocks/services-grid.model
models/blocks/client-logos.model
models/blocks/seo.model
pages/_index.ejs
pages/services.ejs
pages/services[].ejs
pages/about.ejs
pages/blog[].ejs
pages/contact.ejs
entries/header.ejs
entries/footer.ejs
blocks/hero.ejs
blocks/services-grid.ejs
blocks/client-logos.ejs
blocks/seo.ejs
layouts/main.ejs
css/tailwind.css
content/pages/_index.json
content/pages/about.json
content/entries/header.json
content/entries/footer.json
The file watcher was picking up files as they landed. By the time the AI finished generating, the SleekCMS dashboard was showing a navigable preview of the site.
What the watcher did
Every save triggers the sync loop:
file saved → watcher detects change → classified (model/template/content/CSS)
→ pushed to SleekCMS API in dependency order → site rebuilt → preview updated
The watcher batches rapid edits. Models push before templates; templates push before content. The local .cache/ folder tracks what the server already has — only real diffs go up. The site was visible and navigable in the dashboard before the AI session ended.
This is the part that changes the workflow most meaningfully. There's no "deploy step" to think about. Save, and the preview updates.
What still needed human attention
This is the most important section, because an account that glosses over the human work isn't credible — and isn't useful.
Real content. The AI seeded placeholder content. Every field needed the client's actual copy, imagery, and brand language. This is most of the real work in any content-site project, and it was no different here.
Brand colours and typography. The generated Tailwind config used a generic palette. Switching to the client's brand colours took about 20 minutes — update the color tokens, review each component, adjust where the defaults didn't translate.
Logo and imagery. Uploaded to SleekCMS and referenced in the content JSON files. The image shortcut syntax was useful for placeholder images during the review session ("pexels:professional services office team"). Swapping them for real assets was straightforward.
Contact form field specifics. The AI generated a standard name/email/message form. The client wanted a dropdown for service type and a budget range field. Two minutes to add those fields to the model and update the template.
SEO copy. The AI generated placeholder meta descriptions. Each page needed a real one — the kind that requires knowing the client's positioning, not just the page content.
Review and iteration. The first pass wasn't the final pass. Several layout decisions needed adjustment after review with the client. This is normal. The structural work being done accelerated this iteration, not eliminated it.
The files are plain
Every file the AI generated is a plain text file — editable in any editor, readable without tooling:
- EJS templates: open any
.ejsfile, change any line, save, sync - Model files: add a field to the JSON-like schema, save, the dashboard reflects it
- Content JSON: edit values directly without touching the CMS dashboard
The AI context files persist in the workspace. A month later, opening the project in Cursor and asking it to add a team page, refactor the blog layout, or generate draft content for ten new service pages works immediately — the AI reads CLAUDE.md or AGENT.md and already understands the site structure.
There is no lock-in at the file level. The models, templates, and content are files.
Deploy
From the SleekCMS dashboard: connect to Netlify, point the custom domain. Done. No repository to push. No CI pipeline to configure. The site was live on the client's domain by end of the same session.
Honest assessment
Where this saved significant time: Scaffolding. Setting up models, creating the file structure, writing boilerplate templates, wiring layouts — this is the work that takes a few hours when done manually and that every project repeats. The AI handled it in minutes.
Where judgment was still required: Content strategy, brand decisions, copy, iteration on layout and visual design. These aren't things a structural scaffold can replace.
What this workflow is not: A replacement for design thinking, content strategy, or client communication. It's a scaffold accelerator that moves you from blank workspace to working structure faster — so you can spend time on the decisions that actually matter.
The afternoon wasn't magic. It was a faster version of the same work: models, templates, content, deploy. The AI handled the structural parts; the human handled the parts that required judgment. That's a reasonable division of labour.
The cms-cli is worth trying on your next client project, if only to see how much of the setup work you were doing manually that doesn't have to be manual.