GitHub

Rearrange the storefront without a deploy.

Pages are rows of typed blocks, the feed reorders itself every five minutes, and a theme change moves every surface at once.

PostgreSQLRedisS3StripeResend
admin.yourstore.com/content/blocks
Homepage7 blocks · published
banner · Spring drop
drag
products · New season
drag
feed · rotating
live
collections · resolved live
live

Merchandising waits on engineering.

A seasonal banner becomes a ticket, a branch, a review and a deploy window. By the time it ships the season has moved on, and nobody wants to touch it again until next year.

A page is a list of rows.

Every storefront surface is composed from the same ten block types. Drag one into a new position, publish, and the cache tag for that page drops. The deploy pipeline never hears about it.

storefront/page.tsx
New season
Sunset Linen Shirt4.8

4 colours · in stock

$128
Everyday Merino Crew4.6

6 colourways · machine washable

$96
admin/blocks

Seven blocks, dragged into order.

admin/theme

One palette, every surface.

Storefront feed
Rotating

09:00

1
2
3
4

09:05

1
2
3
4
Cycle
5 min
Cache hit
100%
Jobs
0
Sunset Linen Shirt
Everyday Merino Crew
Ceramic Pour-Over Set
Canvas Weekender Bag
Wool Overshirt
Selvedge Denim
Leather Card Holder
Cotton Twill Cap

Sunset Linen Shirt

4 colours · in stock

Price
$128
Rating
4.8
Status
In stock

The shop looks different after lunch.

Product order refreshes on a five-minute cycle. Everyone inside the same window sees the same order, so pages stay cached and the site stays fast.

Orders through the day

By hour
5minute cycle
4 orders
6
12 orders
8
26 orders
10
41 orders
12
33 orders
14
38 orders
16
52 orders
18
61 orders
20
29 orders
22

Change one colour, every page follows.

Blocks render from your theme settings rather than from a stylesheet, so there is no template to hunt through and no stragglers left behind.

A half-finished block will not build.

Add a block type in one place and TypeScript lists every file that still has to handle it: the registry, the admin form, the renderer branch.

Add a block typeTyped
Registry entry
required
Admin form
required
Renderer branch
required
Half-finished block
won't build

Product cards you can restyle.

This grid is a block you drop on a page, not a template you fork.

The products blockYour theme
New season
Sunset Linen Shirt4.8

4 colours · in stock

$128
Everyday Merino Crew4.6

6 colourways · machine washable

$96
Low stock
Ceramic Pour-Over Set4.9

2 sizes · dishwasher safe

$74
Canvas Weekender Bag4.7

38L · waxed cotton

$164
banner
slider
products
feed
categories
collections
badges
nav
content
filter

Another template language to learn?

No. The storefront is a Next.js app in your repository, and a block is a typed record. There is nothing between you and the JSX.

No proprietary runtime

Next.js

If you know Next.js and Tailwind, you already know how to change the storefront.

Real components

The UI is React in your repository. When the settings are not enough, you edit the component.

Two screens you use daily.

The product editor and the order view.

Sunset Linen Shirt

Draft
1

Blue linen shirt, short sleeve

old
2

Breathable European linen, cut for hot days

AI

Variants

4

In stock

128

SEO score

92

Copy, SEO, and alt text drafted · publish when you approve.

AI writes the listing, you approve it

Point Litestore at a product and it drafts the description, SEO fields, and alt text in your brand voice. Every draft lands in review — nothing goes live on its own.

Order #1042

Paid

Maya Okonkwo · returning

Checkout completed in 41 seconds

Fulfill
Payment

Captured via Stripe

Stock

Reserved across 2 locations

Email

Receipt and tracking sent

Total

$182.40

Items

3

Ship

Express

Ready to ship · payment, stock, and address all check out.

Checkout to fulfillment, end to end

Cart, payment, inventory, receipts, and shipping all live in the same app and the same database. No middleware, no per-order platform cut.

10Block types

Composed into any page

5 minFeed cycle

Reorders without a job

0Deploys

To change a page

1Theme source

Storefront and admin together

0%
Cache hitwithin a window

Live in one market, hidden in another

Set visibility per channel without duplicating the product.

Options and variants

Define options once and the variants are generated, so size and colour stay in sync.

One database

Reviews and orders are in the same database, so a verified-buyer badge is checked against a real order.

Give merchandising the keys.

Blocks, themes and the feed are in the repository from the first clone.

10 block typesMIT licensedNo deploy to publish