Setup needed: open this file in a text editor and fill in your Firebase project config near the top of the <script type="module"> block (the firebaseConfig object). See the README notes shared alongside this app for exact steps.
🔒

Papa Diaries Ops Hub

Sign in with the account your admin created for you.

Papa Diaries

Ops Hub

⌂Home
The workflow
Library
●Full catalogue
●Board view
●Inventory & costing
●Categories
●Marketing & social
●Product checklist
●Playbook

Papa Diaries · Back Office

Home

Everything about a piece, from unboxing to the newsletter — live for everyone signed in.

Needs your attention

Catalogue status

Catalogue by category

Cost vs. retail by category (€)

New-stock pipeline by stage

Photo readiness — draft catalogue

Data & safety

Imports the latest prepared Papa Diaries Shopify catalogue snapshot and costing data bundled with this application into Papa OS. This is not yet a live Shopify connection — it's a one-time export I loaded in, not a live pull. Safe to run any time; it updates existing pieces rather than duplicating them. Export saves everything currently in the database to a file on your computer, worth doing right before a big change.

Loading catalogue…

Two boards, same underlying data as the other tabs — this is just a faster way to see what's stuck and move it along. Click a button on a card to advance (or send back) a stage.

Existing catalogue — publish status

New stock — unbox to publish

Pricing calculator

Same formula as Papa Diaries' own "PPD Product Sheet" costing engine: buying cost is converted to €, risk-adjusted for unsold/damaged stock (sell-through), then packaging, labour and a share of monthly overhead are added, and the price is set so your target margin and payment fee are still covered after rounding up to the nearest €0.50. These five numbers are your real assumptions — the defaults come straight from your spreadsheet. Each row also shows the catalogue's current average for that category as a sanity check.

New stock — unbox to publish

This is the working list for pieces from a purchase invoice, before they exist in Shopify. Pick one up, work through its row left to right as you physically process it, and move it to the next stage when you're done.

Supplier codePapa Diaries SKUCategoryQtyUnit ₹Line ₹ Suggested €Catalogue avg €StageShopify handle
Loading…

The category list drives the filter on the Full Catalogue and the "Category" field when logging new stock. Give each one a short SKU prefix so coding a new piece is a lookup, not a guess.

No categories yet.

Loading…

Promotion and newsletter tasks — shared so whoever's free next can pick up the next send.

TaskDueStatusNotes
Loading…

Social content calendar

This plans and drafts posts — it doesn't post for you. Real auto-posting to Instagram/Facebook needs Meta's app-review process and a backend, which isn't something this static site can safely do. Draft the caption here, then use the platform link to open it and post manually, or paste the caption into Shopify's own Instagram/Facebook channel if you have it connected.
PlatformDatePiece / themeCaption draftStatusPost it
Loading…

This is what Shopify itself actually needs to sell a piece well — not a guess. Use it at the "Write the details" step so nothing gets published half-finished.

Required to publish

Title

Short, specific, matches how a customer would describe it.

Description

Intro line + Product Details (material, plating, stone, dimensions) + Care Instructions.

At least 1 image

2+ recommended: one plain macro shot, one styled/on-model shot.

Product category

Shopify's own taxonomy (e.g. Apparel & Accessories > Jewelry > Earrings) — drives on-site filters and Google Shopping.

Price

Use the Pricing Calculator in Inventory & Costing rather than guessing.

SKU

Category prefix + next free number, e.g. ER 1102.

Strongly recommended

Cost per item

Lets Shopify's own analytics show real margin — enter the buying cost, converted to €.

Track quantity

Set inventory to 1 for a one-of-a-kind piece so it shows "sold out" the moment it sells.

Tags

Material, finish, colour pairing, and the collection/story line if it belongs to one.

SEO title & description

What shows up in Google search results — worth a custom line, not just the product title.

Weight

Needed if shipping rates are calculated by weight rather than a flat rate.

Sales channel

Confirm "Online Store" is checked under Publishing — an Active product with no channel still won't show up.

Why this exists

Photography, not copywriting, is the real bottleneck for the draft backlog — the workflow rail on the left makes that visible and assignable.

One-of-a-kind strategy

Nearly every piece carries exactly 1 unit of inventory — lean into scarcity in copy rather than treating it as a stock problem.

Supplier code convention (Saiswarpit)

On necklace/set/pushpull/brooch/bracelet/earring/ring/pendant lines, the number after the underscore is the wholesale price in tens of rupees — "Necklace_28" costs ₹280. Anklet/chain/waist codes instead encode length in inches.

The workflow, step by step

Known collection / story lines

Eve GraceEden PearlSeraphina ShineSelah Silver Ziyan AuraNaomi RoseOnyx Noir

Keep using these names when a new piece clearly belongs to one.