[HN Gopher] Show HN: YourNextStore - an open-source Shopify with...
___________________________________________________________________
Show HN: YourNextStore - an open-source Shopify with Stripe as the
back end
We're building Your Next Store, a modern, ultra-fast, open-source
commerce in Next.js with Stripe as the backend - no DB required.
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, Michal 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/...
Author : zaiste
Score : 164 points
Date : 2024-09-10 14:08 UTC (8 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| cranberryturkey wrote:
| Can I import my Etsy store into this? I got a client who is using
| Etsy and would like to convert them to this instead.
| zaiste wrote:
| That sounds like a great idea!
|
| Actually, my fiancee 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?
| cranberryturkey wrote:
| i can probably find one. hit me up on email or something:
| anthony@profullstack.com
| zaiste wrote:
| Great! Let's do this. I'll send an email
| mbym wrote:
| I'm super excited for this! That demo site is so fast (I love
| Next.js).
|
| 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.
| diggan wrote:
| > I once built a website where I stored everything in Stripe
|
| 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?
| stopachka wrote:
| Tried the demo -- _very_ snappy!
|
| 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?
| zaiste wrote:
| Thanks for the kind words!
|
| 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.
| skilly wrote:
| This is an impressive project! Combining latest Next.js and
| Stripe for a no-db, open-source e-commerce solution is a
| brilliant choice. It simplifies development and boosts
| performance with modern tech. Excited to see where YourNextStore
| goes next!
| bartimor wrote:
| Fingers crossed! A great team behind the project!
| zaiste wrote:
| Thank you for the kind words! :)
| tensor wrote:
| How does the shipping support work? Is it easy to add plugins for
| different shipping companies?
| dwwoelfel wrote:
| How do you handle shipping price calculations? Is that also a
| feature in Stripe's Product Catalogue?
| zaiste wrote:
| This feature isn't ready yet, but it's something we're actively
| working on. To have shipping right away, it could be outsourced
| to a third party, and some of our partners are developing such
| functionality this way.
|
| In the long term, we aim to make it tightly integrated with
| Stripe, making Stripe the core infrastructure for your
| e-commerce needs.
| sroussey wrote:
| There are several third parties to get this data.
|
| I prefer Shippo, know the founders, and integrated inside
| Weebly (now Square).
| busymichael wrote:
| The feature I like the most in your demo: the one page checkout.
| It comes very close to shopify's excellent check out. Nicely
| done!
|
| 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!
| zaiste wrote:
| Yes! One-page checkout has been, and continues to be, one of
| our top priorities. There are still a few minor improvements to
| be made, but I'm really happy with how smooth the experience is
| rihgt now.
|
| 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!
| zaiste wrote:
| I can no longer edit the post, but here's the working demo of YNS
| https://demo.yournextstore.com
|
| To see Stripe Link in action, use the email `test@test.com` and
| then enter `000000` when it activates.
| atrus wrote:
| Oh wow, I actually built something similar using python/Flask:
| https://gitlab.com/atrus6/simple_shop
|
| 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.
| zaiste wrote:
| Using CSV is an interesting idea! I havent looked at your code
| yet - does it automaticaly sync when something changes in the
| file? Do you have an admin panel for end users? In YNS, we
| provide a dashboard that simplifies managing products and
| orders (though it's not yet open-sourced)
| atrus wrote:
| At one point I did, but as this was mostly a personal project
| to manage my own two stores I found it easier to just edit
| the csv. The only dashboard was for order fulfillment and
| getting the shipping labels from Easypost.
|
| The simpleshop code was to take the project in the direction
| you have, I just never finished/publicized it, so congrats on
| the launch!
| turnsout wrote:
| I've wanted to build this exact thing so many times--nicely done!
| I haven't dug into the details too much, but does it support
| digital downloads? That and "lead magnet" downloads are two
| things that would help a lot of stores!
| zaiste wrote:
| Thank you! we initially focused on physical products, but
| adding features for digital products should be even easier.
| Could you point me to your ideal solution or describe how it
| would work in a perfect scenario? Something we could use as an
| inspiration for both: digital and lead magnet downloads
| 2Gkashmiri wrote:
| Any way to add support for something like razorpay.com ? Stripe
| is not available everywhere
| zaiste wrote:
| we're fully focused on Stripe and don't plan to support other
| providers. This is because e-commerce is more than just a
| payment gateway. Our goal is to integrate various Stripe
| features into a comprehensive and convenient package for online
| commerce, while using the synergies between different Stripe
| products.
|
| 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?
| wired_devil wrote:
| Nice! I was searching for something like this! Jus got a install
| error: corepack install Adding pnpm@9.9.0+sha512.60c18acd144bff69
| 5d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a
| 66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1 to the cache...
| Internal Error: Mismatch hashes. Expected 60c18acd144bff695d339be
| 6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917
| ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1, got 60c18acd138bff695d3
| 39be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66e
| b917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1
| zaiste wrote:
| Sorry about that! I'd need to learn a bit more about your
| setup.
|
| 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
| tamimio wrote:
| Looks great! I know stripe is core of it, but is it possible to
| add crypto currency payments as an option too?
| zaiste wrote:
| Thanks!
|
| Yes, we're working on this - we plan to start by enabling
| stablecoin-only payments. Would that work for your use case?
| todotask wrote:
| It's fast because your demo prefetches the listings when the
| mouse cursor hovers or taps, which is possible with traditional
| e-commerce, I dislike that kind of UX that are wasting user data
| usage. Is there an option to disable prefetching?
| prophesi wrote:
| It seems like anything you can configure with next.js applies
| here. And TIL'd there isn't a way to globally disable
| prefetching[0] with it. You can disable it per individual link,
| or write & use a custom link component.
|
| [0] https://github.com/vercel/next.js/discussions/24437
| aloukissas wrote:
| How complete is Stripe's tax product? Typically I've seen
| ecommerce apps use something like Avalara for this.
| zaiste wrote:
| Stripe's tax features have worked well for our use cases so
| far, and we also have experience with Avalara from previous
| projects. Would you be open to connecting over a video call to
| discuss your specific needs? I think it might be easier that
| way as it's a broad topic :)
| aloukissas wrote:
| I don't have a need at the moment just curious. It looks like
| Stripe Tax doesn't support all US states. Will probably be a
| good product when it's out of beta!
| sroussey wrote:
| Ah yeah, the rules get messy.
|
| 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.
| lakomen wrote:
| About to start a web hosting service. I'm about to write a sales
| frontend. I picked Google Pay because it's free. I might clone it
| and adapt to use Google Pay.
| zaiste wrote:
| Congrats! Looking forward to your project! Let me know what's
| missing and what's not ideal and generally your feedback. You
| can contact me by email once you start building.
| subarctic wrote:
| I'm not that well versed in these legal issues, but is the AGPL
| practical if I want to use this to make an online store and pay a
| designer to get my own custom look? Also is there a possibility
| of third party designers/developers selling paid themes that work
| with YourNextStore, and is the licensing compatible with those
| themes being sold with a non-open-source license?
| todotask wrote:
| still think that your users will encounter broken links when you
| re-deploy a new build to production, which is common in SPAs.
| Have YNS solved this issue?
| pstorm wrote:
| I've worked in e-commerce for years and the thing that always
| slows down the sites the most is 3rd party scripts. Are you
| addressing this? I couldn't find anything in the repo.
|
| Ive had websites slow down 10x just by introducing the Facebook
| re-targeting script for instance
| zaiste wrote:
| Yes, we've had similar experiences and plan to address them to
| some extent. In certain cases, like with Facebook, it might not
| be straightforward, but we want to provide built-in
| alternatives e.g. analytics specifically tailored for
| e-commerce that cover ~80% of what you need, with the rest
| being a trade-off.
|
| I also think Facebook, Google, Hotjar et al. will eventually
| get better with those scripts.
| jklinger410 wrote:
| This really isn't a problem a web platform can solve for
| itself.
|
| Just use server side tag manager.
| mrbluecoat wrote:
| Really great start. Would love to see integration middleware
| support added to the mix, like Celigo, IFTTT and Zapier.
| thelittleone wrote:
| I would never build anything that depends on stripe. Granted
| payments is a difficult problem due to fraud, chargebacks etc,
| but stripe has a terrible track record of freezing legitimate
| accounts and downright ignoring all communications. They force
| arbitration (using an arbitrator that depends on stripe for
| revenue), and terms that allow them to invest the funds they
| freeze. Additionally, their terms prohibit class actions (though
| not sure if that would hold up).
___________________________________________________________________
(page generated 2024-09-10 23:00 UTC)