Getting started with Stall
Start beside your existing shop with two products and a Stripe test payment. A fresh Stall installation has no sample products, stock or orders. You can open the desk before connecting providers; purchases need both Pier and Stripe.
Open your local installation
Install Git and Node 22 or newer, then run:
npx -y @runeditrun/rer cli install
export PATH="$HOME/.local/bin:$PATH"
git clone https://github.com/just-every/run-stall.git
cd run-stall
rer devRER prepares the checkout, dependencies, database and local owner. The first run can take several minutes. If interrupted, run rer dev again to resume.
Open the private RER_OPEN link printed in the terminal. At Finish setup, review the owner's name and email, tick I confirm this owner account is ready to use., then select Finish setup. Treat the entry link as a credential. Development email is suppressed, so use that link for local owner access.
Use the RER_READY origin for /app (your Shop desk) and /shop (the customer shop). For the local run site, open /run on the RER_SITE origin; its port can differ from the app port. The public run site is at https://run-stall.com, and you do not need a domain to try Stall.
Stop the app with rer dev --stop or Ctrl-C. The full local reference covers owner configuration and other commands.
Connect stock and payment
In Pier, have two active, stocked, sellable SKUs and an existing customer representing this online shop. Keep each SKU identical in Pier and Stall.
Follow Pier and Stripe connections to configure Pier, your Stripe test key and the signed webhook. Keep credentials private. Restart the app after changing local configuration.
At Shop desk → Connections, check Pier stock, Stripe checkout and Stripe webhooks. The Configured indicators show that configuration is present; confirm the connections by completing a test order.
Pier owns stock, reservations and dispatch. Stall owns listing names, descriptions and AUD prices. Stall checks Pier at publication and checkout, and reserves stock after verified payment. Stock can change during payment, leaving a visible shortfall to resolve in Pier.
Prepare two products
Use Products to prepare and publish each product, or use Move in to import a Shopify product CSV. Imported products remain unpublished. Review their details and separately prepare and approve publication before opening the customer shop.
Take a test order
Open
/shop, choose whole quantities of your published products and enter Email for your order.Select Review order, check quantities and Total · AUD, then select Pay … with Stripe.
Complete payment using your Stripe test setup. Returning to Stall does not confirm payment: Stall verifies the Stripe session, amount and currency before recording it.
At Shop desk → Orders, select Reconcile / retry pending work when needed. Continue when the order is reserved. Resolve a shortfall in Pier, then reconcile the same order.
Prepare a shipping reference, review the saved draft and approve shipping. Check for shipped, then try a one-line partial refund. The orders guide explains each step and pending results.
Before relying on the installation, save a private backup. For hosting, see Deploy your shop; a workers.dev origin is sufficient.
Business time
Stall displays shop activity and approvals in Australia/Perth time, including the time zone beside each time. Set businessTimeZone in src/stall/ui/presentation.tsx to the IANA time zone for your business.
Invited people in local development
After the owner invites someone, the local sign-in page lists their name beside the owner's entry. Choose Continue as for that person. This accepts the current invitation and opens their real account with its assigned role. The same private development entry is required; canceled invitations stay closed. No outbox link or email delivery is needed in development or demo mode.