Skip to content
codexa

Ecommerce · React

Independent bookshop

Literary bookshop storefront with staff picks, translations, store hours, delivery across India and a letter.

Independent bookshop starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

What you get

A site for an independent bookshop: an editorial hero, fiction, non-fiction, translations and children's books with prices, delivery and returns, reader quotes, opening hours with the address, and a Sunday-letter sign-up. All content lives in src/site.ts.

Files

Exactly what is copied into a new project: 13 files, nothing generated.

Raw data: GET /api/v1/templates/shop-bookshop

src/site.ts
src/site.ts
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = {  "brand": "Lantern Street Books",  "nav": [    {      "label": "Books",      "href": "#books"    },    {      "label": "Delivery",      "href": "#delivery"    },    {      "label": "Visit",      "href": "#visit"    },    {      "label": "Sunday letter",      "href": "#letter"    }  ],  "navCta": {    "label": "Browse books",    "href": "#books"  },  "sections": [    {      "kind": "hero",      "variant": "editorial",      "eyebrow": "Independent since 2011 · Indiranagar, Bengaluru",      "title": "A small shop with a long reading list.",      "text": "Around 6,000 books chosen by five booksellers, with a wall of Indian-language translations and a children's corner with floor cushions. Order online or come in and browse.",      "primary": {        "label": "Browse books",        "href": "#books"      },      "secondary": {        "label": "Visit the shop",        "href": "#visit"      },      "visual": {        "type": "card",        "tone": "#713f12",        "title": "This month's reading circle",        "lines": [          "The Monsoon Ledger, Anjali Rao",          "Last Saturday of the month, 6 pm",          "Free, tea included"        ]      }    },    {      "kind": "products",      "id": "books",      "eyebrow": "Staff picks",      "title": "On the front table",      "text": "Paperbacks unless noted. Signed copies while they last.",      "currency": "₹",      "items": [        {          "name": "The Monsoon Ledger",          "price": 499,          "category": "Fiction",          "tone": "#713f12",          "text": "Anjali Rao · a family saga across three floods.",          "badge": "Bestseller"        },        {          "name": "Salt for the Crows",          "price": 450,          "category": "Fiction",          "tone": "#365314",          "text": "Daniel Okafor · a debut set in a fishing town.",          "badge": "New"        },        {          "name": "A House on Cubbon Road",          "price": 599,          "category": "Fiction",          "tone": "#7c2d12",          "text": "Meera Iyer · hardback.",          "badge": "Signed copy"        },        {          "name": "The Long Tide",          "price": 399,          "category": "Fiction",          "tone": "#1e3a5f",          "text": "Thomas Hale · short novel, 180 pages."        },        {          "name": "Rivers of Iron",          "price": 899,          "category": "Non-fiction",          "tone": "#44403c",          "text": "A history of the railways, 1853 to 1947."        },        {          "name": "Small Kitchens",          "price": 750,          "category": "Non-fiction",          "tone": "#9a3412",          "text": "Recipes for two burners and one pan."        },        {          "name": "Birds of the Deccan",          "price": 650,          "category": "Non-fiction",          "tone": "#3f6212",          "text": "A field notebook with 140 illustrations.",          "badge": "Low stock"        },        {          "name": "Kaveri Diaries",          "price": 420,          "category": "Translations",          "tone": "#854d0e",          "text": "Translated from Kannada by R. Shetty."        },        {          "name": "Nine Stories from Malayalam",          "price": 380,          "category": "Translations",          "tone": "#57534e",          "text": "An anthology of new writers.",          "badge": "New"        },        {          "name": "Pip and the Paper Boat",          "price": 299,          "category": "Children's",          "tone": "#a16207",          "text": "Picture book, ages 3 to 6."        },        {          "name": "Counting Mangoes",          "price": 250,          "category": "Children's",          "tone": "#b45309",          "text": "Board book, ages 1 to 3."        }      ]    },    {      "kind": "features",      "id": "delivery",      "eyebrow": "Delivery & returns",      "title": "Books by post, wrapped by hand",      "columns": 4,      "items": [        {          "title": "Free over ₹999",          "text": "₹60 below that. Bengaluru in 1 to 2 days, the rest of India in 3 to 6.",          "icon": "truck"        },        {          "title": "Damaged in transit?",          "text": "Send us a photo within 7 days and we'll post a fresh copy free.",          "icon": "box"        },        {          "title": "Gift wrapping",          "text": "Brown paper, string and a handwritten note for ₹40.",          "icon": "heart"        },        {          "title": "Special orders",          "text": "If it's in print, we can usually get it in 7 to 14 days.",          "icon": "book"        }      ]    },    {      "kind": "quotes",      "eyebrow": "Readers",      "title": "Why people come back",      "items": [        {          "quote": "I asked for 'a big family novel, but shorter' and left with three books I loved.",          "name": "Kavya N.",          "role": "Regular since 2016"        },        {          "quote": "They found an out-of-print Tamil translation my father had been looking for for years.",          "name": "Arjun S.",          "role": "Special order"        },        {          "quote": "My daughter calls the cushion corner 'the reading cave'. Saturdays revolve around it now.",          "name": "Fatima H.",          "role": "Parent"        }      ]    },    {      "kind": "hours",      "id": "visit",      "eyebrow": "Visit",      "title": "Find us on 12th Main",      "text": "Ground floor, step-free. Two-wheeler parking out front.",      "rows": [        {          "day": "Tuesday – Friday",          "time": "11:00 – 20:30"        },        {          "day": "Saturday – Sunday",          "time": "10:00 – 21:00"        },        {          "day": "Monday",          "time": "Closed"        }      ],      "address": "418, 12th Main, HAL 2nd Stage, Indiranagar, Bengaluru 560008",      "phone": "+91 80 5550 1186",      "email": "hello@lanternstreetbooks.in"    },    {      "kind": "cta",      "title": "The Sunday letter",      "text": "Five book recommendations, upcoming readings and new arrivals, every Sunday morning. Free.",      "primary": {        "label": "Sign up",        "href": "#letter"      },      "secondary": {        "label": "Browse books",        "href": "#books"      }    },    {      "kind": "contact",      "id": "letter",      "eyebrow": "Newsletter",      "title": "Get the Sunday letter",      "text": "Add your email, or write to us with a book request and we'll reply within a day.",      "fields": [        "name",        "email",        "message"      ],      "button": "Sign me up"    }  ],  "footer": {    "text": "An independent bookshop in Indiranagar, Bengaluru.",    "columns": [      {        "title": "Books",        "links": [          "Fiction",          "Non-fiction",          "Translations",          "Children's"        ]      },      {        "title": "Shop",        "links": [          "Delivery",          "Gift cards",          "Special orders",          "Reading circle"        ]      }    ],    "legal": "© Lantern Street Books. Sample content: replace it in src/site.ts."  }};

Remix

Remix this template

Describe what to change and the agent starts from Independent bookshop's files. The box is already started for you: finish “Start from Independent bookshop and …”

Agent ready

Creates a free account first; your idea is carried over.

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

  • react^19.1.0
  • react-dom^19.1.0
  • vite^6.3.0
  • @vitejs/plugin-react^4.4.0
  • tailwindcss^4.1.0
  • @tailwindcss/vite^4.1.0
  • typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Entry route
/

Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.

All templates

Build on Independent bookshop

Create a free account, start from this template, and ask the AI agent to turn it into your app.