Features

Everything a D2C brand needs, in the box.

There is no free tier and no paid tier. There is one product, and this page is all of it — 18 modules, 158 capabilities, every one of them included in the ₹30,000 build. No app marketplace, no upgrade prompt, nothing switched off until you pay more.

01

Storefront & theme

A shop that looks like your brand without touching a stylesheet. Every choice below is a setting in the admin, saved as a draft until you publish it.

Four header styles Default, centred, minimal or search-forward. Sticky or static.
Two footer styles Centred, or multi-column with your own link groups.
Your fonts Separate body and heading typefaces, set per store.
Card style and ratio Product card treatment, image aspect ratio and grid density.
Corner radius & button shape Sharp, soft or pill, applied consistently across the store.
Product gallery style Choose how images behave on the product page.
Announcement bar One line above the header for a sale, a cut-off date or a shipping notice.
Logo & favicon Uploaded in the admin, no file access needed.
Social links Instagram, Facebook, X and YouTube in the footer.
Draft → publish → restore Theme edits sit in a draft. Publish when ready, discard a bad idea, or restore the last published version.
Nested navigation menus Multi-level menus you reorder yourself, for header and footer.
404 and search pages Handled, styled and included — not an afterthought.
02

Page builder

Pages are assembled from typed sections rather than a freeform editor, so a page cannot be broken by a bad paste and every section stays responsive.

Hero Full-width banner with heading, copy and call to action.
Slider Rotating banners for campaigns and seasonal pushes.
Product grid Hand-picked products or a whole category.
Category tiles Visual entry points into your catalog.
Image + text Alternating story blocks for brand and craft copy.
Testimonials Customer quotes with attribution.
Countdown Live timer for a sale or a drop.
Video Embedded product or brand video.
FAQ Expandable question list, good for objection handling.
Rich text Long-form copy where you need it.
Newsletter Email capture placed anywhere on the page.
Drag to reorder Section order changes by dragging, with per-section draft status.
Image uploads Straight into a section from the editor.
Unlimited pages Any slug you like — about, care guide, size chart, shipping policy.
03

Catalog & inventory

Built for real catalogs: variants that actually differ in price and weight, stock you can trust, and the tax fields Indian invoicing needs.

Bulk import from Excelshipping soon Fill in the template, upload one file, and the whole catalog lands at once.
Nested categories Parent and child categories, each with its own image and SEO fields.
Attribute master Define Size, Colour and anything else once, reuse across products.
Generated variants Combinations built from attributes, each with its own SKU.
Per-variant pricing Price and compare-at price, so struck-through MRP is per variant.
Per-variant weight Grams per variant, which is what shipping rates are actually calculated from.
Stock tracking On-hand counts with a low-stock threshold per variant.
Backorder control Allow or block sales past zero, per variant.
Multiple images Reorder by dragging, set the primary, write alt text on each.
Custom product sections Extra titled content blocks on a product page — care instructions, sizing, materials.
HSN codes Stored per product, ready for GST-compliant invoicing.
Per-product SEO Meta title and description overrides on every product and category.
04

Product reviews

Reviews collected on your own store, not rented from a review app charging monthly.

Star ratings & written reviews Title, body and rating from the customer.
Verified purchase badge Reviews tied to a real order are marked as such.
Moderation queue Nothing appears until you approve it.
No monthly fee It is part of the platform, not a subscription bolted onto it.
05

Cart & checkout

The place most Indian stores leak money. Serviceability, COD rules and coupons are all handled before the customer reaches the payment screen.

Mini-cart drawer Slides over the page instead of interrupting browsing.
Pincode serviceability Customers check delivery before they commit — fewer undeliverable orders.
Pincode → city/state Looked up and cached, so the address form fills itself.
COD with rules Enable it, charge a COD fee, and set minimum and maximum order values for it.
Phone verification One-time code before a COD order is accepted, with attempt limits and expiry.
Coupon codes Percentage or fixed, minimum subtotal, redemption cap and expiry date.
Free shipping threshold Set the order value above which shipping is free.
Tax handling Configurable rate applied and broken out on the order.
Cart restore links A link that rebuilds a customer's exact cart on any device.
Price snapshots Line items store the name and price at the time of the order, so history stays truthful when you re-price.
Full money breakdown Subtotal, discount, shipping, tax and total stored separately on every order.
UTM stored per order The campaign that produced each order is on the order record itself.
06

Payments

Razorpay, connected to your own account. Money settles directly to your bank — we are never in the payment path.

Razorpay checkout Cards, UPI, net banking and wallets through your own Razorpay account.
Signature-verified webhooks Payment confirmations are cryptographically checked before they are trusted.
Automatic reconciliation Payment IDs matched back to the order, so a paid order cannot go quietly missing.
Manual payment marking Record an offline or bank-transfer payment against an order.
Prepaid and COD side by side Both flows in one order pipeline.
07

Shipping & fulfilment

Rate it, then actually ship it. Shiprocket is driven from the order screen — nobody has to keep a courier portal open in another tab.

Shipping zones Multiple zones with priority ordering when they overlap.
Pincode ranges per zone Assign zones by pincode range rather than one at a time.
Rate methods Flat rate or free-over-amount, multiple methods per zone.
Weight-based rating Calculated from real per-variant weights, not a guess.
Shipping markup Add a percentage on courier rates if you don't pass them through at cost.
Shiprocket shipments Create the shipment from the order, manually or automatically.
AWB assignment Pick the courier and get the tracking number without leaving the admin.
Labels & manifests Generated and stored against the shipment.
Pickup scheduling Book the pickup from the same screen.
Tracking webhooks Status updates arrive automatically as the parcel moves.
Cancellation Cancel a shipment when an order falls through.
Default package dimensions Set once so every shipment doesn't need measuring.
08

WhatsApp & Instagram

One inbox for both channels, next to the order the customer is asking about. This is the module most brands otherwise rent for thousands a month.

Unified inbox WhatsApp and Instagram threads in one WhatsApp-Web style two-pane view.
WhatsApp Cloud API Your own Meta account and number, not a shared gateway.
Template sync Approved templates pulled from Meta with their variables detected.
Send templates Fire an approved template to a customer from the admin.
Business profile Edit your WhatsApp business profile from the settings screen.
Instagram DMs Direct messages handled in the same inbox.
Auto-DM commenters Reply privately to people who comment on a post, automatically.
Public comment replies Optionally post a public reply under the comment too.
Signed webhooks Inbound messages are HMAC-verified, so nothing spoofed enters your inbox.
Read state Threads track what has been seen and what is still waiting.
09

Customers & identity

The same person browsing anonymously, ordering by phone and messaging on Instagram is one record, not three.

Identity graph Sessions, orders and conversations stitched into a single person.
Multiple identifiers Email, phone, WhatsApp ID and Instagram ID all resolve to the same customer.
Full customer view Everything they browsed, bought and asked about on one screen.
Order history Per customer, with the money breakdown intact.
Contact capture at checkout Name, phone and email recorded on the cart before payment, so an abandoned cart is still reachable.
10

Abandoned cart recovery

Carts go stale on a timer you set, then get chased on a channel you choose — with variants, so you find out what actually works.

Automatic detection Carts marked abandoned after a window you configure.
Message variants Multiple versions of the nudge, so you can compare them rather than guess.
WhatsApp or email Per variant, using your approved template or your own copy.
Send caps A hard limit on how many times one cart is chased.
Recovery tracking Sessions record whether a cart was recovered and which order it became.
One-click cart restore The link in the message rebuilds the exact cart.
11

Journeys & automation

Multi-step flows triggered by real behaviour — a welcome sequence, a post-purchase follow-up, a win-back — built visually and run by a scheduler.

Visual flow builder Build the whole sequence as an ordered list of steps.
Five behaviour triggers Welcome, cart abandoned, browse abandoned, order placed and order shipped — enrolment happens on the event, not on a list upload.
Wait steps Hold for hours or days between messages.
Filter steps Branch or drop out based on what the customer has since done.
Message steps Send on the channel you've configured.
Duplicate protection A customer cannot be enrolled twice into the same active flow.
Draft and live states Build a journey without it running, then switch it on.
Manual enrolment Push a specific customer into a flow when you want to.
12

Analytics & attribution

First-party session data on your own server, plus properly de-duplicated conversion events going out to the ad platforms.

Live visitor view Who is on the site right now, and what they are looking at.
Session journeys Replay the path a visitor took — pages, products, cart value, exit.
UTM capture Source, medium, campaign, term and content recorded per session and carried to the order.
Referrer & landing page Where each session came from and where it entered.
Device detection Split behaviour by device without a third-party script.
Conversion linkage Sessions record which order they converted into and when.
GA4 Measurement ID configured in settings.
13

Meta Pixel & Conversions API

Under-reported conversions make Meta optimise against you, and your cost per acquisition climbs for reasons no dashboard explains. Every event is sent twice — once from the browser, once from your server — and de-duplicated, so blockers and iOS cannot quietly hide your results.

Six standard events PageView, ViewContent, Search, AddToCart, InitiateCheckout and Purchase, fired from the storefront.
Browser + server, every time The Pixel fires in the browser and your server sends its own copy of the same event to the Conversions API.
Shared event ID de-duplication Both copies carry the same event ID, so Meta merges them and one purchase counts once, not twice.
Payload matched on both sides Content IDs, content type, item count and value are identical in the browser and server events — mismatched payloads are the usual reason de-duplication silently fails.
Queued, never inline Sending runs as a background job, so a slow response from Meta can never delay a customer's checkout.
Automatic retries Three attempts, then the event is parked for a human to look at rather than dropped.
Idempotent sends An event already delivered is skipped on retry, so a requeue cannot inflate your numbers.
SHA-256 hashed identifiers Email and phone are hashed before transmission. The plain values never leave your server.
Click and browser cookies forwarded fbp and fbc are passed through, which is what lifts Meta's match quality score.
IP and user agent forwarded Further match-quality signals, sent server-side where a blocker cannot strip them.
Consent enforced twice Checked when the event is captured and again at the moment of transmission — defence in depth, not a single flag.
Test event code Verify events are landing in Events Manager before you spend a rupee on traffic.
Per-event delivery status Every event records whether it was sent, skipped or failed, with Meta's own error message kept for diagnosis.
Purchases linked to orders A Purchase event carries the order it came from, so reported revenue can be reconciled against your own database.
14

Ad spend & ROAS

Return calculated against orders the store actually took, rather than what a platform claims it drove.

Spend logging Record spend by date, source and campaign.
ROAS by campaign Return measured against real orders in your own database.
Source breakdown Compare channels on the same basis.
Ties to order UTMs Because campaign data is stored on the order, not inferred later.
15

AI product content

Drafts, not decisions. Nothing is published without you looking at it, and spend is capped so a loop cannot run up a bill.

Generated product copy Titles and descriptions drafted from what you already have.
Review before applying Every draft is queued for you to apply or reject.
Daily cost cap A rupee limit per day, enforced by the platform.
Per-task cost tracking Tokens and rupee cost recorded on every generation.
Your own API key Billed to your account, at cost, with no markup from us.
Optional auto-publish Off by default. Turn it on only if you want it.
16

SEO

The unglamorous parts that decide whether Google sends you anything.

Automatic sitemap.xml Regenerated as your catalog changes.
Editable robots.txt Managed from settings, not by editing a file over FTP.
Clean URLs Readable slugs for products, categories and pages.
Automatic 301 redirects Rename a slug and the old URL redirects itself, so you keep the rankings you earned.
Per-entity meta Title, description, robots directive and OG image per product, category and page.
Default OG image A brand fallback for anything without its own.
Structured storefront markup Product data marked up for search engines.
17

Security & abuse protection

The question every self-hosted buyer asks second. Public endpoints are gated, webhooks are cryptographically verified, and nothing that accepts input from a stranger is left uncapped.

Signature-verified payments Razorpay webhooks are checked against your secret before a payment is believed. A forged callback cannot mark an order paid.
HMAC-verified Meta webhooks WhatsApp and Instagram payloads verified with SHA-256 and a timing-safe comparison, so nothing spoofed reaches your inbox.
Verified webhook handshakes Meta's subscribe challenge is answered with a timing-safe token check, not a string match.
Per-IP rate limiting Fixed-window caps shared across cart, reviews and tracking, with automatic cleanup so the counter table can't grow unbounded.
Review flood protection A hard per-minute cap per IP on review submission.
Beacon caps The analytics endpoint is capped per window, so nobody can inflate your session data.
Same-origin beacon guard Tracking posts from another site are rejected outright.
Hashed OTP codes Verification codes are stored hashed, never in plain text — a database dump does not hand over live codes.
Attempt lockout Repeated wrong codes close the verification instead of allowing a brute force.
Proxy-aware client IP Honours Cloudflare's connecting-IP header, behind a trust setting so the header cannot be spoofed when you are not behind a proxy.
Hashed staff passwords Admin credentials stored with PHP's password hashing, not reversible encryption.
Capability-gated admin Every admin action checks a capability, so an account cannot reach a screen it was not granted.
18

Admin & platform

The things that make it survivable in production, and yours at the end of it.

Role-based access Staff accounts with capabilities, so a packer cannot open your settings.
Account state Deactivate a user without deleting their history. Last-login recorded.
Background job runner Slow work queued and retried instead of blocking a page load.
Integration tests A test button per integration that verifies credentials before you trust them.
Newsletter subscribers Captured from storefront sections, stored with their source.
Activity logging A record of what changed in the admin.
Ordinary PHP 8 & MySQL No exotic runtime. Any competent developer can read, host and extend it.
Source code at handover Yours, with the database and every credential.

And the answer to "can it do…?"

Probably yes, and if it genuinely can't, you own the code — so it can be added without waiting on an app vendor to agree with you. Bring the awkward requirement to the demo.

Next step

See the real admin before you spend a rupee.

Twenty minutes on a screen share. We open a live store, add a product, run a test order through Razorpay, push it to Shiprocket and show you the WhatsApp thread it creates. If it isn't right for you, we'll say so.

One-time payment Your hosting, your choice Source code handed over No revenue share