Show HN: YourNextStore – an open-source Shopify with Stripe as the back end (github.com)
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/...
91 comments
[ 2.9 ms ] story [ 170 ms ] threadActually, 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?
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?
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.
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).
WooCommerce 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.
To see Stripe Link in action, use the email `test@test.com` and then enter `000000` when it activates.
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!
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!
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?
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
Yes, we’re working on this - we plan to start by enabling stablecoin-only payments. Would that work for your use case?
[0] https://github.com/vercel/next.js/discussions/24437
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.
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!
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.
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/
> [...] use Stripe in a way that allows you to switch to another payment provider
You can still use Stripe via self hosted Lago, and replace it with something else if they ban you.
For subscriptions, achieving portability is much trickier.
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.
It’d be unreasonable for most folks who just want to sell regular products and deal with marketing and sales. Those become the biggest tasks once they start getting traction (ask any relatively successful indie hacker). Paying the processor’s fee is worth it for most
But of course, stick to your roadmap. It’s nice seeing you saying ‘no’ to things.
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