FIELD NOTES / RETAIL & E-COMMERCE

Parents do not shop
by category.

KidNest places age at the centre of product discovery while providing what shoppers expect from a modern store — search, filtering, wishlists, persistent carts, secure checkout and fast mobile browsing.

E-COMMERCE CASE STUDY

KidNest

Age-based discovery.
Webhook-verified checkout.

Full-stack platform
KidNest / Age-based product discoveryACTUAL PRODUCT INTERFACE
KidNest product listing filtered to ages three to five
THE DISCOVERY MODELAge is a product attribute, not a filter.

A parent looking for a gift for a four-year-old should not browse hundreds of unrelated products first.

Follow the journey ↗
DiscoverSelectCartPayConfirm
DOMAIN

Retail & e-commerce

WHAT WE BUILT

Full-stack commerce platform

OUR ROLE

Product architecture to AWS infrastructure

01 / THE BUYING BEHAVIOUR

The question is not category.
It is suitability.

Parents shopping for children's products make purchasing decisions differently from customers using a conventional online store. For toys, books, clothing and baby essentials, age suitability is often just as important as category or price.

Parents typically begin with a question — what products are suitable for a 3-to-5-year-old? So the product model had to treat age range as a fundamental attribute rather than an optional secondary filter.

Rather than adapting a generic store template, the platform was designed around that buying behaviour from the data model up.

01

Category alone does not answer the question

Clothing, books, toys and accessories describe what a product is, not who it suits — which is where a parent actually starts.

02

The journey spans sessions and devices

Shoppers browse several times before buying, so carts, wishlists and selections have to survive — for registered customers across devices, and usefully for guests too.

03

The browser cannot confirm a payment

Browser-side confirmation is not evidence that money moved. Order confirmation had to come from trusted server-side events, with card data never touching the application server.

02 / INSIDE THE PRODUCT

From the age question
to a confirmed order.

Six views of the delivered platform.
Each shows another step of the shopping journey.

KidNest home page with age-led product discovery

Age leads the storefront.

The landing experience puts age-based entry points alongside the search and category browsing shoppers already expect.

KidNest home page with age-led product discovery
THE SHOPPING JOURNEY

Discover by ageProduct detailCartCheckoutPayment intentWebhook confirm

03 / PAYMENT INTEGRITY

The browser reports.
The webhook decides.

Payments could not rely on browser-side confirmation. The platform creates Payment Intents server-side, validates Stripe events, and confirms orders only from trusted server-side signals — with refund workflows supported on the same path.

Duplicate payment actions are prevented rather than reconciled later, and card data remains outside the application server throughout.

Look under the hood ↘
01

Create the intent server-side

The backend creates the Stripe Payment Intent, so the amount and order being paid for are established by the server.

REGISTERED SHOPPER

Cart across devices

Authenticated state, carts and wishlists persist server-side so the journey resumes anywhere.

GUEST SHOPPER

Local cart

Guests keep a useful local cart without being forced through registration before they are ready.

02

Validate the event

Stripe events are verified before they are believed, and duplicate payment actions are prevented.

03

Confirm from the trusted signal

The order moves to confirmed on the validated server-side event — not on the browser's report of success.

04 / THE TECHNOLOGY & THE REASON

Straightforward stack.
Strict about money.

The platform needed an infrastructure foundation able to absorb traffic peaks around holidays and back-to-school shopping, without making the application unnecessarily complex during normal usage.

STOREFRONT

React

Carries discovery, product detail, cart, wishlist and checkout as one fast, mobile-friendly storefront.

Why mobile first?

Parents browse in short bursts on a phone, so the discovery path has to work at that size before any other.

APPLICATION

Node.js + Express

Serves the catalogue, cart, wishlist and order APIs, and owns every payment decision.

Why server-owned payment?

A browser can be manipulated; an order that confirms on a browser claim is an order that can be faked.

CATALOGUE & ORDERS

PostgreSQL

Holds products with age range as a first-class attribute, alongside carts, wishlists and orders.

Why model age directly?

Discovery is only as good as the data model; age as an afterthought filter cannot lead the experience.

PAYMENTS

Stripe

Payment Intents, signed webhook events and refund workflows, with card data never reaching the application server.

Why the webhook as truth?

It is the only signal that actually knows the payment succeeded, and it is signed.

SESSIONS

JWT authentication

Keeps authenticated state so registered customers' carts and wishlists follow them between sessions and devices.

Why persist state?

Shoppers browse several times before buying — a cart that forgets is a sale that does not happen.

INFRASTRUCTURE

AWS EC2, RDS, S3 & CloudFront

Application hosting, managed database, media storage and CDN delivery for product imagery.

Why a CDN for media?

Product photography is the heaviest thing on the page, and discovery lives or dies on how fast it renders.

The architecture and product narrative reproduce the supplied project documentation. Interface values are product screen data.

Explore the documented platform stack

Frontend
React · responsive storefront · search, filtering, wishlist
Application
Node.js · Express · JWT authentication
Data
PostgreSQL · age-range product model · persistent carts and wishlists
Payments
Stripe Payment Intents · signed webhook validation · refund workflows
Infrastructure
AWS EC2 · AWS RDS · AWS S3 · AWS CloudFront

Technology names identify the documented implementation, not partnerships or endorsements.

A CONVERSATION ABOUT YOUR COMMERCE WORKFLOW

Where does your storefront
lose the shopper?

Bring one part of your commerce journey — discovery, the cart, or checkout. In 20 minutes, we will map where the data model, the session and the payment path have to agree.

20 minutes · Your catalogue, journey and constraints

CONTACT PREVIEW

Contact destination

No message has been sent. The destination will be connected before outreach.