Using Meteor to build Shopify, good idea?


#1

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?


#2

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.


#3

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?


#4

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.


#5

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.


#6

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.


#7

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.