Given your timeframe, it might be worth considering alternatives. Shopify is a small step up from the static technologies you know. Another alternative would be to stick with static websites and use Snipcart.
A shop's content only changes when you change it. IMHO, Wordpress is a poor (but common) solution to this problem as it builds the page each time a viewer requests it. You'll have to learn and manage a lot more as well: server management, more complex caching, database.
Learning how to use bootstrap, VueJS or any other framework while building something for production is not ideal but relatively safe. Worst that will usually happen is it will take longer to ship.
But learning complex and multifaceted concepts on a production project is a really bad idea. Someone else mentioned the amount of unknown unknowns you’re facing. If you’re not really familiar with that phrase it essentially means your biggest problems are not the things you know exist but haven’t learned yet, it’s the things you don’t even know exist yet.
You’re way better off learning through pet projects and tutorials and relying on available tools to deal with things you don’t know how to or shouldn’t even be doing yourself regardless of experience and knowledge.
Don’t build the underlying e-comm app yourself. If you want to do some of it yourself, with the skill set you mention, I recommend using something like Snipcart that deals with the whole cart management for you but could be used even on a static html website. If you need more power then WordPress/WooCommerce is a good option because it’s approachable and there’s tons of documentation out there.
Check out snipcart, you can simply create a shop with snipcart and add products into simple HTML page with some JS, they provide a checkout page and so on.
When alls said and done, Shopify is probably still your best bang for buck.
You could offer Snipcart, who charge 2%. That breaks even with Shopifys basic plan at $17,400 revenue (per year).
I don't know of any tutorials specifically for 11ty eCommerce but here is a list of eCommerce platforms that work with Jamstack.
I've used Snipcart in the past, super easy to set up and will work with 11ty no problem.
> I see you’ve mentioned magento and presta. Anything else you’d recommend ?
I'm currently messing around with Sylius, which allows for separation of frontend and backend via API calls, but if you prefer something that doesn't require a PHP backend (or other selfhosted backend) you could look into snipcart which allows you to use something like Netlify or Contentful as the CMS and adding snipcart as a layer you add to your site, which handles the ecommerce part.
Probably not. WooCommerce seems to be a Wordpress plugin, and Jekyll is an alternative to Wordpress. It looks like a competitor called Snipcart https://snipcart.com/ might integrate with static site builders like Jekyll.
The first question we'd need to ask is: What is the base site architecture.
Is this:
The structure of the site and the design patterns used to create it partially rely on what type of architecture you choose.
I'd look at existing Laravel based e-commerce solutions. This link shows some working examples to explore. These real world software projects should give you an idea of which design patterns have been shown to work with each architecture.
As I always say: don't let the knowledge someone else spent years figuring out go to waste.
https://snipcart.com/blog/laravel-ecommerce-website-tutorial
Check out Django 3 by Example book, I think there is a section in there where he makes e-commerce.
Also check out this, really easy, I don't know react though so not sure how you would implement it there, but wagtail comes with an API.
https://snipcart.com/blog/django-ecommerce-tutorial-wagtail-cms
https://snipcart.com/blog/integrating-apis-introduction seems to be decent but that's a lot of work for you so i have another solution. there's an extension called copy urls which will let you copy the link to all open tabs
Unless you need something custom, go with am established vendor like Stripe or Braintree ( PayPal ). You'll likely need a cart system in place too. So it depends on how your site is setup you maybe be able to integrate the cart as a plugin.
I've also heard good things about Snipcart.
And finally, doing all that yourself is a legal minefield, not to mention a marathon project for a solo developer. PCI compliance alone is an expensive headache.
Yeah we've built tons of projects with those!
Don't want to come off spammy, but my colleague wrote a review of the top 5 with a ton of technical information about them and their latest updates. It's a bit of a time saver over researching each one through Google (which is what he was doing when he decided to just write the damn thing).
https://snipcart.com/blog/choose-best-static-site-generator
More to your point though, yeah they are super impressive. The one I'm surprised you didn't mention was Gatsby. That's been gaining tons of steam over the last half year or so!
You can build the backend of an application using all nodejs. There are a ton of frameworks for building backends / fullstacks in js, and they're pretty popular and well supported these. It's not really an obscure thing at all any more.
A lot of startups and hackathon type projects are built in node, but huge companies and government projects have adopted node.js server side frameworks like express.js.
https://snipcart.com/blog/javascript-nodejs-backend-development
You could consider using Snipcart, it's very easy to integrate into any website and it supports recurring payments and subscription plans.
If you need help with the redesign and everything just PM me, I'd be glad to assist you.
To strap/customize e-comm. on top of Jekyll with Snipcart, these might help:
Happy coding
Snipcart might do the trick here (disclaimer: I work with the guys in Québec). We've got a bunch of tuts showing how to integrate our HTML/JS cart platform with static site generators like Hugo, Jekyll, Middleman & more. And should you want to keep playing with Django, we've got a tutorial on integrating Snip with Wagtail (Django CMS) too.
Anyhow, hit us up on Intercom if you end up looking into it. And if Snipcart isn't a fit, no worries, we'll recommend something else! :)
GL
Hey OP, Snipcart team member here! Thanks for the feedback. We're always shipping out improvements to keep crafting a better product for devs. And since developers with needs similar to yours usually really enjoy working with our product, allow me to throw in a few Qs/comments:
You mentioned you don't like the cart's look. I'm guessing you were aware that all of it can be skinned to your liking with CSS? For instance, this site is running on Snipcart. We tried to make cart customization really easy for devs with our recent v2.0.
You can now send a tracking number via automatic email with Snipcart to follow-up after order confirmation. Would email customization be a big plus for your project?
As for the dashboard, I'd love to know what core options/features you believe are missing, maybe we could add these to our backlog!
Cheers!
There are some options you could use:
The team behind Next.js developed Vercel. It comes with integrations between the two and streamlines a lot of operations. But IMO Netlify might be a better bet because it's the only one between the two that allows commercial use (e-commerce) on its free tier.
​
Here's a more in-depth comparison: https://snipcart.com/blog/vercel-vs-netlify
It can be done. You could leverage the Wordpress backend APIs to fetch and render the data, e.g. (https://snipcart.com/blog/reactjs-wordpress-rest-api-example) and render it, or use a prebuilt framework that may have already handled that integration like https://frontity.org/
The easiest place to start would be to learn an SSG. If you are not experienced with frontend frameworks, a good place to start would be with Jekyll, Hugo or Eleventy. These are more traditional static site generators. You'll still get to understand the workflow and deployment, but without the learning overhead of a JS framework.
If you're already comfortable with a JS framework like React, there's Next.js or Gatsby. If you prefer Vue, there's Nuxt.js or Gridsome. If you prefer Angular there's Scully.
You could pick any one of these and build a simple project and deploy it live. This will give you a good place to start. If you want more info on which SSG to choose to get started, I wrote this article for Snipcart https://snipcart.com/blog/choose-best-static-site-generator
We just updated our article on everything you need to know about the Jamstack in 2021. We've included a section listing great Jamstack resources. Hope it can be useful!
Here are a few API/headless commerces I have recently discovered. There is a lot out there but I haven't tried any of them yet so I cannot give my input on what to use but might be some help?
Have you looked into snipcart? I've found it to be extremely flexible. Doesn't give you a cms necessarily, but allows you to work with just about any. I've used forestry in conjunction with snipcart before just as a quick proof of concept.
Your project looks pretty good on the functionality front. I ran into an issue with the ps4 page not rendering the first couple of requests I made just thought I'd let ya know. Other than that it functions well. Might want to check out SnipCart if you want to pump out some low code e-commerce sites with a client UI that is really helpful for your clients.
One interesting way to use Wordpress and publicly host cheaply is to use your local Wordpress instance as the content management system, but have it publish as a static website to something like Azure Blob Storage.
Both are solid options. I would tend to go towards 11ty because it’s plain JS which can make configuration easier.
Our team just published this 11ty tutorial in which we quickly mention some differences with Jekyll.
Hope this helps!
There's also an e-commerce recipe to quickly integrate Snipcart into a Gatsby site. It's detailed on Snipcart"s blog: https://snipcart.com/blog/gatsby-recipes-ecommerce
Absolutely. They have incredible guides on using static site generators to put together ecommerce sites tied in with their platform. And if you do use them in production (that's what we call it when we actually let a project loose into the wild) any support questions you have are answered directly by the dev team.
Happy to answer any questions you have by the way, and if you start learning these newer methods for building sites and approaching projects you are going to be lightyears ahead of the chunk of the industry who refuse to move forward and adapt (assuming you like webdev and keep with it, of course :P)
I Might even be able to find some time to review some code and give you pointers.
(by the way, meant to say good on you guys for not supporting PayPal - they're terrible to deal with on their own, but you do NOT want to try integrating their APIs...)
By the way, to set you on the right path check this guide out: https://snipcart.com/blog/react-ecommerce-gatsby-tutorial (I *know* it's React and Gatsby and you haven't touched either, but at least reading through it should give you a good idea of the concepts of the drop-in-cart)
DB architecture, sessions, user authentication, cart management, SQL injection to name a few.
Stripe 'only' takes care of your payment processing.
You'll want to look into cart management & payment processing services.
Like others have said, it depends on what you want to do. You could build Vue components into an existing Wordpress layout or you could go full Vue. You can run Wordpress in headless mode which basically removes all of the standard templating. Since Wordpress is usually for blogs and SEO content you might want to use Nuxt and headless Wordpress.
You want a gateway abstraction layer that is platform/content agnostic. You could look into Foxy.io, Moltin *I think they were bought, or Snipcart
These are all built to take care of cart/checkout while leaving platform/content all up to you. My experience is with Foxy(aka Foxycart). Very powerful and flexible. Handles shipping calc, taxes, coupons, all the gateways, etc.
It's not that Node is not mature enough, and Node definitely works well enough with relational databases to power thousands of products in production... (though that doesn't really matter much in the age of microservices).
It's that there are no eCommerce tools built specifically in Node, because the existing off-the-shelf options are already plenty and there's just no need for it. End-users are much more comfortable buying some hosting and pressing a Woocommerce 1-click install button via CPanel than they are interested in installing and configuring Node.js and using one of the many abandoned eCommerce projects out there.
Also, I think Woocommerce, Django, etc are all too overengineered for a simple 50 item shop.
It would be faster, easier and less headache to use something like Shopify / Etsy. If you REALLY want to be able to customize your shop and give it a polished look then you can add a shopping cart to any HTML page using Snipcart.
I chose django because I wanted to build an eCommerce site from scratch using a cheap shopping cart alternative. I stumbled across a blog post that detailed how to link wagtail + snipcart to create an eCommerce site easily. When I dove in and started to play around with both tools, I fell in love and committed to building the whole site with these tools.
I can't say whether these were the best tools for the job because I don't have enough experience, but they definitely worked beautifully for me without a hiccup, plus I learnt an enormous amount about web dev regardless of what language I used.
Use snipcart. https://snipcart.com/ - Then yes, all you need is HTML CSS & JS - I believe you might even be able to integrate with their API to do inventory management on their site.
Honestly, it's a "why re-invent the wheel" type thing. Like yeah you can build product pages and a checkout etc.
But if you want to build complex features like Authentication it just isn't really worth the risk to only half know what you're doing.
Snip cart will make it so you only need to build product pages with a checkout button.
Haven’t officially used them yet but they have a great technical blog and they really do offer a neat service. Check out Snipcart
Not a direct answer to what you asked but a possible alternative...
I like using Snipcart as a drop-in with Gatsby. Supports downloads out of the box. You can source product data from wherever you want. Static files, other CMS, whatever.
​
I found this quote "If you master JavaScript fundamentals, your only challenge when learning new JS frameworks will be scoped to their specific syntax". In this blog post i think you should like it
I'm itching for someone to ask me to build their store using the JAMstack and Snipcart. There's such potential and power in using this stack, but it seems hard to get the message across.
The JAMstack is great; sites load fast and have very little infrastructure to maintain. Snipcart is a clever library/platform that turns any site into an online store. You can even build your shop as a PWA and add offline/app-like functionality.
It's harder work to build than ol' "few clicks" Shopify, but the end result is a store which loads incredibly fast, is as malleable as putty, and can be integrated with just about anything.
One thing I've been suggesting to store owners is to try "Spotlighting" a particular product. Take one product that has the potential to stand up on its own and eclipse the sales of everything else, build a custom site on a dedicated domain and put a concentrated effort into the brand for that one item. I've seen this done successfully with an industrial gardening tool that generated over ~£300k/yr on its own.
I don't think Shopify or any of the current popular options are bad, in fact they're probably a sensible starting point. But for store owners that want to take things further, there are some very exciting possibilities.
Oooff. Well, it's admirable to have this much dedication to your word, but I have to say again that I would be looking at any way I could to reduce the time commitment here. For me personally, a completely home rolled back end would represent more than double the work of the frontend, so I really encourage you to look at some 'drop in' solutions, particularly for the e-commerce stuff. Snipcart comes to mind as an option.
Yes, absolutely!
https://snipcart.com/ecommerce-checkout
I will also be making a checklist in about 2 weeks that I can send to you if you'd like. Are you designing your own cart or going through a developer?
This will sound spammy, but it's actually a great tool:
Build a site with Stackbit. It bundles your theme, SSGs, and CMSs together so you can spend time customizing/improving the site without losing time with the prep. It was just publicly released yesterday at the JAMstack conf.
https://snipcart.com/blog/stackbit
This article is a basic intro but if you are interested in building JAMstack sites, I would definitely check it out.
If you're looking for something simple, go for https://snipcart.com/ . You can integrate it with whatever you use to develop a website. Shopify indeed is the best solution for a huge chunk of ecommerce websites, and it's quite flexible.
>With dynamic sites actual code is being executed to generate the page. Databases queries are being run.
Yes, those are limiting aspects, but there are frameworks like JAMStack and firebase which can work with static site generators, and would seem to alleviate a lot of those issues. I'm not sure how much more bandwidth that would use though, so from a cost perspective they might not be the best fit.
>You can't have a static ecommerce site or forum for example.
I think it's possible, here's one based on Hugo:
https://snipcart.com/blog/hugo-tutorial-static-site-ecommerce
I haven't read much about it so I could be wrong.
Here's an updated review of
Gatsby
Jekyll
Hugo
Nuxt
Next
https://snipcart.com/blog/choose-best-static-site-generator
Gatsby seems like the best option right now, based on what your design needs
Excellent list!
We had the same three in our top 5 (though we had Gatsby first, Jekyll second, and Hugo thrid). We also threw in Next and Nuxt js as we've been impressed with those lately. Really great job!
For comparison, here's the list we came up with: https://snipcart.com/blog/choose-best-static-site-generator
I wouldn't worry about a full CMS. They can get kinda clunky and slow over time. Keep it lean.
Here's a review of the top 5 static site generators in 2019:
https://snipcart.com/blog/choose-best-static-site-generator
This has tons more information about the highlights of each 5, but as some people have mentioned, you can't go wrong with Gatsby or Jekyll.
lol our team literally published an article answer exactly this a few days back!
https://snipcart.com/blog/wordpress-vue-headless
There's a demo and instructions that talk about how it was done and all the technical stuff (it was our devs who created the post and, to be honest, it's all a bit over my head... but it seemed relevant).
Hope this helps!
You should have a look at https://snipcart.com/
Unlike most other e-commerce platforms they won't tie you to their CMS and tech stack. Which mean you can build your app with the techs you want and simply add their JS to link your buy buttons with their back-end.
Cheers,
Max
In the shopping cart, give your users the chance to change the size as well (not just the quantity). That way they don't have to click back and forth if they made a mistake on the product page.
I hate to say it, but the particular shade of green is really hard on my eyes. Could just be me though.
I am not a fan of when companies auto click the "keep me updated on news" for me. Seems spammy
Other than that, really good job. Your cart looks good, overall. You may or may not benefit from this resource on optimizing your checkout flow in 2019 but I think your cart is already better than most people's I've seen!
Here is a specific resources on the checkout flow:
https://snipcart.com/ecommerce-checkout
It's a huge aspect of ecommerce that a lot of merchants over look or don't spend enough time customizing!
Initial thoughts:
-Really great design!
-Pop-up comes up way too fast for my taste. Let me scroll down at least 30% before hitting me with it.
-Navigation bar in the footer could be horizontal instead of vertical. It takes up a lot of unnecessary real estate on your page.
Shopping cart UX:
-Very clean design, nice
-Do you run a lot of promotions? Leaving the coupon field open really makes me want to leave your page to go find a coupon. If you don't run promos often, consider leaving out an open field.
-Love that you've saved time by assumed Billing address and Shipping address are the same (not being sarcastic, great job!
-Why do you ask for "company name" in the checkout process. Is that necessary? Take out as many fields as possible
-Personally, I hate it when the "subscribe to my newsletter" box is clicked for me
Overall, killer job :) You may want to check out an article we just ran on optimizing ecommerce checkout but honestly, you may not even need it. You've done a really great job!
something that is always overlooked is optimizing your checkout flow.
​
seriously, don't skip this step. SOOOOO many merchants are just leaving money on the table and pissing off their clients because their checkout flow is too complicated or asks for dumb, unnecessary information.
Seriously, UX is priority #1 from they time they get to your site, order, and receive their package. Always think what's best for them.
​
Dude, this is awesome!
Really sleek and nice blog. Good job, man!
We recently ran a demo for using Gatsby for e-commerce: https://snipcart.com/blog/react-ecommerce-gatsby-tutorial
Thought you may be interested as a Gatsby fan! :)
Again, well done!
With my most recent project, I developed the shop functionality in Umbraco and integrated it with https://snipcart.com. However, the integration would work with any CMS of your choice.
My reasoning for going with a prebuilt, secure shopping cart is just because I don't have any experience in developing a secure shopping cart/payment gateway myself. I just built the functionality within a CMS for the user to add products/sort by category etc, and left the payment part to the shopping cart.
Or just go with a completely prebuilt solution like shopify/webflow/squarespace etc.
Hope this helps.
Thank you SO much to everyone who took the time to read and write comments! Just as an update, the article went live today! Your thoughts helped give me some confidence and will improve my writing in the future!
https://snipcart.com/blog/rails-ecommerce-tutorial-refinery-cms
Thank you so much to everyone who took the time to read and give me some feedback! Just as an update, the article went live today! :) Thanks again! https://snipcart.com/blog/rails-ecommerce-tutorial-refinery-cms
​
The easiest solution would probably be something like https://snipcart.com/pricing
But they a percentage of your earnings which is more than fair.
In my opinion there really is no such thing simple eCommerce. Ecomm has a lot of moving parts and things to take into consideration and I personally think it is best to just use some 3rd party service which handles all of that complexity for you.
I used to use <strong>https://snipcart.com/</strong> a lot back at an old client-work job, it served the needs of shopping cart functionality pretty well. it may be more than what you're asking for, but it does integrate with Stripe.
Sounds like you just want to augment what you already have. Since its only two products. If you don't mind a small cut of profits being taken then I suggest Snipcart - https://snipcart.com/ sounds ideal for your use case
It depends on what kind of front-end role you are aiming for. If you want to do design integrations, I doubt you will ever need to understand RxJS. Although, if you want to be a front-end dev on a large-scale project that handles a lot of logic client-side then it might be good for you to know these patterns.
Now, to me, RxJS is something you should consider learning only if your basic web dev skills are on point, it's quite advanced stuff. I would start by focusing on HTML, basic CSS, and a lot of JS at first; the ecosystem changes fast, and these building blocks are the only constant. Here's a neat article that reflects my thoughts well: https://snipcart.com/blog/learn-vanilla-javascript-before-using-js-frameworks
I hope it helps. :)
Mmm, you could strap a lightweight static CMS like CloudCannon (or others listed in this post and make it work with Snipcart product management. However, if you want the product creation/management handled out of the box via your e-comm solution, you might want to check out Shopify Buy Button, Selz, or Ecwid. :)
Disclaimer: I work at Snipcart (so shoot us an email at should you decide to give it a spin).
Cheers
Glad to see all sorts of opinions and solutions being listed in the comments: kinda reflects the chaotic spectrum of e-commerce solutions available to web devs nowadays.
I work close to a web dev shop that does lots of .NET, and they use Umbraco on all their web projects; plays well with back-end apps too. Latest version looks pretty and is easy to use for non-techie peeps.
And for the e-commerce part, if you'd like to adopt a more API-driven/modular approach, I'd definitely recommend checking out Snipcart, and this blog post on how to integrate Snipcart with Umbraco.
Disclaimer: I work with the guys at Snipcart.
Something like Simple Cart or SnipCart will probably work in lieu of making your own.
I don't have much static-e-commerce experience so there might be better solutions I'm not aware of.
I haven't tried ambercart, but just from the website it looks a bit funky/dated. If you want a simple drop-in cart https://snipcart.com/ looks better.
You could also use paypal's checkout/cart solution which is also "drop-in" solution: https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/paypal_shopping_cart/
If the products are static and you want a proper self-hosted solution you could look at something like https://github.com/stripe/shop
All in all I'd say that 5-20 small orders per month isn't worth setting up a full e-commerce system for.