OCJ.
All projects

E-commerce · Personal build

Stride

A shoe-brand e-commerce concept (running, trail, and lifestyle sneakers) with a full shopping experience built entirely by hand: catalog, cart, checkout, accounts, and a Build Your Own shoe configurator.

HTML5 Tailwind CSS Vanilla JavaScript No framework, no backend

The challenge

Prove that a genuinely full e-commerce experience, not just a product grid, could be built with plain HTML, Tailwind, and hand-written JavaScript, with no framework and no backend to lean on.

The approach

Every page is a complete, standalone HTML file with no build step required to run it. State (cart, accounts, orders) is handled entirely client-side in hand-written JavaScript, structured to behave like a real storefront rather than a static mockup.

Design

A lifestyle-brand aesthetic across category, product, and configurator pages, with product photography and video slots mapped out in a dedicated media reference guide so assets drop in with predictable, consistent naming.

Development

Plain HTML + Tailwind CSS (via CDN, no build step) + hand-written JavaScript. Includes a full catalog, cart and checkout flow, customer accounts, and a Build Your Own configurator, all running client-side.

What I solved

  • A working cart and checkout flow with no backend, entirely client-side state management.
  • A Build Your Own shoe configurator alongside the standard catalog and product pages.
  • A documented media system (a shot-by-shot reference guide) so every image and video slot has a clear spec for what belongs in it.

Result

It's live at justixxprime.github.io/stride. I built this one mostly to prove something to myself, that I didn't need React to build a real cart and checkout flow. Turns out plain JavaScript gets you further than people assume.

Everything in the box

A full e-commerce feature set, all hand-built with no framework:

Shopping experience

  • Build Your Own configurator, a mega menu on Shop, product comparison, Quick View, a size guide with a size quiz, and a click-to-zoom lightbox
  • Recently viewed products, stock urgency and "N people viewing this," and an order tracking timeline (Placed → Processing → Shipped → Delivered)

Accounts & motion

  • Log in / sign up pages with a "Welcome back" homepage greeting once logged in
  • Dark/Light/System 3-way theme toggle, a custom cursor, page transitions, a scroll progress bar, and confetti on order confirmation

Content pages

  • A lookbook with full-bleed editorial panels, a journal with three editorial posts, and a "how it's built" walkthrough page

Technical details

  • Schema.org structured data on product pages, lazy-loaded below-the-fold images site-wide, and a 404 easter egg
  • Cart and wishlist state persisted through localStorage, rebuilt live from a single shared pattern across every page

Under the hood

  • Contact and gift card requests through Web3Forms, the same no-backend pattern used across my other static builds, since a shoe brand doesn't need a database just to take a message.
  • A fully hand-rolled cart and checkout, no framework state library, just a single, shared read/write/render pattern for both the cart and wishlist so every page stays in sync from plain localStorage alone.

Screens

Stride desktop screenshot Stride tablet screenshot Stride mobile screenshot