Blog/Build a Book Spine Bookshelf Website Template With One Prompt and Sell It to Education Creators
Build a Book Spine Bookshelf Website Template With One Prompt and Sell It to Education Creators
@onlygrowthtalks·
14 September 2026

Build a Book Spine Bookshelf Website Template With One Prompt and Sell It to Education Creators

Build a book spine bookshelf website template — every book standing side by side, spine out, filtered by category — with one Claude Code prompt and a Google Sheet, then sell it to education creators.

In this guide
  1. What you're building
  2. Why this template sells
  3. Before you start
  4. Step 1: Create the Google Sheet
  5. Step 2: Add the colour scheme
  6. Step 3: Share the sheet
  7. Step 4: Paste the prompt
  8. What the prompt tells Claude
  9. Check the live updates
  10. Step 5: Go live on Netlify
  11. Or go live on Vercel
  12. Connect a GoDaddy domain
  13. Step 6: Sell it
  14. DM scripts for buyers
  15. Skills and resume
  16. FAQ

AI Side Hustles · Build and Sell

A book spine bookshelf website template — the spine wall — is a premium-looking page where every course, set of notes or prompt pack stands on one shelf as a book, spine out, beside all the others — so a visitor sees the whole collection at a glance and can filter it by category. You can build one with a single Claude Code prompt, run all of its content from a Google Sheet, publish it free on Netlify or Vercel, and sell it to education creators, coaches and teachers. Sell it for ₹300 to 1,000 people and that's ₹3,00,000 in revenue.

The lookBook spine bookshelf — every book side by side, spine out, filtered by category
Build timeAbout 30 minutes
Cost to buildFree (domain optional)
Sell toEducators, coaches, teachers
You'll useGoogle Sheets, Claude Code, Netlify
01

What you're building

The template is a full-width shelf of spines. Every book stands upright next to the others, spine out, in its own colour, with its category printed at the foot — the way a real shelf looks when you walk past it. Above the shelf sits a row of category chips, so a visitor can narrow a long shelf to just "Class 10" or just "Notes" without the books moving. Clicking a spine opens that book full screen: the cover on the left, the title, description and a button on the right, and arrows to move along the shelf.

Two bookshelf builds, two different looks

This one is the book spine bookshelf, also called the spine wall: the whole shelf visible at once, every book standing spine out, filtered by category. The other one is the carousel bookshelf: a 3D room where one book faces the reader at a time and the walls change colour with its cover. Same Google Sheet, same prompt structure, completely different page.

All of the content lives in a Google Sheet, not in the code and not in the prompt. You create the sheet once, give its link to Claude Code, and from then on, editing the sheet updates the live website by itself. That's what makes it easy to sell: your buyer changes their own books from a spreadsheet, and you never have to rebuild anything.

A bookshelf website where 16 books stand side by side as coloured spines on a wooden shelf, with category filter chips above
Fig. 1The finished template. Every spine is one row in a Google Sheet: the title, the colour, and the category printed at its foot.
A book opened full screen, its cover on the left and its subheading, description and Try Claude button on the right
Fig. 2Clicking a spine. The subheading, description and button all come from the same row in the sheet, the background takes the book's cover colour, and ( 2 / 16 ) walks along the shelf.
02

Why education creators pay for this

Most education creators share their courses, notes and resources through a plain link-in-bio page, a long WhatsApp message or a Google Form. A shelf of spines turns that list into something students actually want to explore, and the category chips keep it usable once there are thirty books on it. It looks like a premium product, which makes the creator's paid courses look premium too.

  • It fits how educators already think. Courses, subjects, notes and workbooks are naturally "books on a shelf".
  • They can update it themselves. Adding a new course is just a new row in the sheet, with no developer involved.
  • It works everywhere. Students open it on their phones from an Instagram bio or a WhatsApp link.
  • It's low risk to buy. At ₹300, it costs less than one student's course fee.

₹300 × 1,000 buyers = ₹3,00,000. The template costs you nothing to copy, so every sale after the first build is margin.

Be realistic

That figure is revenue, not a promise. Reaching 1,000 buyers takes consistent outreach and content. Start with 10 sales, collect testimonials, and grow from there.

03

Before you start

This guide assumes you already have Claude Code, Node.js and Python installed. If not, follow the official Claude Code setup guide first. You'll also need a Google account and a free Netlify or Vercel account.

macOS Mac

  1. Install Claude Code in Terminal:
    curl -fsSL https://claude.ai/install.sh | bash
  2. Install Node.js LTS from nodejs.org.
  3. Check Python with python3 --version.

Windows PC

  1. Install Claude Code in PowerShell:
    irm https://claude.ai/install.ps1 | iex
  2. Install Node.js LTS from nodejs.org.
  3. Install Python from python.org and tick "Add python.exe to PATH".
04 · Step 1

Create the Google Sheet

The Google Sheet is your website's content manager. Create it before you touch Claude Code, because the prompt needs its link. Go to sheets.new, rename the first tab at the bottom to Books, and type these eight column headers into row 1, in this order.

ColumnWhat to typeExample
OrderThe book's position on the shelf: 1, 2, 3…2
Book nameTitle on the cover. Keep it short.Class 10 Maths
SubheadingOne short line under the titleFull syllabus in 40 videos
DescriptionTwo or three sentences shown when the book opensEvery chapter explained with solved board questions…
Button textThe label on the buttonEnrol now
Button linkWhere the button goeshttps://rzp.io/l/maths10
Colour codeA code from the Colours tab (Step 2)C05
CategoryThe group this book belongs to. Every different value becomes a filter chip above the shelf. Leave the whole column out and the chips simply don't appear.Class 10

Then fill in one row for every book. Five to nine books looks generous on the shelf, and because the spines are thin this layout still reads well at thirty or more — that's what the Category chips are for. Reuse the same category word exactly (“Class 10”, not “class 10”) so it becomes one chip, not two.

The Books tab of the sample Google Sheet with all eight columns from Order to Category, filled with 8 AI tools
Fig. 3The sample sheet's Books tab, with all eight columns. This example lists AI tools; for an educator, each row would be a course or a set of notes. The last column, Category, is what the filter chips above the shelf are built from.
Want a shortcut?

Instead of typing the headers yourself, make a copy of the Spine wall book shelf sample sheet. It already has both tabs, all eight columns, 8 sample books and 12 colours. Replace the sample rows with your own and the shelf follows.

Adding more details later

You can add extra columns, such as Price, Duration or Language, at any time. The website ignores columns it doesn't know about, so nothing breaks. To actually show a new column on the website, tell Claude Code once, for example: "Show the Price column under the subheading." After that, the column updates from the sheet like everything else.

05 · Step 2

Add the colour scheme

Click + at the bottom of the sheet to add a second tab, and name it Colours. Add four headers: Colour code, Colour name, Cover colour and Text colour. Then add one row per colour.

The Colours tab of the sample Google Sheet listing codes C01 to C12 with colour names, cover colours and text colours shown as filled cells
Fig. 4The Colours tab: 12 codes, each with a cover colour for the book's cloth and a text colour for its title and pattern.
CodeNameCoverText
C01Haze#ADC8D2#27262C
C02Charcoal#27262C#E1DF73
C03Tangerine#E77040#FBF0E4
C04Citron#E1DF73#27262C
C05Cobalt#334FA2#EEF2FB
C06Vermilion#F66440#FDEFEA
C07Ochre#DA9650#2B1D12
C08Crimson#D5373E#F8D9C8
C09Ultramarine#1B2C48#C9774B
C10Aubergine#3D2340#D7AD5A
C11Forest#2F4A3A#E9D8A6
C12Powder blue#86B1C4#F2F7F8

Now go back to the Books tab and type a colour code, such as C05, in each book's Colour code cell. The cover colour becomes the book's cloth and the text colour becomes its foil title. The website works out the wall, floor and lighting from those two values, so the whole room changes to match each book.

  • Brand it for a buyer. Swap in the creator's brand colours and every book using that code changes.
  • Group by subject. Give Maths one colour and Science another, so students can scan the shelf.
  • Raw hex works too. You can type #334FA2 directly in the Colour code cell.
06 · Step 3

Share the sheet and copy its link

The website reads the sheet directly from Google, so the sheet has to be viewable by link. Visitors can read it, but only you can edit it.

  1. Open sharingClick Share at the top right of the sheet.
  2. Allow link accessUnder General access, choose Anyone with the link, and keep the role as Viewer.
  3. Copy the linkClick Copy link. You'll paste it into Claude Code in the next step.
Keep it public-safe

Only put information in this sheet that's fine to appear on the public website. Never add phone numbers, student names or private notes.

07 · Step 4

Create a folder and paste the prompt

Create a folder on your Desktop called bookshelf-template and open Claude Code inside it. Everything Claude Code builds is saved in this folder, and it's the same folder you'll upload to Netlify later.

macOS Terminal

mkdir -p ~/Desktop/bookshelf-template cd ~/Desktop/bookshelf-template claude

Windows PowerShell

mkdir $HOME\Desktop\bookshelf-template cd $HOME\Desktop\bookshelf-template claude

Or, in the Claude desktop app, open the Code tab and choose the folder. Then copy the prompt below, replace PASTE_YOUR_SHEET_LINK_HERE on the first line with your sheet link, and press Enter.

The Master Prompt
Replace the sheet link on line 1, then paste into Claude Code
My Google Sheet: PASTE_YOUR_SHEET_LINK_HERE

Build me a bookshelf website whose books stand side by side on one shelf, spine out, and whose content comes entirely from the Google Sheet above. When I edit the sheet, the live website must update by itself, without redeploying. Never hard-code any book content in the code.
Work only inside the current folder and save every file here.

PART 1 — CHECK THE SHEET FIRST
1. Extract the sheet ID from my link. Fetch both tabs as CSV from:
   https://docs.google.com/spreadsheets/d/SHEET_ID/gviz/tq?tqx=out:csv&sheet=Books
   https://docs.google.com/spreadsheets/d/SHEET_ID/gviz/tq?tqx=out:csv&sheet=Colours
2. If Google returns an HTML page instead of CSV, stop and tell me: "Your sheet isn't shared. Click Share → Anyone with the link → Viewer, then tell me to try again."
3. Check the Books tab has these columns: Order, Book name, Subheading, Description, Button text, Button link, Colour code, Category. Category is optional: if it is missing or empty, build the shelf without filter chips and say so. Check the Colours tab has: Colour code, Colour name, Cover colour, Text colour. If any are missing or misspelt, list exactly which ones and wait for me to fix them.
4. Show me a short summary: how many books you found, their names, and any row with a colour code that isn't in the Colours tab.
5. Then ask me just two things: the shelf's name and a one-line subtitle. After that, build without asking anything else.
Also check whether I'm on macOS or Windows and use the right commands (python3 on Mac, python on Windows).

PART 2 — READING THE SHEET IN THE WEBSITE
- Put settings in config.js: sheet (my link), booksTab "Books", coloursTab "Colours", refreshSeconds 15, name, subtitle, background (the page colour) and shelfTone (the colour of the plank). config.js must be the only file I ever need to edit.
- Read each tab with fetch from the gviz CSV URLs above, with a timestamp added and cache: "no-store".
- Write a proper CSV parser that handles quoted fields, commas and line breaks inside quotes.
- Match headers loosely (ignore case, spaces and punctuation). Ignore any extra columns I add later.
- Skip rows without a Book name. Sort by Order.
- Colour code may be a code from the Colours tab or a raw hex. If unknown, use a palette colour and log a console warning.
- Add https:// to links that don't have it.
- If the sheet isn't public, show: "The sheet is not public. Share it as Anyone with the link: Viewer."
- Check the sheet every refreshSeconds and when the browser tab becomes visible. If the data changed, rebuild the shelf, keep the same book selected and the same category chip active if they still exist, and show a toast: "Shelf updated from the sheet · N books".
- Never rebuild while a book is open; apply the update when it closes.
- Bottom-right, show "Synced HH:MM:SS" with a small green dot, or "Sheet unreachable, retrying".

PART 3 — THE WEBSITE
Tech: index.html, styles.css, config.js and JavaScript modules in src/. No build step, no backend, no framework, no image or audio files. Draw every book in CSS and generate the sounds in code. Do not use Three.js or any 3D library.
The shelf: one long wooden plank across the page with the books standing on it, spine out, side by side, filling the width — the way a real shelf looks when you walk past it. Not a carousel, not a room, and never one book turned to face the reader.
The spines: give each one its own width, height and a slight tilt, derived from its title so it stays the same on every reload and the row looks hand-arranged rather than printed. Cover colour is the spine, Text colour is the lettering. The book name runs vertically up the spine in spaced small caps, shrinking to fit. A thin foil rule near the top and the Category in small type at the foot. Rounded top corner, a soft shadow onto the plank, and a lift when hovered or focused.
Category chips: above the shelf on the right, a row of pills — "All" first, then one per category in the order they appear in the sheet. Show at most 7 and collapse the rest behind a "More" button. Choosing a chip keeps every book exactly where it is and fades the ones that don't match, so the shelf never jumps or reflows.
Open view: clicking a spine opens that book full screen over a background tinted from its cover colour. Left, the hardcover standing at a slight angle with the title and category on it. Right: the category in small caps, a huge serif title, the subheading in italic, the description, and an outlined pill button with the Button text that opens the Button link in a new tab (rel="noopener noreferrer"; hide it if there is no link). Under that, a ( 2 / 16 ) row to move along the shelf. Escape or the × closes it.
Layout: top-left, name and subtitle. Top-right, the category chips. Bottom-right, "Synced HH:MM:SS" with a small green dot.
Sound: Web Audio ambient pad with gentle chimes and small interaction sounds, starting on the first click; mute button and volume slider in the open view, both saved in localStorage.
Mobile under 820px: the header stacks, the chips scroll sideways, and the shelf scrolls horizontally with the plank running under it.
Also: a loading state, a plain list of titles, descriptions and links in the page for search engines and screen readers, prefers-reduced-motion support, aria labels and a live region.

PART 4 — RUN AND PROVE IT WORKS
1. Start a local server on port 4322 and give me the localhost link.
2. Confirm the page loaded the same number of books as my sheet.
3. Ask me to change one cell in the sheet, and confirm the change appears on the page without a reload.

PART 5 — PUBLISH
Give me step-by-step instructions for two options: Netlify (drag-and-drop with a free account) and Vercel (npx vercel --prod). Then explain how to connect a domain bought on GoDaddy to whichever one I choose.
The same shelf with the Code category chip selected, so only the coding books stay in full colour
Fig. 5A category chip in use. The books that don't match fade rather than disappear, so the shelf keeps its shape and nothing jumps.
08

What each part of the prompt tells Claude

The prompt is split into five parts so Claude Code does the work in a safe order: check your sheet, wire it up, build the design, prove it works, then explain how to publish.

PartInstruction to ClaudeWhy it matters
Sheet link (line 1)Use this sheet as the only source of contentYour books never live in the prompt, so you never edit or re-run it to change content
1 · Check the sheetConfirm it's shared, the columns are right and the colour codes exist, then ask only for a name and subtitleCatches the most common mistakes before a single file is written
2 · Read the sheetFetch tabs as CSV, parse safely, ignore extra columns, check for changes, update without interrupting readersThis is the system that makes the website update itself
3 · The websiteThe shelf, the spines, the category chips, the open view, sound and the mobile layoutDetailed design language gives the premium look that buyers pay for — and the line "not a carousel, never one book facing the reader" is what keeps Claude from building the other bookshelf
4 · Run and proveStart a local server, match the book count, test a live editClaude has to show it works, not just say so
5 · PublishNetlify and Vercel steps, plus a GoDaddy domainYou finish with a link you can sell from
09

Check the live updates on localhost

When Claude Code finishes, it gives you a link like http://localhost:4322. Localhost means the website is running only on your computer, so you can test it before anyone else sees it.

  1. Open the linkBrowse the shelf, open a book and click its button to check the link.
  2. Edit the sheetKeep the page open, change a book's subheading in your Google Sheet, or add a new row.
  3. Watch it updateWithin 15 to 60 seconds, the change appears with a "Shelf updated from the sheet" message, without refreshing.
The shelf of spines showing a Shelf updated from the sheet message after a new book was added
Fig. 6A live update: a new row added in the sheet appears as a new book, with a confirmation message.
The shelf of spines on a phone screen, scrolling sideways under the category chips
Fig. 7On a phone, the shelf scrolls sideways under the chips, so students swipe along the spines exactly as they would in a shop.
10 · Step 5

Go live on Netlify

Netlify hosts static websites for free, and this template is a static folder. Your content stays in the Google Sheet, so you only upload the folder once.

  1. Log inCreate a free account at app.netlify.com/signup and stay logged in.
  2. Open Netlify DropGo to app.netlify.com/drop.
  3. Drag in the folderDrag Desktop/bookshelf-template, the folder containing index.html, onto the page. Netlify gives you a live address.
  4. Rename the addressOpen Site configuration → Change site name to get something like maths-with-priya.netlify.app.
Content vs code

Sheet edits go live on their own. Only redeploy when you change the code or design: open your site in Netlify, go to Deploys, and drag the updated folder in.

11 · Step 5

Or go live on Vercel

Vercel's free Hobby plan works just as well. Create an account at vercel.com/signup, then run this inside your project folder, or ask Claude Code to run it for you:

npx vercel --prod

The first time, it opens your browser to log in and asks a few setup questions. Accept the defaults and leave the build command empty. When it finishes, it prints your live address, such as bookshelf-template.vercel.app. Run the same command again whenever you change the code.

12

Connect a GoDaddy domain

A custom domain like priyamaths.com makes a template feel even more premium, and it's an easy upsell for buyers. Buy the domain on GoDaddy, add it to your host, then point GoDaddy's DNS records at it.

Netlify Option A

  1. Site → Domain managementAdd a domain.
  2. In GoDaddy: My Products → domain → DNS.
  3. Set the A record for @ to the IP Netlify shows (currently 75.2.60.5).
  4. Set the CNAME for www to your .netlify.app address.

Vercel Option B

  1. Project → Settings → Domains → add your domain.
  2. In GoDaddy: My Products → domain → DNS.
  3. Set the A record for @ to the IP Vercel shows (commonly 76.76.21.21).
  4. Set the CNAME for www to the value Vercel shows.

Always copy the exact values your dashboard shows. DNS usually works within an hour but can take up to 48 hours.

13 · Step 6

Sell it to education creators, coaches and teachers

Your own live shelf is your demo. Put its link in your bio, record a 15-second screen recording of a book opening, and use both in every pitch. There are two ways to sell the same template.

OfferWhat the buyer getsHow you deliver itPrice to test
DIY templateThe website folder, a copy of the sheet, and setup instructionsThey copy the sheet, paste its link into config.js, and drag the folder into Netlify₹300
Done for youA live shelf with their courses, their colours and their own sheetYou fill their sheet, deploy it, and share the sheet with edit access₹2,000–₹5,000
Premium setupDone for you, plus a GoDaddy domain connectedAs above, plus DNS setup on their domain₹5,000–₹10,000

How to deliver a DIY template

  1. Zip the folderCompress your bookshelf-template folder and upload it to Gumroad, Topmate or Instamojo as the product file.
  2. Include a blank sheetShare a copy link of a clean sheet with both tabs and sample rows, so buyers start with the right columns.
  3. Add a short setup videoShow copying the sheet, pasting its link into config.js and dragging the folder into Netlify. It removes almost every support question.

Who to sell to

  • Education creators on Instagram and YouTube with several courses or resources to link.
  • Tutors and coaching institutes sharing notes, batches and test series.
  • School teachers building a class resource library.
  • Coaches and course sellers who want a premium storefront for their programmes.
14

DM scripts for buyers

Always send a live demo link. A demo built with the buyer's own course names converts far better than a generic pitch.

DM · Education Creators
Send with your demo link
Hi [Name]! I've been learning from your [subject] content.

I noticed your courses and notes are shared as a list of links. I build bookshelf pages where every course stands on a shelf as its own book, students filter by subject, and tapping a book goes straight to enrolment.

Here's a live demo: [your demo link]

The best part: you update it yourself from a Google Sheet, so adding a new course takes 10 seconds. Want me to make a quick preview with two of your courses?
DM · Teachers & Coaching Institutes
Works for tutors and institutes
Hello [Name], I help teachers share their notes and courses in a way students actually enjoy.

It's a bookshelf website: each subject or batch is a book standing on a shelf, students filter by class or topic, and tapping a book opens notes or a payment page. It works on any phone, and you manage everything from a Google Sheet.

Demo: [your demo link]

I can set it up with your subjects this week. Shall I send a sample with your class names?
15

Skills you'll learn, and how to put this on your resume

SkillWhat you learn
HTML, CSS, JavaScriptHow a real website is structured, styled and made interactive
Advanced CSSBuilding an illustrated interface — gradients, transforms, shadows and transitions — with no images and no 3D library
Google Sheets as a CMSRunning a live website from a spreadsheet, with no database
Deployment and DNSPublishing on Netlify or Vercel and connecting a custom domain
Prompting AI coding toolsWriting structured, testable instructions for Claude Code
Selling a digital productPricing, packaging and pitching a template to real buyers

Add it under Projects with your live link:

  1. Built and deployed a bookshelf website template in vanilla JavaScript, HTML and CSS, rendering every book as a CSS-drawn spine with category filtering, an accessible open-book dialog and a responsive mobile layout, hosted on Netlify.
  2. Used Google Sheets as a no-backend content manager: the site reads sheet data as CSV, checks for changes every 15 seconds, and re-renders the shelf without a reload or redeploy.
  3. Packaged the project as a digital product for education creators, handling delivery, onboarding and custom-domain setup, built with AI-assisted development in Claude Code.
16

Frequently asked questions

How is this different from the other bookshelf guide?

Both run on a Google Sheet and one Claude Code prompt, but they build different pages. This one is the book spine bookshelf, or spine wall: every book stands side by side on a single shelf, spine out, filtered by category chips, and clicking a spine opens it. The carousel bookshelf is a 3D room where one book faces the reader at a time, the walls change colour with its cover, and you can turn the pages. Pick the book spine when there are many books to scan; pick the carousel when there are a few to show off.

Do I need to know coding?

No. You create the Google Sheet, paste the prompt with your sheet link, and Claude Code writes and tests all the code. You only need to follow the steps and check the result in your browser.

Why create the Google Sheet before running the prompt?

The prompt reads your content from the sheet, so it needs the link to start. Claude Code can't sign in to your Google account to create a sheet for you, and keeping content in the sheet means you never edit the prompt to change a book.

Can I add more columns later?

Yes. Extra columns are ignored, so nothing breaks. To show a new column on the website, ask Claude Code once, and from then on it updates from the sheet automatically.

Do I have to redeploy when I change a book?

No. Sheet edits appear on the live website within about a minute. You only redeploy when you change the code or design.

Can buyers edit my Google Sheet?

No. Your sheet is view-only by link. Each buyer gets their own copy of the sheet, which only they can edit.

Is ₹3 lakh a realistic income?

₹300 × 1,000 sales is ₹3,00,000 in revenue, but it depends entirely on how many buyers you reach. Treat it as a target to work towards, and start by getting your first 10 sales and testimonials.

Build 100 AI Projects With Me

This is one of the 100 AI projects I'm building to help you learn AI by making real things. Comment "GUIDE" on the reel and I'll send you the prompt, the sample sheet and this full guide.

Follow on Instagram →