Selling online is often more complex than it needs to be. Setting up a storefront with great performance can feel daunting and time-consuming. There are many plugins, libraries, etc - the choice can be overwhelming.
Plus, in e-commerce, the backend and frontend are often written in different languages (e.g., PHP, Python, or Ruby for the backend). This increases the complexity and makes code management more challenging, especially for teams.
After working in e-commerce for several years, Michał and I set out to build the fastest and most compelling storefront for small to medium-sized merchants. Fast e-commerce sites are crucial because slow pages hurt sales [1]. Unfortunately, performance issues are still very common. The beauty of Your Next Store is its simplicity. No additional tools and no databases - just Next.js and Stripe.
On the technical side, we use App Router, React Server Component, Partial Pre-Rendering, Optimistic Updates, and Streaming with Suspense to make the store faster and leaner so it feels almost like a static website.
In summary:
Modern & Popular Stack: Built with Next.js, React.js, and TypeScript, making development faster and hiring easier compared to platforms that use less common frameworks like Shopify’s Liquid.
No Database Needed: Stripe handles the backend, reducing the need for complex infrastructure and simplifying the setup process.
Open Source: Free and open (AGPL), with the option for a commercial license if needed.
This is just the beginning. We want to make YNS even better and easier to use and eventually provide a good, open-source alternative to Shopify.
Check our code at https://github.com/yournextstore/yournextstore
We’d love to hear your thoughts and feedback! What features would you like to see next?
[1]: https://www.deloitte.com/ie/en/services/consulting/research/...
For SaaS applications, I think Lago is pretty neat, for example: https://www.getlago.com/ (open source, YC S21)
And for ecommerce, there’s so much solutions that I don’t know what to recommend. If you’re looking for something headless, I’ve heard good things about Medusa (open source): https://medusajs.com/
I would ensure that any payment processing can be done through a range of processors, so that if any one of them becomes unavailable my store is not affected and I can continue taking payments.
I would also route payments through the processors dependent on cost. Some rails are more expensive for particular transaction types or countries, etc. Being able to switch between them at will is extremely useful.
To see Stripe Link in action, use the email `test@test.com` and then enter `000000` when it activates.
In terms of lead magnets, you might check out Podia [2], which supports lead magnets as well as digital products.
Some thoughts on how basic digital purchases might work:
- The seller upload files related to a purchase (which may include variations, such as macOS, Linux and Windows binaries) to cloud storage somewhere (perhaps S3)
- After purchase, the buyer gets an email with either a license token or a download link, which leads to YNS. YNS verifies the purchase and proxies the download
- Ideally YNS allows buyers to resend the download link or download the file again on the site
- Also ideally, YNS allows the seller to issue an update, which will alert all the buyers about a new version available to download
The MVP is simple one-time purchase downloads. Subscriptions are probably out of scope for a minimal shop experience.
The lead magnet flow would be basically the same but with no purchase, but that may make it difficult if Stripe is serving as the backend!
[0]: https://gumroad.com
[1]: https://sellfy.com/use-case/downloads-files/
[2]: https://www.podia.com/features/sell-digital-downloadsWooCommerce should be filling the role of viable self host alternative to Shopify, but it falls short. Even with the plugin ecosystem, it is much harder to run an quality cart and checkout.
Congrats on your launch!
Have you tried it with Stripe Link? This reduces the entire checkout process to just four (4) clicks; no need to fill out forms as long as your details have been saved from a previous purchase elsewhere on the Internet.
Thank you for the kind words!
WooCommerce itself is mostly fine as a backend, but the themes for it (including the built-in/free ones) are mostly awful. Ugly layouts, huge bloated payloads, and checkouts that look so unprofessional most people will think they're fraudulent.
There are good themes out there but you'll be paying decent money for them.
we're also working on themes, which will be based on shadcn UI.
In the long term, we aim to make it tightly integrated with Stripe, making Stripe the core infrastructure for your e-commerce needs.
I prefer Shippo, know the founders, and integrated inside Weebly (now Square).
This solution is not (yet) ideal, but works well for most small stores and we have some ideas how to improve it further - composability/headless can be overwhelming in many such scenarios.
Just wanted to let you know that I stumbled upon a bug whilst removing products from the cart (setting quantity to 0) it started refreshing and the interface stoped responding. Maybe this wasn't due to the action but rather to the current traffic? Anyway just a head's up.
I can confirm the bug - thanks for the heads-up! We recently did a few iterations on that part, and it looks like something slipped through the cracks...
It's been a while since I've used Stripe outside of the subscription features but how hard would it be to support coupon codes or sales? Is there a plan to support this?
Great work!
We're experimenting quite a bit at the moment - starting with Umami, but we’re also considering developing a custom solution (analytics subset) specifically for e-commerce
Coupons are on our roadmap, and adding them should be relatively straightforward. Would you be interested in beta testing it with us? :)
A Dockerfile has been proposed by the community. I’ll review it today: https://github.com/yournextstore/yournextstore/pull/22/files
For starters could you remove the `packageManager` from the `package.json` entirely and try again?
if you're available, we can do a quick video call and I'll see exactly what happens on your side as I cannot reproduce it atm
But of course, stick to your roadmap. It’s nice seeing you saying ‘no’ to things.
The biggest difference between ours is that I used a local csv file as the source of truth. This synced up to Stripe as I felt Stripe really bogged down in the admin area once you hit a few hundred products, as well a working with multiple product images.
Do these also sync with Google and Facebook as well? That's def a nice feature for additional sales.
The simpleshop code was to take the project in the direction you have, I just never finished/publicized it, so congrats on the launch!
Off the top of my head, have you considered using the Stripe API directly in those other places? i.e. Stripe as the source of truth, with data being fetched to those other places as REST calls for example?
I imagine that linking those "other" orders with products might be a bit tricky, though
I was surprised to hear there was no database needed! How does that work? I guess you can cache most of the requests to stripe? What kind of data can you store on stripe?
We use Stripe’s "Product Catalogue", a relatively old but, to our surprise, somewhat lesser-known feature. By leveraging metadata, you can represent most e-commerce concepts, and we’re actively working on expanding those capabilities even further, beyond products and orders.
And yes, caching is the key ingredient in YNS. The combination of RSC and Next.js Cache works really well - different React.js components can independtly fetch remote data and Next.js gives you great flexibility in managing that.
Third party can sell paid themes as long as they’re open source – similar to how the Wordpress ecosystem works. All plugins and themes are open source, including the paid ones.
This is the state of things for now, but it could change in the future. We’re open to your feedback!
And this is awesome: “No additional tools and no [separate] databases - just Next.js and Stripe… Stripe handles the backend”. I once built a website where I stored everything in Stripe. It made it so quick to get started, and I can use the Stripe admin dashboard to make edits.
How did you manage your dev environment in a setup like that? I guess you'll have one env for production, one for staging/testing and then one that all devs share?
Is the local tax on just the product, the product + shipping, or product + shipping + handling (now you know why these are sometimes broken out)??
New York and California do it differently. And then all the way down to local municipalities. And tax holidays! So many cases to track.
Actually, my fiancée sells cosplay props on Etsy, and she was looking for a simpler solution - that’s partly how the idea for YourNextStore began.
Here's a prop she made for me :) https://www.instagram.com/p/C2fz0O8quhe/?img_index=1
Do you have a store with a smaller product catalog that we could use as a test bed for the migration?
Has anyone made a script to import products from Woocommerce to Stripe?
Unfortunately not ready to migrate everything over something that could be abandoned soon. Will wait a bit.
For now, I'm trying to move everything to Medusa.
Good luck! Promising project
Is there anything I can do to help or convince you to give us a try?
Yes, we’re working on this - we plan to start by enabling stablecoin-only payments. Would that work for your use case?
That said, the project is open-source, so the community could add support for something like Razorpay.
When you mention Stripe isn’t available everywhere, which country would you like to see added?
Ive had websites slow down 10x just by introducing the Facebook re-targeting script for instance
I also think Facebook, Google, Hotjar et al. will eventually get better with those scripts.
Just use server side tag manager.