Shopify Build · Self-Directed Concept

A Shopify Storefront Built as an Expedition Log not a product grid

A concept storefront for an outdoor brand, with no client and no brief. The homepage is structured as the log of a single nine-day traverse: every section is a numbered waypoint, and a drawn elevation rail down the side doubles as the scroll indicator.

Results at a Glance

8
Custom sections with schema
9
Waypoints on the route
0
Frameworks or builder apps
Recorded rather than captured: the elevation rail draws itself on scroll, so a still frame shows a line and misses the build.

What a storefront looks like when it stops selling and starts telling

This was built to answer a question rather than a brief: how far can a Shopify homepage move away from the stacked-sections template before it stops being a shop? There is no client here, and saying so is the point. A concept lets you push technique in a way a paid build rarely allows.

The answer it arrives at is a field log. One route, nine days, 187 km unsupported. Each section is a waypoint on that route, and a product appears at the point it was actually carried, so the kit is introduced by the terrain that needed it rather than by a category filter.

Industry Outdoor & Adventure · E-commerce
Primary Result Narrative front end, standard Shopify underneath
Platforms
ShopifyDawnLiquidJSON templatesMetafieldsSVG
Services
Conceptsection architectureSVG interactionfront-end build

The interesting problem

A narrative page is easy to build badly: hard-code the story, and the merchant owns a homepage they cannot touch. The constraint here was that every narrative section had to stay a real Shopify section with its own schema, so route data, coordinates, imagery and gear lists are all editable from the theme customiser. The storytelling had to survive being edited by somebody who is not a developer.

A story the merchant can edit

Hard-coding the narrative would leave them with a homepage they cannot touch, so every waypoint is a real section with its own schema.

Dawn has to keep updating

Cart, product and checkout logic stay untouched, so Shopify’s own updates still apply cleanly underneath the storefront layer.

Specs belong to the product

Carry weight, fabric and comfort rating come from metafields, so changing a product changes the page rather than a developer changing copy.

Motion has to be optional

Everything animated respects prefers-reduced-motion, and the rail collapses to a plain progress bar on mobile.

The challenge was real, and it was costing time, money, and client experience.

How it was built

Dawn is the base and stays intact: its cart, product and checkout logic are untouched, so the store still behaves like a standard Shopify store. The storefront layer above it is eight custom sections on Online Store 2.0 JSON templates, each with a full schema of settings, blocks and presets, each independently reorderable.

The signature piece is the altimeter rail: the real elevation profile of the nine days, drawn in SVG, which redraws as you scroll and reports the current height and waypoint. Specs come from product metafields rather than hard-coded copy, and collections are organised by terrain instead of product type. No framework, no jQuery, no page-builder app.

The solution was designed from the ground up to fit this exact business.

Design in code

No static mockup stage. The layout was worked out directly in the browser, which is why the motion and the type scale agree with each other.

Build eight sections

Hero, altimeter rail, route timeline, terrain selector, material breakdown, pack loadout, map and packlist planner, each with a full schema.

Draw the rail

The elevation profile is SVG; the line advances with scroll position and a live readout reports height and waypoint.

Make it behave

Lazy imagery with priority on the hero, keyboard focus visible throughout, reduced-motion honoured, full mobile fallback.

Tools Used

Each tool chosen specifically for reliability, integration depth, and ease of use for the client.

Shopify

Online Store 2.0, JSON templates, metafields.

Dawn

Base theme, cart and checkout left untouched.

Hand-coded SVG

Elevation rail, pack cutaway, fabric section, map.

Vanilla JS

IntersectionObserver and requestAnimationFrame. No framework.

What came out of it

A narrative storefront the merchant could still edit, on a base theme that still updates.

8
Sections

Every narrative block editable from the customiser.

4
Metafields

Weight, comfort, fabric and field-test location per product.

0
Frameworks

No jQuery, no page-builder app, no dependency to inherit.

Before
The default stacked-sections homepage
Products introduced by category filter
Specs typed into page copy
Narrative pages hard-coded and unmaintainable
After
A homepage structured as one route, nine waypoints
Kit introduced by the terrain that needed it
Specs rendered from product metafields
Every section editable without touching code

Next Case Study

WooCommerce Store Built Around Seven Product Collections
Wellness · Direct to Consumer
WooCommerce Store Built Around Seven Product Collections
A small-batch herbal brand whose range only makes sense in collections, so…

Need a build like this delivered for your agency?

Send me the brief, a Figma file, a reference site or a rough outline, and you'll have a fixed quote with a delivery date within 24 hours.