Joinery

Joinery suits small shops that tell the story behind their products, with a cover photograph and stories on the home page and specifications and variants on product pages.

$67 USD

Buy now

Secure payment via Stripe

Live preview ↗
Best for
Best for makers and independent brands selling home goods, art, food, stationery, beauty products, gear or made-to-order work
Platform
Astro
Status
On sale
Price
$67 USD
Version
1.1.1
License
Astro edition: Peachfin Themes Astro License (LICENSE in the download). Photographs CC0 1.0 (ASSETS.json). No font files bundled.
Demo photography is licensed separately from theme code

Page inventory

Home
Home
Shop
Shop
category pages
Archive
product pages
Product
Workshop
Detail
Workshop diary
Journal
diary entries
Post
tag pages
Archive
About
About
Contact
Contact
Shipping
Utility
Returns
Utility
Privacy
Utility
Search
Utility
Photo credits
Utility
404
Utility
Cart and order confirmation (optional cart)
Utility

Design controls

Shop name
identity.name changes the name in the header, footer, page titles and structured data.
Colors and fonts
theme.colors sets the palette, and theme.fonts sets the display and body font stacks.
Home photographs
home.hero selects the cover photo, home.heroPosition sets its crop, and home.stories.limit sets the newest-piece count.
Footer credit
footer.attribution lets you edit the theme credit or hide it with show: false.
Demo notice
footer.note sets the footer's demo notice; delete it when the shop is real.

Features

  • The home page pairs workshop photographs with new pieces and includes a commission block.
  • Product pages show material, finish and lead time, with variants for up to two options.
  • The shop includes category pages, a sort menu, a Workshop page and a workshop diary.
  • Products and variants can link to Stripe Payment Links, Lemon Squeezy, Polar or Shopify checkout.
  • The optional Stripe Checkout cart uses your own secret key and needs a server adapter.
  • You can switch the content source from Markdown files to EmDash.

What the download includes

  • The ZIP contains source with typed content collections and a package-lock.json that pins Astro 7.3.3.
  • The ZIP includes 16 CC0 photographs from StockSnap, credited in ASSETS.json.
  • The emdash/ folder contains seed.json and the EmDash switch-over files.
  • The ZIP includes README, GETTING-STARTED, EMDASH, DISCOVERY, CHANGELOG and LICENSE.

Setup

  1. Extract the ZIP and use Node 24 LTS or Node 22 LTS, version 22.19.0 or later.
  2. Run npm ci, then npm run dev, and open the address printed in the terminal.
  3. Edit src/site.config.ts and replace the demo products, pages and photographs.
  4. Add checkout links and test them in your provider's test mode, or follow the server setup for the optional cart.
  5. Run npm run check, npm test and npm run build after your changes.
  6. Upload dist/ to a static host at the root of your domain, or deploy a server build if you enabled the cart or EmDash.

Read the full setup guide

Joinery gives small shops and independent brands room to show the story or process behind their products. A cover photograph leads into product stories, categories and a commission block. Product pages show specifications and variants, while the Workshop page and journal explain your process. The layout suits home goods, art, food and drink, stationery, beauty products, gear and made-to-order work. The demo uses furniture and ceramics as example products; you replace every product, photograph and label with your own.

Selling starts with checkout links for each product or variant. You create those links with Stripe Payment Links, Lemon Squeezy, Polar or Shopify, and the Buy button opens the provider’s checkout page. You can also enable a Stripe Checkout cart with your own secret key. That option requires a server adapter; only the Node adapter was tested. A complete Stripe test-mode payment was made through the Joinery cart on localhost, with server-side prices and refusal of tampered requests.

Products, categories, diary entries and pages are Markdown files that you edit in the source folder. The optional EmDash switch replaces that file-based content source with a database and an admin screen, with pages rendered on request by a Node server. Site settings still live in src/site.config.ts. The ZIP includes the source, setup references and 16 CC0 photographs credited in ASSETS.json; the fictional products and sample policies need your own text before publication.

Similar themes