Using Meteor to build Shopify, good idea?

Shopify is build with Ruby on Rails. Would Meteor be a good tool to use to build a shopify-like platform? Why or why not?

It would and has already been a great tool :slight_smile:

See https://reactioncommerce.com/ and note the github & atmosphere links at the bottom (in addition, of course, to the actual product info).

By @aaronjudd and others.

1 Like

Thank you. But to clarify I am not necessary talking about a shopping application, but a platform like shopify. Iā€™m talking about managing distributed systems, managing the hosting of many websites, etc. Should I be worried about efficiency/performance here?

Yes, Meteor would be a good tool to build just about any web applications. Shopify is pretty run-of-the mill when it comes to web technology. Itā€™s a great service, but thereā€™s nothing unusual or extraordinary about the fundamental web technologies for the API and admin backend. The challenges would be with how the client ecommerce sites are built. Iā€™m not sure how Iā€™d architect things so that clientā€™s can built their site in HTML and CSS and while having access to ā€˜liquid variablesā€™ to render product and category pages under Meteor. Maybe thatā€™s a better question to ask here: something specific how implementation details. Would be good to dig in to reactioncommerce to see how they are doing it.

1 Like

Yeah, but even with reactioncommerce, youā€™ll see at the bottom of that page that at the end of their alpha period alone, they had ā€œ8749 shops createdā€. Iā€™m not familiar with reactioncommerce specifically but generally for sites like these itā€™s still one web app serving all these other ā€œvirtualā€ sites, so yes, certainly possible to build something like this.

Traditionally Meteor was a little harder to fine tune to mass performance, just because there werenā€™t a lot of pre-boxed solutions and you had to really know what you were doing. I believe the two biggest issues are now solved: 1) You can use Galaxy for easy deployment with scaling and 2) You can use Apollo/GraphQL for data transfer.

For custom layout per client like maxhodges it talking aboutā€¦ you can retrieve CSS from the database and inject via JS. And if custom templates are allowed too, you just need a custom end point to serve the compiled templates from the database too (as JS). Those templates would still be Blaze/React/whatever that can use the data passed to it like normal.

2 Likes

for a multi-vendor ecommerce platform where each site has itā€™s own domain, iā€™m not sure if you can do that with galaxy today.

Oops, yes, youā€™re absolutely right. Something to discuss with the Galaxy team for the future. For now youā€™d need to be familiar with (or employ someone familiar with) typical devops scaling practices for node apps. Off the top of my head I think the only Meteor specific thing is the requirement for sticky sessions. So yes, definitely a lot more work without Galaxy, but yes, still fine for Meteor.