Good afternoon everyone.
I’m a new developer, but I have been in IT for quite some time building up new systems for customers. I’m looking to develop some document apps where I take certain PDF’s and turn them into Fancy HTML forms that are then validated by code to make sure they are completed, then sent off to be validated by a reviewer who specializes in that document. From there both parties can print out the document and send it onto wherever it needs to go. The reason I’m bringing this up on meteor forum is that I would like to to be a SAAS app as I have request coming in from several people to provide this service, and I was wondering if I can use meteor to make this happen as far as having separate databases and using some type of reverse proxy to have separate domain names. Thanks for any future help. The reason I choose meter is that its the only thing I have learned so far. This would be great as a Laravel Spark app, but no need to learn a new langauage right now. If the idea takes off I would pay to get it moved to something else.
Hi @beehive414, welcome to Meteor and these forums.
SAAS with Meteor is completely possible - search these forums for SAAS and you’ll see various threads about it. Separate databases, unique URLs and reverse proxies are one method, but there are others.
In my opinion, the simplest method (as I describe here) is to have one domain name and only one database - this makes devOps much easier (no reverse proxy, trivial SSL certificates, etc.). All you need is a package like mizzao:partitioner to assign a groupId to each record in the database, and then each user can only access data from their own group.
Your use-case sounds similar to mine - an admin would create an account, and then invite people to share documents with. When the admin creates an account you assign them a unique groupId (I just use their own userId), then any users they invite automatically inherit the groupId of the admin. Any other database record these users create inherit the same groupId, and mizzao:partitioner then automatically restricts database operations to records with matching groupIds.
Welcome to Meteor, I hope you chose this platform.
However, to be honest, hosting is going to be your nightmare. My advise is if you really want to use Meteor, sort out your PRODUCTION system right now. Get a basic demo app running, and get that on production.
Meteor is very, very advanced technically, with a lot of lacking documentation. I ran in to hundreds of problems.
But you can export as an app, so that’s great for marketing
If I were going to make a PDF server, I would probably do it in PHP with Wordpress or something.
The question is: Does you app need to be real time?
Yes? Welcome to Meteor.
No? Consider that Meteor might be overkill, and you will go over-budget.
Hm, I have to disagree here. Meteor offers a lot out of the box beyond real time:
- ES Transpiling
- Dynamic Imports
- Automatic, Isolated Dev Environment
- Bundle/Build System
Regarding the devops, I don’t find Meteor to be more complicated than most other node apps. Similar to LAMP, if you need to scale, you need to know load balancing, dockerized containers, etc.
Regarding the documentation, I think lacking is probably not the right word. Between the official docs, the guide, and things like the tracker manual, there is no dearth of documentation. Much of it is written in an API style, which presumes knowledge about node and the ecosystem, but I honestly feel that there is little about Meteor that isn’t documented in one way or another.
Not trying to be argumentative, just offer two sides to the story
I agree that Meteor offers a lot more than just real time. If you already know JS there’s no point learning PHP just for the server side stuff. It doesn’t have to blow the budget either - If Galaxy is too expensive then MUP with AWS can be as cheap as a shared LAMP host and the devops is relatively easy and well documented.
One more suggestion before you get stuck in: I can’t recommend highly enough ViewModel by @manuel. ViewModel is a wrapper around React (or Blaze) which removes the need for a ton of boilerplate code and makes writing the UI really easy and enjoyable
Thanks for the advice. I do have one other question. What are people using for admin panels? I see some pretty cools by creative-tim. Are there any repositories for ones that are popular in the meteor community?
This is true. If you don’t know PHP - I wouldn’t bother learning it either. It’s quickly becoming the “Java” of the web dev world lol.
It sounds to me like Meteor would be an awesome tool for you. Start with learning publication and subscription, and you will quickly see some of the difficulties in understanding Meteor. At least, it was for me. If you can get a handle on that easily, you’re probably going to do well with Meteor. It took me like a year to understand.
But now I run an MMO built on Meteor. www.StarCommanderOnline.com