SELECTED WORK / CANNABIS DELIVERY

Toasty CA.

Anaheim and Orange County, California

A bright, playful website for a licensed, delivery-only cannabis retailer, with a page for each of the 22 Orange County cities it serves.

Visit live website (opens in a new tab)Explore the project
Toasty CA homepage: “Fast. Fresh. Green.” beside cannabis products
CLIENT
Toasty CA
INDUSTRY
Cannabis delivery
OUR WORK
Website design & development, SEO
WEBSITE
toastyca.com

THE PROJECT

Licensed cannabis delivery.
A page for every city.

Toasty CA is a licensed, delivery-only cannabis retailer in Orange County, California. There is no storefront: adults order online and a driver brings the order to the door, with an ID check at handoff. Anaheim is its main market, and it delivers across 22 cities in the county.

The menu, cart and checkout run on a WebJoint shop, so the website’s job is everything around them: set the brand’s tone, explain how delivery works, show the age rules and the state license number, and give every city Toasty serves a page that search engines can find. Every product, category and deal button lands shoppers in the right part of the shop.

DESIGN STRATEGY

Light, friendly,
and clear about the rules.

We kept the look light and friendly. The hero sets “Fast. Fresh. Green.” in heavy type on cream, with cut-out gummies and buds that float beside it and drift with the cursor. Orange and teal from the logo carry through every page, and an orange-to-teal gradient marks the offers and the calls to order.

The practical facts sit where shoppers look for them: each city page shows the delivery minimum, the delivery window and the 21+ ID rule as badges, and the state license number is in the footer of every page.

TYPOGRAPHY

Cabinet Grotesk for headlines, labels and buttons, with General Sans for body copy.

COLOR

Toasty orange and teal from the logo, joined in an orange-to-teal gradient for offers and calls to order.

MOTION

Gummies and buds that follow the cursor and turn as you scroll, left out on small screens and for reduced motion.

HOW IT’S BUILT

A static site,
with the shop on WebJoint.

We built the site in Next.js 16 with TypeScript and Tailwind CSS 4 and export it as static HTML, served from AWS behind CloudFront. Framer Motion runs the animation.

A static site suits a business whose shop lives elsewhere: there is no server or database to maintain, and the pages, structured data and sitemap are all generated from a few typed data files for cities, posts and site settings.

FRAMEWORK
Next.js 16 (App Router) and React 19
LANGUAGE
TypeScript
STYLING
Tailwind CSS 4 with brand tokens
RENDERING
Static export: every page prerendered
SHOP
WebJoint storefront at toastyca.com/shop
HOSTING
AWS behind CloudFront

SEARCH, BUILT IN

Twenty-two cities.
One license on every page.

Toasty has no storefront and can’t buy search ads, so the website carries its local search: a page for every city it delivers to and structured data that says exactly where.

Each of the 22 cities in Toasty’s service area has its own page, with a keyword-led heading, a short direct answer at the top, local neighborhoods and landmarks, delivery facts and a city FAQ.

Structured data runs across the site: Organization and WebSite on every page, a Store entry on the homepage that lists all 22 cities and the state license, and Service, FAQ and breadcrumb markup on each city page.

We moved the site onto one canonical domain and gave every page a self-referencing canonical tag.

The XML sitemap and robots.txt are generated from the same data as the pages, so every city page and blog post is listed automatically.

Every page has exactly one H1, and the state license number appears in the footer and in the structured data.

The Toasty CA homepage on a phone, with Shop Now and Browse Menu buttons

THE SAME WEBSITE. A SMALLER SCREEN.

PROJECT HIGHLIGHTS

The details
that make it work.

22 city pages

Each city in the service area has its own page with local neighborhoods, delivery facts, a city FAQ and matching structured data.

Compliance in the templates

The 21+ age gate, the state license number in every footer and the ID rules on each city page are built into the templates, not added page by page.

Straight to the shop

Category tiles, product cards, deals and every city page link straight into the matching part of the WebJoint shop.

YOUR NEXT WEBSITE

Planning a website
your customers will use?

Let’s talk about your business, your customers and what your website needs to do.