Cub River Kratom & Vape Shop
LiveLocal-SEO website for an age-restricted retail shop in Franklin, Idaho
Built by Caden Sorenson · Launched May 2026
What is Cub River?
Cub River Kratom & Vape Shop is a specialty retail store at 4004 US-91 in Franklin, Idaho, about two miles north of the Utah border on US-91. It serves the Cache Valley area, from Logan and Smithfield in Utah up through Preston in Idaho. The site needed to do the unglamorous but important job of a local retail website: tell people exactly where the shop is, when it is open, what it carries, and make it one tap to call or get directions. Because it is an age-restricted retailer, it also needed to handle that responsibly 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
business.tsfile holds the name, legal name, address, geo coordinates, phone, hours, reviews, and area served. Every page and the structured data read from it, so those core 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
Store,FAQPage, andAggregateRatingJSON-LD, giving Google and answer engines the shop’s location, hours, rating, and FAQs in a machine-readable form. - 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.
- A 21+ age gate. An age-verification gate appropriate for an age-restricted retailer, consistent with the shop’s strict in-store ID policy.
- 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 shop has a fast, accurate, mobile-first home on the web that answers the only questions most local customers have, where it is, when it is open, and what it stocks, and it gives Google clean structured data to surface the business for nearby searches.
Build log: how I built it with Claude, and why in code instead of a builder.
Frequently Asked Questions
- Yes. Cub River Kratom & Vape Shop 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, Preston, and Franklin. The contact page is the fastest way to start a project.
- Cub River is at 4004 US-91 in Franklin, Idaho, about two miles north of the Utah state line on US-91, serving the Cache Valley area. It is a specialty retailer for adults 21 and over.
- It is a custom Astro 5 static site with no framework and no build-time CMS, built in code with Claude. A single business.ts file holds the name, address, phone, hours, and reviews, and feeds both the visible pages and the Store, FAQPage, and AggregateRating JSON-LD. It uses a programmatic route to generate unique nearby-city landing pages for local SEO, a 21+ age gate, and a sitemap, deployed as static files with no server.
- Cub River sells age-restricted products, so a 21+ age gate on first visit matches the shop's strict in-store ID policy. The contact form was intentionally dropped because the business prefers calls and walk-ins; the site leads with a tap-to-call phone number, hours, and directions instead of a form that would sit unmonitored.
Does Vient build websites for businesses in Cache Valley and the Franklin, Idaho area?
Where is Cub River Kratom & Vape Shop located?
How was the Cub River website built?
Why does the site use a 21+ age gate and no contact form?
More about Cub River Kratom & Vape Shop
- 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 Pirate-Themed Barbershop Site, Mostly by Prompting ClaudeA barber in Cove, Utah 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 blogDoes a small business in Cache Valley actually need SEO?An honest look at whether local SEO is worth it for a small business in Logan or Cache Valley, Utah, what actually moves rankings, and how to tell if you need it.
Related projects
- Related projectPirate BarberA single-page website for Pirate Barber, a barbershop in Cove, Utah. Rebuilt in 2026 on Astro and Tailwind around one barber, one chair, and a phone number. Prices, hours, and reviews on the page, no booking app in the way.
- Related projectGriffin RenovationA hand-coded static website for Griffin Renovation, a residential renovation contractor in Cache Valley, Utah. Built with plain HTML, Tailwind CSS, and vanilla JavaScript. Deployed on Netlify with full SEO including JSON-LD structured data for local search.
- Related projectShipReadyScan any URL across 35+ SEO and Answer Engine Optimization checks, get a letter grade, and copy a fix-all prompt directly into your AI coding tool. Built for sites made with Claude Code, Cursor, and v0.