I’d like to share a little project I just started called “Meteor Fresh”. It’s a super simple starter template for new Meteor projects which takes a package-only approach to making Meteor apps.
I’m still rather new to this approach myself, so I’d love to get some pull requests and suggestions from everyone.
Ah thank you. I think I’ll include the font awesome package by default as
well.
Bootstrap definitely ups the size of the repo, but I’m not sure how to
customize it effectively without access to the less files. I’ve tried
Nemo64’s package out, but it’s a bit tough to get it working inside of
another package.
A really cool thing to add (just my opinion) would also be a way to separate mobile and desktop versions of the application. I get this question a lot, and have a sample repo set up that shows roughly how its done. Of course, you gain control over just what assets and code are pushed to mobile and desktop applications without having to wrap everything in Meteor.isCordova checks.
Sample:
Of course it needs a face lift, but I’ve been doing this in my apps and its worked out well. The ‘base’ package is shared by both the ‘app-mobile’ and ‘app-desktop’ packages and contains common code.
Thoughts on this approach? I love the package approach, and thank you so much for contributing it!
That’s really interesting! I haven’t even considered splitting packages based on platform. I haven’t used cordova or PhoneGap yet so I’m not familiar with the needs of either. How often do you find yourself writing platform specific code in Meteor?
I suppose it really depends on the implementation. For some apps that have a really native component (such as recording audio/video, taking pictures, etc), its great to utilize the Cordova implementations as they often provide a bit better UX and flexibility from their HTML5 counterparts (currently, this will likely change in the future).
Of course all of this is just a thought I’m glad more and more people are thinking about package-centric design and architecture. Telescope does this really well and it has worked well in my apps. We need more resources on this.