31 comments

  • thelittleone 126 days ago
    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).
    • nextworddev 126 days ago
      What alternatives do you recommend?
      • notpushkin 126 days ago
        I’d cautiously use Stripe in a way that allows you to switch to another payment provider if/when needed.

        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/

        • Palmik 126 days ago
          For one time payments, like in e-commerce, it's relatively trivial for even a small business to implement.

          For subscriptions, achieving portability is much trickier.

        • ilrwbwrkhv 126 days ago
          Lago is not a payment service provider. You cannot charge credit cards through them.
          • selcuka 126 days ago
            Note the GP's first sentence:

            > [...] 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.

            • notpushkin 126 days ago
              This exactly. Start with Stripe, swap them out if problems arise (or your MRR is high enough for you to be able to negotiate a lower % with other providers etc).
      • chasebank 126 days ago
        Use an agnostic payment vault like spreedly or hyperswitch and send transactions to whichever gateway you’d like. Every processor wants vendor lock-in, terrible for a business. I’m not sure there’s a great option for small ecom businesses with no dev team, though.
      • marcus_holmes 125 days ago
        I would store my data in a database that I control, so that it cannot be disconnected or altered by a service agreement change, or an API "upgrade".

        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.

        • fgkramer 125 days ago
          You understand the complexities and risks involved in maintaining the setup you’ve described?

          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

          • marcus_holmes 125 days ago
            I agree, which is why most people just use Shopify and make all this their problem.
      • dallasg3 126 days ago
        Snipcart?
  • zaiste 126 days ago
    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 `[email protected]` and then enter `000000` when it activates.

  • turnsout 126 days ago
    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 126 days ago
      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
      • turnsout 126 days ago
        Sure thing! On the pure digital download side, take a close look at what Gumroad [0] is doing. Also check out Sellfy [1], which is also sort of a Shopify replacement.

        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-downloads
  • busymichael 126 days ago
    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 126 days ago
      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!

    • synicalx 126 days ago
      > WooCommerce should be filling the role of viable self host alternative to Shopify, but it falls short.

      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.

      • zaiste 125 days ago
        I completely agree with you on WooCommerce themes.

        we're also working on themes, which will be based on shadcn UI.

    • internet101010 126 days ago
      The little link to show full cart when adding something is another nice touch.
  • dwwoelfel 126 days ago
    How do you handle shipping price calculations? Is that also a feature in Stripe's Product Catalogue?
    • zaiste 126 days ago
      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 126 days ago
      There are several third parties to get this data.

      I prefer Shippo, know the founders, and integrated inside Weebly (now Square).

  • qianli_cs 125 days ago
    If it doesn't need a database, then how does it manage inventory? For example, what happens if multiple people try to buy the same products but you don't have enough inventory?
    • zaiste 125 days ago
      We started by storing data like stock as product metadata directly in Stripe. Plus, we’re developing a thin layer to manage the sync between individual stores and Stripe (e.g. atomicity)

      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.

  • maaaaattttt 125 days ago
    Tried the demo and as people report it's very well done and fast! Good job!

    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.

    • zaiste 125 days ago
      Thanks! Happy you liked it!

      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...

  • mmcwilliams 126 days ago
    This is pretty slick. I like that you have Umami support. It would be nice to wrap all of this up in a Dockerfile but that wouldn't be too hard to do for my own purposes.

    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!

    • zaiste 125 days ago
      Thanks!

      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

      • mmcwilliams 125 days ago
        Happy to beta test! I'm available at hi at username dot com
  • todotask 126 days ago
    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?
    • typeofweb 125 days ago
      Of course! It’s open source for a reason: feel free to fork and disable prefetching. Although, in my opinion, that’s not the best idea if you have your users’ experience in mind.
    • prophesi 126 days ago
      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

  • wired_devil 126 days ago
    Nice! I was searching for something like this! Jus got a install error: corepack install Adding [email protected]+sha512.60c18acd144bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1 to the cache... Internal Error: Mismatch hashes. Expected 60c18acd144bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1, got 60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1
    • typeofweb 125 days ago
      We've updated pnpm to 9.10.0, and it's alright now. Thanks for pointing this out to us!
    • zaiste 126 days ago
      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

  • ctrlGsysop 126 days ago
    Nice setup. I hope you and the team succeed! When new ecomm systems fire up every couple years, I always hope B2B functions (volume pricing, accounts, wholesale) get to the front of the list but alas most focus on B2C - I get it, founder backgrounds with consumer products usually drives the initiative. But often the wake is a 1k dead small stores and a short product life because no PMF. But you can get tech debt lock-in with B2B - to possibly help extend your runway ;)

    But of course, stick to your roadmap. It’s nice seeing you saying ‘no’ to things.

    • typeofweb 125 days ago
      Thanks for the kind words! We read and analyse all feedback, and we’re grateful for it.
  • atrus 126 days ago
    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 126 days ago
      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 126 days ago
        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!

  • kennywinker 126 days ago
    One limitation of using stripe as a backend, is that many online sellers end up using multiple marketplaces. I sell via my web store (stripe backed), via tindie, and via reverb.com. I started building an admin app to handle generating shipping labels and tracking order status. My initial version used stripe metadata to store all this, and it worked great - but once i started selling elsewhere, i had to use a traditional db backend to store data associated with those orders.
    • zaiste 125 days ago
      That's an interesting insight, and I'd like to learn more about it.

      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

      • kennywinker 125 days ago
        Oh... I hadn't though of that. I guess you're suggesting maybe tracking orders in stripe by creating new orders to mirror the ones made outside of stripe? I would have guessed that stripe's api wouldn't have room for that - but that might be short shortsightedness on my part. I may have to look into that next time I touch the admin app.
  • stopachka 126 days ago
    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 126 days ago
      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.

      • steve_adams_86 126 days ago
        This strikes me as smart. I'm building something similar based on pocketbase, which I really like, but I dislike the complexity in general. I wasn't smart/brave enough to go down the metadata rabbit hole despite knowing it was a possibility, but I'm half-regretting it now. It's awesome to have a fully static store with no database to worry about.
  • subarctic 126 days ago
    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?
    • typeofweb 125 days ago
      It is practical, you’ll just have to share the changes you’ve made under the same open source license. Alternatively, you can reach out to us to obtain a commercial license that’s not open.

      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!

  • mbym 126 days ago
    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 126 days ago
      > 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?

  • aloukissas 126 days ago
    How complete is Stripe's tax product? Typically I've seen ecommerce apps use something like Avalara for this.
    • zaiste 126 days ago
      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 126 days ago
        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 126 days ago
        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.

  • cranberryturkey 126 days ago
    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 126 days ago
      That sounds like a great idea!

      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?

  • tensor 126 days ago
    How does the shipping support work? Is it easy to add plugins for different shipping companies?
    • typeofweb 125 days ago
      Not right now, unfortunately! For now, there’s just a flat shipping rate. We’re working on it!
  • bbbbbenji 125 days ago
    Would it be possible to accept traditional bank transfers? The order would be processed by Stripe but payment manually.

    Has anyone made a script to import products from Woocommerce to Stripe?

  • redareda9 125 days ago
    Seems really good and fast!

    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

    • zaiste 125 days ago
      We're planning to stick around a bit longer :)

      Is there anything I can do to help or convince you to give us a try?

  • lakomen 126 days ago
    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 126 days ago
      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.
    • typeofweb 125 days ago
      Google Pay is available as part of Stripe offering!
  • kungpowpow 126 days ago
    Is Shopify only used for inventory/product management? Does Shopify fully free if you use Stripe as a payment processor?
  • mrbluecoat 126 days ago
    Really great start. Would love to see integration middleware support added to the mix, like Celigo, IFTTT and Zapier.
    • zaiste 125 days ago
      Thanks! Could you describe your use case so that I could better understand how to implement this?
  • tamimio 126 days ago
    Looks great! I know stripe is core of it, but is it possible to add crypto currency payments as an option too?
    • zaiste 126 days ago
      Thanks!

      Yes, we’re working on this - we plan to start by enabling stablecoin-only payments. Would that work for your use case?

  • 2Gkashmiri 126 days ago
    Any way to add support for something like razorpay.com ? Stripe is not available everywhere
    • zaiste 126 days ago
      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?

      • dev_0 126 days ago
        [dead]
  • pstorm 126 days ago
    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 126 days ago
      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 126 days ago
      This really isn't a problem a web platform can solve for itself.

      Just use server side tag manager.

  • todotask 126 days ago
    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?
    • typeofweb 125 days ago
      Can you share more details about the problem you’re describing? I’ve never experienced any broken links after redeploying apps. Do you mean it’s vercel specific? How to reproduce?
      • todotask 123 days ago
        Those shared on Twitter when they deployed React app and assuming I came across one of the popular site that always prompt a notification (https://www.carousell.sg) to reload the page whenever there is a new update.
  • bartimor 126 days ago
    Fingers crossed! A great team behind the project!
    • zaiste 126 days ago
      Thank you for the kind words! :)
  • Eric_WVGG 125 days ago
    Thank you, from the bottom of my heart, for naming the project “YourNextStore” instead of “MyNextStore.”
  • skilly 126 days ago
    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!