Big product catalog. Is Meteor good choice?

Doing the same at the moment, for now we have over 200 dealers with ~400000 products. So I can give you a few advices or notes:

  1. Make publish non-reactive
  2. Use Meteor 1.3 and React
  3. Last month we separate single web-shop into smaller subdomains with shared DB
  4. SEO is awesome with Meteor and React. For now we hook requests from seo-engines and generate ‘light’ and semantic-pretty html on the server side
  5. Use synced-cron package for sheduled jobs (mean loadining xml catalogs from dealers)
  6. For now we are running on 5 DO 15$ containers
  7. Use Kadira for perfomance monitoring and optimization
5 Likes

Thanks @mrzafod !

I am very glad to get some ideas from people who are dealing with similar task.
Especially I was concerned about SEO. Now your reply answers it all.

regardless of the specific format, you’ll most likely want to just convert those XML to JSON so that you can efficiently wrangle that data in JavaScript and MongoDB. XML just doesn’t play well. So you’ll probably need to develop some conversion routines.

This can get you started, but it can get a bit ugly
https://www.npmjs.com/package/xml2json

1 Like

Thanks @miksdigital.

if you data isn’t changing that often (which I guess it’s probably not) I’d go for a static site like Netlify: an ultra performant platform with nodes all over the world, the “world’s fastest DNS service”, instant cache invalidation and much more.

Features include

  1. Global CDN
  2. Ultra Fast DNS
  3. High Availability
  4. Atomic Deploys
  5. Instant Cache Invalidation
  6. Security
  7. Scalability
  8. Automation

Oh did I mention free one-click SSL, form submission hooks and GitHub integration? See all the Netlify features here and read this if you’re not sure whether a static site is right for you.

You could use Contentful to manage the product data

For UI there are many options but gatsby looks promising

1 Like

Just one side question: Do you mean that SEO with React is any better than SEO with Blaze? If yes: can you explain why?

1 Like

you might want to check out the apollo stack, an implementation of graphql that plays nicely with meteor.

First it is easy to render on server side (I am used to render special layouts for bots and search engines). Second - working with special tags is super simple - you may check react-helmet for example. And few more. But dont imagine that all the stuff works perfect from out of the box. You have to do a lot of things anyway)))

1 Like

Hi @mrzafod

thanks for sharing your know how. Could you explain in a few words what exactly do you mean about that, I am not sure if I understand your tip right.

Thanks
Tom

I mean pubs like

Meteor.publish('productsPage', filter, limit, function () {
  return Products.find(filter, {limit}, {reactive: false});
});

Without diff-and-pull on collection changed.
P.S. I am kicking off pub/sub for now because of Apollo)))

1 Like

See also this:

4 Likes

@mrzafod, isn’t {reactive: false} only on the client-side? It would be awesome if that worked for the cursors returned by publications – would have given controlled reactivity while still populating the minimongo cache and optimizing the traffic (sending down only the diff). But it seems it’s not implemented like that.

@gaurav7, If you use last 1.3.4.1 it is replaced with next more powerfull features like disableOplog, pollingIntervalMs, pollingThrottleMs