How We Built Our Website in Days with Nimbalyst, Claude Code, and Cloudflare
We replaced our HubSpot marketing site with a custom Astro website built entirely inside Nimbalyst using Claude Code — in a few days, not months.
We used to run our marketing site on HubSpot. It worked, but we were always constrained by what their platform gave us. Locked-down templates, limited component options, theme constraints. We could only build what HubSpot had already coded for us.
With Nimbalyst and coding agents, our workflow is completely different. We write the text we want in markdown, edit the layout and components in Astro, describe the images we need in code comments, and use Claude Code and Codex sessions to create exactly the look and feel we’re after. No template constraints. No fighting the platform.
So we replaced HubSpot. We built nimbalyst.com from scratch using Nimbalyst, Claude Code, Astro, and Cloudflare Pages. It took days, not months.
Why We Left HubSpot
HubSpot is a great CRM. As a website platform for a company building AI tools, it had real limitations:
Rigid templates. Want a custom interactive component? A code block with syntax highlighting? An embedded demo video with theme-aware controls? You’re fighting the template system the whole way. Every custom element required workarounds or custom modules that were painful to build and brittle to maintain.
No agent access. Claude Code can’t edit a HubSpot page. The content lives behind a proprietary editor, not in files. There’s no repo to clone, no markdown to edit, no components to refactor. Your coding agent is locked out of your most visible asset.
Expensive for what you get. HubSpot’s CMS pricing is based on tiers and seats. We were paying for a visual editor we no longer needed, gated features we didn’t use, and a platform that couldn’t keep up with how fast we wanted to move.
Design constraints. Responsive layouts, dark mode, custom animations, fine-tuned typography — everything required compromise or custom code injected into a system that wasn’t designed for it.
Our New Stack
- Astro — Static site generator, zero JavaScript by default, markdown-native.
- Tailwind CSS — Utility-first styling with built-in dark mode.
- Cloudflare Pages — Deploy on push to
main. Preview URLs for every branch. Essentially free at our scale. - Nimbalyst + Claude Code — Where we actually built everything.
How We Built It
We started with our existing HubSpot site as a reference. A design company mocked up the core look and feel: brand colors, typography, layout patterns, dark mode treatment. That gave us the visual foundation.
From there, we pointed Claude Code and Codex at the existing HubSpot pages and ported them one by one into the new design. Not a copy-paste migration. A rebuild based on a new design system, using the old site as a content reference.
Day 1: Scaffolding and core pages
We set up an Astro project with Tailwind, dark mode support, and a component structure matching the design mockups. Claude Code scaffolded the project, configured Tailwind with our brand colors, and created the base layout with header, footer, and theme toggle.
Then we went page by page. For each existing HubSpot page, we described the content and the new design direction. Claude Code built the components, styles, and YAML data files. We reviewed everything in Nimbalyst, iterated on copy and layout, and moved on.
Day 2: Content system and blog
Astro content collections for blog posts and a dev blog. Markdown files with frontmatter, tag filtering, Pagefind search, RSS feeds. Claude Code built the listing pages, post layouts, and prev/next navigation — all from natural language descriptions.
We also built the download page with OS detection, the changelog page, and the contact form.
Day 3: Polish and deploy
Dark mode testing across every page. Responsive layouts on mobile. Screenshot components that swap light/dark images based on the active theme. SEO meta tags, Open Graph images, analytics.
Push to main, Cloudflare Pages deploys it. The site was live.
Why It Worked
Everything is code
Every page is an .astro file. Every piece of copy is in a YAML file. Every blog post is markdown. No proprietary format, no locked-in editor, no content trapped behind an API.
Claude Code has full access to everything. It can refactor a component across every page, update copy site-wide by editing a YAML file, or add a new blog post by creating a markdown file with the right frontmatter. The entire site is in a git repo — version-controlled, reviewable, deployable.
Custom components are trivial
Need an FAQ accordion? Describe it. A smart download button that detects the user’s OS? Describe it. A screenshot component that swaps images for light and dark mode? Describe it.
On HubSpot, each of these would have been a custom module with its own editor UI, settings panel, and quirks. Here, they’re Astro components — small, composable, and editable by both humans and agents.
Usage-based costs instead of platform fees
Cloudflare Pages is free for our traffic. We pay for Claude Code usage when we’re actively building. When we’re not changing the site, the cost is zero. Compare that to a monthly HubSpot CMS fee whether you touch the site that month or not.
We can embed anything
Product demo videos, interactive code blocks, Mermaid diagrams, custom animations — if it’s HTML, it works. No module marketplace, no “upgrade to Enterprise for custom code.”
Our product screenshots are components that respond to the user’s theme preference. Try doing that in a drag-and-drop editor.
Why We Build Inside Nimbalyst
You can run Claude Code in a terminal and get great results. But building a website — where you’re constantly reviewing layouts, tweaking copy, checking dark mode — the terminal alone isn’t enough. Here’s what Nimbalyst adds.
Visual review in the same workspace
When Claude Code edits a component, we see a side-by-side diff with syntax highlighting — not raw text scrolling past in a terminal. When it writes markdown, we see the rendered formatting. When it modifies a layout, we can preview it. We stay in one place, catch problems faster, and iterate tighter.
Mockups and fast iteration
Before writing any code, we mock things up. Nimbalyst’s MockupLM lets us create quick visual mockups in .mockup.html files, then iterate on them with the agent. “Make the hero section taller.” “Move the CTA above the fold.” “Try a two-column layout for the features.” Each iteration renders instantly. Once the mockup looks right, we tell the agent to build it for real in Astro. The mockup becomes the spec.
For the live site, the loop is just as fast. Describe what we want. The agent builds it. We see the result in diffs and rendered previews. Give feedback. It revises. In a terminal, “look at the result” means switching to a browser, refreshing, scrolling around, then switching back to type feedback. In Nimbalyst, review happens in the same workspace. Do that hundreds of times across a multi-page site build and the time savings compound.
Parallel sessions
We ran multiple Claude Code sessions simultaneously — one on the blog system, another on the feature page, another on the download page. Nimbalyst manages these sessions so we can jump between them, see what each one touched, and keep them isolated. In a terminal, parallel sessions means separate tabs with no overview of what’s happening across them.
Docs and code as equals
Our site copy lives in YAML files. Blog posts are markdown. Page templates are Astro components. Nimbalyst renders all of them with full formatting — YAML with structure, markdown with preview, code with syntax highlighting. Claude Code reads and writes all of them. The workspace treats documentation and code as equals, which is exactly what a website project needs.
Full transparency into agent work
When Claude Code reads a file, Nimbalyst shows us which files it accessed. When it proposes edits, we see exactly what changed. When it runs a build, we see the output. Full transparency into what the agent is doing builds confidence when you’re letting it change dozens of files.
Visual annotation
When a layout isn’t quite right, we don’t describe the problem in words. We annotate screenshots, highlight specific areas, and point to exactly what needs to change. “Move this section up” is faster and less ambiguous when you can literally point at it. For a visual project like a marketing website, this matters more than you’d think.
What We’d Tell Other Teams
If your marketing site is on a CMS because you didn’t want to write code, reconsider that assumption. The reason you chose a visual editor — avoiding the complexity of hand-coding HTML — no longer applies when a coding agent writes production-quality code from descriptions.
You don’t need to be a developer. You need to be able to describe what you want and review what you get. That’s the skill set for building a website in 2026.
The visual editor was a bridge between “I know what I want” and “I can’t write the code.” Coding agents removed the gap. The bridge is now a wall — it constrains what you can build, locks out the most capable tools available, and costs more than the alternative.
We built nimbalyst.com in days. It’s faster, more flexible, cheaper to run, and fully accessible to our AI tools. We’re not going back.