Astro
The shop builds down to plain files, so there's no server sitting there waiting for someone to show up. It's static assets on a CDN, and JavaScript only loads where a piece of the page actually needs it.
At rest: $0A shop I own outright, built to cost me almost nothing until I have something to sell in it.
I make things and I needed somewhere to sell them. Not a listing on somebody else's marketplace, and not a storefront I rent by the month that takes a cut of every order. I wanted a shop I own end to end, one I can run a small business under, and one that costs almost nothing to leave standing while I get the first products finished.
No platform to get locked into. The code, the data and the domain are all mine, and I can move the whole thing if I ever need to.
There's no cost of goods on a digital file, so every monthly fee comes straight out of what I keep. I'd rather not have any.
I built the whole path first: browse, buy, deliver, receipt. That way opening the shop is just a matter of having something to put in it.
I picked every piece of this the same way. What does it cost me in a month where I don't sell anything?
The shop builds down to plain files, so there's no server sitting there waiting for someone to show up. It's static assets on a CDN, and JavaScript only loads where a piece of the page actually needs it.
At rest: $0Catalog, accounts, and the protected storage that downloads get signed against. A shop this size fits well inside the free tier, and it's just Postgres underneath if I ever have to move it.
At rest: $0Hosted checkout, guest only. I pay per transaction, so a quiet month costs me nothing and nobody takes a platform cut on top of the processing fee.
At rest: $0, per sale onlyOrder receipts and download links. This is the one part that has to work on the very first sale, and the free tier covers a lot more email than I'm going to send for a while.
At rest: $0What it costs me to leave Ouros standing: the domain renewal. Everything else I only pay for when something sells, which means the shop can sit closed for as long as it needs to.
What I'm selling is photography, so the site had to stay out of its way. I set the type scale, the colours, the spacing and the components before I drew any screens. It's a small system on purpose, small enough to keep in my head, which matters when I'm the one building it.
One background colour and one text colour. All the other colour comes from the photos.
Light weights at big sizes. Never bold for emphasis, use letter spacing.
Monospace for the specifics: file sizes, categories, order numbers.
Hairlines instead of cards. No rounded corners except the filter pills.
Five screens, two sizes. Scroll a frame and the page inside it scrolls with you.
The hero, the grid, the filters, the FAQ and the newsletter, all on one page. With a catalog this small a filter beats a menu, but the filter writes to the URL so a link to just the Lightroom presets still works if I grow.
Show the work first, then answer the practical questions. What's included is open by default, and compatibility, file type, delivery and support sit right there instead of buried four clicks deep in an FAQ.
I don't have product yet, so the honest version of the cart is an empty one. I didn't want that to look broken, so I designed the closed state instead of patching it later. One flag runs the cart, both buttons on the product page and the badge in the header, and it says plainly that the shop hasn't opened yet. Flip the flag and it's the live cart.
If the only thing a buyer gets is an email, then the most fragile moment in the whole shop happens somewhere I can't see it. So the confirmation page is a real page. It checks the Stripe session, signs the download links, empties the cart and gives people somewhere to come back to. It's the only piece of real backend work in here, and it's the part that decides whether someone trusts me with twenty dollars.
The hard part is done. The catalog, checkout, signed delivery, receipts and the closed state are all built and tested, and the shop is one flag away from taking money. What I don't have yet is product. It's sitting at the last step on purpose until the first collection is finished.
Brand, design system, five screens
Checkout, delivery, receipts
The catalog