Continuing the discussion from Structuring Cordova + web app:
Hi, newbie here. Apologize for the length of this post in advance or messing up any tech details
We are planning to build a B2B SaaS application using Meteor that has the following requirements and I’m looking for feedback on how to best structure the application and file layout. I’ve also read the the topics listed below as they are related, but still not clear to me what is the likely best approach.
We will have a Cordova/Meteor app that is integrated with phone features such as GPS, contacts, maps, etc. We would like to support hot code pushes to mobile app without going through app store. Users should be able to register and login to our system from the mobile app. Assume UI is built with something like Meteoric. This is the primary way users interact with our system.
We will have a web version of the app that supports a slightly different set of functionality like admin and analytics type features (let’s assume 60% functional overlap with mobile) and will have different routes and UI flow than mobile app. If a user tries to access the web version of the app at http://app.company.com from a mobile browser they should be directed to download the cordova mobile app. Users may register and login to our system from web app and both apps should share the same DB. Assume the web app UI is built on Bootstrap or Semantic UI or the like.
In addition, we will have a static B2B website at http://company.com and blog at http://company.com/blog and in the future maybe a few other static CMS pages. Our original thoughts were to use a CMS like Wordpress for this part of the site and Meteor for our app. However, we would prefer not to have a completely separate code base and not muck around with different language, UI, etc. Also, looks like some nice packages to add blog/CMS GitHub - orionjs/orioncms: [Old] Orion is an open source framework built on Meteor that makes complex as well as simple apps possible with minimal effort. and GitHub - meteor-blog/meteor-blog: Gives you a basic, out-of-the-box blog at /blog
The CMS would be accessed by marketing folks to change copy, do landing page a/b testing, write blog posts, capture leads, etc. We would have admin roles/users set up to access the CMS. In fact, static site could potentially be on separate DB from mobile/web apps as when a user wants to login/register/use web app they will do so from http://app.company.com. Our concerns with static website are load time and SEO. We would probably prefer not to load entire web app when someone first comes to our site as most visitors won’t be registering or logging in on their first visit.
Therefore, any feedback from experienced users on the following proposed file structure or other thoughts on how to deal with our specific requirements? Thanks so much!
- web - Meteor application 1
- client - Web specific client
- server - Server code which works with web and mobile client
- lib - Lib code which works with web and mobile client
- mobile - Meteor application 2
- client - Cordova specific client
- server - Symlink of
- lib - Symlink of
- staticweb - Meteor application 3
- client - code that can runs on desktop or mobile browser
- server - Server code which works with desktop or mobile browser
- lib - Lib code which works with desktop or mobile browser
- web - Meteor application 1
OR should we combine static web and web app in one application folder?