Cub River Kratom
LiveA local-SEO website build for a Cache Valley retail client
Built by Caden Sorenson · Launched May 2026
The project
Cub River is a retail business serving the Cache Valley area, from Logan and Smithfield in Utah up into southern Idaho. The site needed to do the core job of a local retail website: make it obvious where the business is, when it is open, and how to reach it, fast and mobile-first, with clean structured data so it can rank for nearby searches. The client is an age-restricted retailer, so the site also had to handle age verification from the first screen.
The build
This is a custom Astro 5 static site, built in code with Claude in Claude Code. No framework, no headless CMS, no server. The whole thing renders to static files and deploys behind a CDN.
Key technical decisions:
- Single source of truth for business data. One data file holds the core business details: name, address, geo coordinates, phone, hours, and area served. Every page and the structured data read from it, so those details can never drift between the visible page and the JSON-LD, and there is exactly one place to update.
- Structured data for local search. That same file feeds the local-business, FAQ, and rating schema, giving Google and answer engines a machine-readable version of the client’s core information.
- Programmatic nearby-city pages. A dynamic route generates dedicated landing pages for nearby towns like Logan, Smithfield, Richmond, and Preston, each with unique copy, drive times, and directions, so the local-SEO pages avoid thin, doorway-style content.
- An age gate. An age-verification gate the client needed as an age-restricted retailer, handled from the first screen.
- No contact form, by design. The business runs on calls and walk-ins, so the site leads with a tap-to-call number, hours, and directions rather than a form nobody would watch.
- Static deploy with a sitemap. Compressed HTML, optimized images, and an auto-generated sitemap, served as static files with no backend to maintain.
Results
The client got a fast, accurate, mobile-first site with clean structured data, the foundation for ranking in nearby searches. The interesting part of this project was the build itself, not the storefront.
Build log: how I built it with Claude, and why in code instead of a builder.
Frequently Asked Questions
- Yes. Cub River is one example of Vient's client work for local businesses. Vient builds websites for companies across Cache Valley and southern Idaho, including Logan, Smithfield, Richmond, and Preston. The contact page is the fastest way to start a project.
- It is a custom Astro 5 static site with no framework and no build-time CMS, built in code with Claude. A single business-data file holds the core details and feeds both the visible pages and the JSON-LD, so the page and the structured data can never drift apart. A programmatic route generates unique nearby-city landing pages for local SEO, and the whole thing deploys as static files with a sitemap.
- The client is an age-restricted retailer, so an age-verification gate on first visit matches how the business actually operates. The contact form was intentionally dropped because the business runs on calls and walk-ins; the site leads with a tap-to-call number, hours, and directions instead of a form that would sit unmonitored. Both were deliberate build decisions, not defaults.
Does Vient build websites for businesses in Cache Valley and southern Idaho?
How was this website built?
Why does the site use an age gate and no contact form?
More about Cub River Kratom
- Behind the buildBuilding a Local-SEO Site for an Age-Restricted Shop, in Code This TimeI tried an AI website builder on one client site and ended up rebuilding it in code. So this one I built in Astro with Claude from the first commit. Here's what it takes to build a clean local-SEO site for an age-restricted retailer.
- From the blogBuilding a Single-Page Client Site, Mostly by Prompting ClaudeA local client had an Instagram and no website. I gave Claude the right prompt, all the real details, and a styling direction, and it built the three files. The hard part was getting the content, not the code.
- From the blogMoving a Client Site Off an AI Builder, Rebuilt From ScratchLandingSite AI got Griffin Renovation online fast, but SEO limits and vendor lock-in pushed me to rebuild the whole thing in plain HTML, CSS, and JavaScript.
- From the blogHow to get your business on Google Maps in Cache ValleyA step-by-step guide to creating, verifying, and optimizing a Google Business Profile so your Cache Valley business shows up in the Google Maps results, written for owners, not marketers.
Related projects
- Related projectDiamond Pest ProA web design case study: how Vient built a fast, custom Astro 5 static site for a multi-location home-service client, with a dedicated page for every branch and every service, LocalBusiness and FAQPage schema, and an ongoing local-SEO engagement.
- Related projectDill the MenaceA web design case study: how Vient built a fast, custom Astro 5 site for a Cache Valley client, with a single source of truth for business data, local and FAQ schema, a lazy-loaded audio embed, and a static deploy.
- Related projectPirate BarberA web-design case study: how Vient built a single-page Astro and Tailwind site for a Cache Valley client, with one source of truth for the business data, zero JavaScript bundles from native details elements, and BarberShop schema for local search.