Where do I start to build a real-time web application?

I want to build a real-time web application, something like facebook or quora for example. It would have users logged in and receiving updates whenever there are new posts related to them ( like home feed)
Where do start? I am new to Meteor and javascript. I want to use MySql and not MongoDB.
How do i design responsive UI (which templating library to use)?
What all should i keep in mind before diving into blinding developing the app?
And what are DDP and live query? Can I use mysql with these?

Wow, that’s a pretty broad question. There could be literally thousands of approaches you could take, using different pieces of hardware / software. If you want something like Facebook or Quora, why not start by analyzing their tech? Take a look at StackShare.

Since I just poured a fresh coffee though, and I’m severely procrastinating, I’ll give you direct (opinionated) answers to each one your questions. Your mileage may (and should) vary.

1. Where do I start? I am new to Meteor and Javascript.

2. I want to use MySQL and not MongoDB

  • Are you really sure you don’t want to use MongoDB? If you have a specific reason not to, then you might not want to use Meteor. There are options, but since you’re new to Meteor and JS I wouldn’t recommend them. If you really want to dive in though, and a really stuck on using MySQL, take a look at:

    • Meteor Any-Db (just note that you will be severely limiting the capabilities of Meteor by using an unsupported DB)

3. How do I design a responsive UI (which tempting library to use)?

  • The videos on Frontend Masters will help you grasp the basics.
  • Within Meteor, use a CSS framework. If you’re just getting started go with Bootstrap. There are a million other options available, but Bootstrap is still the most widely used and referenced.
  • For templating, out of the box with Meteor you will be using Blaze (with spacebars). Since you’re just getting started this is still the way to go. Pretty soon though Blaze will be changing (we’re not sure what shape it will take, but the scales are tipping towards a more React like approach).

4. What should I keep in mind before diving into building/developing the app?

  • Your requirements. Seriously - don’t get too caught up in the tech. You’re building an app to accomplish a goal. Keep that goal in mind and make sure every single tech decision you make is focused on achieving that goal.

5. What are DDP and Livequery? Can I use MySQL with these?

  • They are two very important parts of the Meteor ecosystem.
  • DDP is the data protocol Meteor uses to communicate between client / server. Read the docs - they explain it really well.
  • Livequery essentially connects a database to your app so that you can run queries against it. This description is pretty simplistic - Livequery is really advanced behind the scenes. Read the docs I linked to for a good overview.
  • The above being said when you’re first getting started with Meteor, you don’t really need to worry about DDP and Livequery. They’re used underneath a few layers, so you can safely ignore them to start with. When (if) you need to dig into them further, there are a tonne of resources / packages out there to help you.
  • Regarding using MySQL with them, well sort of. If you’re just starting out though I would say no (and don’t try until you have a certain level of JS/Meteor competence built up) since SQL based databases aren’t supported by Meteor).

Okay, coffee == done - on with more procrastination!

4 Likes

Hey,
Thank you very much for a great answer. I watched a video tutorial on YouTube to create a chat app using meteor. I was blown away at the simplicity and so easy to understand .
I know that currently only mongodb has official support and redis with some features. So maybe I will think about it and maybe using mongodb only.
Hoping that meteor forum will help me in getting my app up quickly.
Once again, Thank you!