Skip to content

Haven

Ecommerce / Homewares Pro

A calm homewares storefront with a shoppable room on the first screen, collection filters, quick view, product pages with variants, a cart, wishlist and comparison, a lookbook and a journal, all running on demo data with no store account needed.

$49
Read the Haven docs Lifetime updates Personal & client use
All-Access Pass

One payment for Haven and everything else - all 36 themes, every future release, and the Astro visual builder included.

$1636 $199 one-time
Get the All-Access Pass
A closer look

See Haven in action

Every page and section is part of the download. Use these as launch-day templates - keep the structure, swap the copy.

Shop the room
Benefits and category tiles
New arrivals
Promotions and trending products
Collection with filters and grid density
Product page
Lookbook
Journal
55
Static pages
28
Demo products with variants
1 file
Edits every product, price and word
Astro 7
+ TypeScript

Haven is a storefront theme for furniture and homewares. The first screen is a photograph of a furnished room, and markers on the planter, the framed print, the pendant lamp and the vase each open a small card with the product's picture, price and a link. Below it come a row of shop benefits, category tiles, a five-column grid of new arrivals with load more, two promotional banners, trending products in tabs, the latest journal articles, a newsletter band and a gallery that leads to the lookbook. Collection pages sort, filter, change grid density and paginate, and every choice stays in the address bar so back and forward work. Search opens from the right, filters from the left, and quick view shows a product in a modal. Product pages have a gallery, colour options and a quantity limited to the stock in the catalog. The cart, wishlist and comparison are saved in the browser. Checkout is a demo: it shows the flow but takes no payments and creates no orders, so a real store needs its own payment or commerce backend. The newsletter and contact forms check what is typed and say plainly that nothing was sent. The catalog sits behind one module, src/lib/catalog.ts, which is the place to connect a store backend later. Information pages cover about, contact, FAQ, care and size guides, shipping, returns, terms, privacy and an account page. The palette is white and warm neutrals with a deep teal, set in self-hosted Inter. Motion uses GSAP ScrollTrigger reveals, a slow parallax on the room and Lenis smooth scrolling on a mouse or trackpad, with a fade between pages, and reduced-motion settings are respected. The styles are plain CSS with no CSS framework. All 28 products with their prices, variants and stock, the categories, every label and page, and the journal articles live in src/config/site.ts, with 46 original images included.

Best Fit For

  • Furniture, homewares and interior shops
  • Small brands with a curated catalog
  • Agencies building a store front before connecting checkout
  • Lookbook and catalog sites that want a shop feel

Full Page Set

Every page is real and editable - no placeholders, no "coming soon" stubs.

Home
All Products
5 Collections
28 Product Pages
Search
Cart
Wishlist
Lookbook
Journal
4 Journal Articles
About
Contact
FAQ
Care Guide
Size Guide
Shipping
Returns
Terms
Privacy
Account
404

14 Sections Included

Every section is a ready-to-use Astro component. Add it to any page, customize via config, or remove what you don't need.

Header / Nav
Navigation over the room photograph, with search, account, and wishlist and cart counters
Shop the Room
A full-width room photograph with markers that open a product card with its picture, price and link
Benefits
Shipping, returns, payment and support in one row
Category Tiles
Category pictures that lead to their collections
New Arrivals
A five-column product grid with sale badges and load more
Promotions
Two wide banners for a room or a sale
Trending Products
Best seller, top rated and sale tabs over one product grid
Journal Preview
The latest articles from the journal
Newsletter
A signup band that checks the address and says plainly that nothing is sent in the demo
Gallery
A row of room photographs that link to the lookbook
Collection Pages
Sorting, filters, grid density and pagination, all kept in the address bar
Quick View
A product in a modal with its options and add to cart, two columns on desktop
Product Page
Gallery, colour options, quantity limited to stock, wishlist and compare
Cart and Wishlist
Cart, wishlist and comparison saved in the browser between visits

What's Included

Astro 7 and TypeScript, with plain CSS and no CSS framework
Shop-the-room hero with markers that open product cards
Collection pages with sorting, filters, grid density and pagination kept in the address bar
Search and filter drawers, and a quick view modal
Product pages with a gallery, colour options and quantity limited to stock
Cart, wishlist and comparison saved in the browser
Demo checkout that shows the flow and takes no payments
Journal with 4 articles, a lookbook and 10 information pages
GSAP ScrollTrigger reveals, room parallax and Lenis smooth scrolling
Fade transitions between pages that respect reduced-motion settings
Every product, price, variant, label and page in site.ts
46 original WebP images and self-hosted Inter

A room you can shop

The first screen is a furnished room. Markers on the planter, the print, the pendant and the vase open a small card with the price and a link, and you choose which products they point to in site.ts.

The whole catalog flow

Collections with filters, sorting and pagination, a search drawer, quick view, product pages with colour options and stock, then a cart, wishlist and comparison that are still there on the next visit.

Motion that stays out of the way

Sections and product cards rise in as you scroll, the room drifts slowly, pages fade into each other, and smooth scrolling only applies to a mouse or trackpad. Reduced-motion settings turn it down.

Products in one file

Every product with its prices, variants, stock and pictures sits in site.ts next to the categories, labels, pages and journal, so adding a product or changing a price is a text edit. Checkout is a demo until you connect your own.

Tech Stack

Astro 7 TypeScript GSAP Lenis Responsive SEO Ready

Config-Driven Setup

Haven keeps all 28 products with their prices, variants, stock and pictures, the categories, room markers, every label and page, and the journal insrc/config/site.ts. Prices are whole cents, and checkout stays a demo until you connect your own payment or commerce backend.

site.ts
// src/config/site.ts
export const siteConfig = {
  locale: "en-US", currency: "USD",
  name: "haven", credit: { prefix: "Created by", ... },
  navigation: [...], categoryNavigation: [...],
  categories: [{ slug: "lighting", title: "Lighting", image: "..." }, ...],
  hero: { image: "...", hotspots: [{ x: 79, y: 22, product: "ribbed-oak-pendant" }, ...] },
  benefits: [...], promotions: [...], instagram: [...],
  catalog: { title: "All Products", pageSize: 12, homeCount: 10 },
  labels: { addToCart: "Add to cart", ... },
  footer: [...],
  products: [{ slug: "ribbed-oak-pendant", variants: [{ title: "Natural", price: 3515, ... }] }, ...],
};

Full documentation, ready before you buy

Browse the install guide, the site.ts reference, provider setup, deploy instructions, and the Haven-specific page - all live now.