7 ms·
Base Rails 5.1 application with pre-configured tools and features
- mhoad 9y agoThis looks amazing, thanks for posting
- DamnYuppie 9y agoAgreed, this is very well put together. One of the better examples of a start application configuration I have seen in awhile.
- walski 9y agoLooks great. There also is https://github.com/RailsApps/rails-composer https://github.com/RailsApps/rails-composer which seems to be a little more modular in what it sets the app up with. It had a Rails 5.1 upgrade Kickstarter a while back, but I'm not sure what came out of that. The project looks a little abandoned.
- hashkb 9y agoThat project is discussed in the readme.
- schwad 9y agoIt's not super busy, but I'm not sure if it needs to be. There have been commits on it to handle 5.1: https://github.com/RailsApps/rails-composer/commit/7088e05e7d7eddce49488e0ccec9c60a386420fb https://github.com/RailsApps/rails-composer/commit/7088e05e7... . I'll be honest, I use it a lot if I want to spin up a new Rails application and go through a quick CLI picking databases/auth approaches/test frameworks. The only other tool I would consider looking at for this is Thoughtbot's Suspenders but at this moment I have no pain points with rails-composer. In case I'm not the only one who likes to use it, I've added it to CodeTriage just now in case anyone would like to be involved in supporting this project. https://www.codetriage.com/railsapps/rails-composer https://www.codetriage.com/railsapps/rails-composer
- romanovcode 9y ago> minimize the time spent writing boilerplate code and performing repetitive setup tasks. The problem with this is that everyone likes his configuration be in certain way. So in the end we have 100s of theses kinds of "boilerplate" starting apps. I personally don't see value in them at all.
- brunofacca 9y agoI understand where you're coming from. To be honest, I built that as a base for my applications and, for the reason you said, wondered whether is was worth sharing. I decided to share it just in case it's useful for people who have similar taste in tools and configurations. And apparently, it was helpful to some people, as the repo got 100+ stars in a couple of hours.
- msluyter 9y agoPerhaps, or perhaps enough developers adopt a given project that it becomes a viable platform. I'm thinking of DropWizard, which is mostly an opinionated collection of libraries and which has a large impact. (Or at least it did... been a while since I've done Java.) One problem I often find myself facing w/Python is that the ecosystem is so large that it's hard to keep up with the vast numbers of libraries. I have a list of a dozen or so in my head that for a large enough project I'd probably want to use. But personally keeping that list fresh is non-trivial. That, and of course, newer devs in an ecosystem don't have one. I think these sorts of projects speak to that need. Now, obviously as you suggest, people have differing needs/preferences, so there's room for competing visions, and in some cases this can become a sort of "now we have N+1 problems" meta-problem. But I don't think the fundamental impetus is misguided.
- weaksauce 9y agoI typically search for "awesome $languagename" to get a list of curated libraries that people use and are stable. It's a decent shortcut to find what's good.
- yellowapple 9y ago
- abledon 9y agoComing from Django , I was surprised rails 5.1 didn't come with authentication / authorization (or a valid email regexp) I will definitely use this!
- aleyan 9y agoComing to Django, if you want to do auth via email instead of username, you are out of batteries. I say this criticism as a fan of both Django and Rails.
- gjjrfcbugxbhf 9y agoIt's about 20 loc to implement this in Django... Edit: problem is that when starting a new project people often miss those 20 loc - as well as not noticing the documented best practices for accessing the user...
- abledon 9y agoyeah, but i think by mentioning 'batteries' it means __no__ code is needed, simply a change in a config setting / changing a string to say.. 'username'-> 'email' somewhere.
- abledon 9y agoHow do you like Django's DB migration system, how it will autogenerate ManyToMany tables etc.. i was astounded how much manual code is needed: http://jeffthomas.xyz/many-to-many-relationships-in-rails http://jeffthomas.xyz/many-to-many-relationships-in-rails
- mbell 9y ago> (or a valid email regexp) I don't believe such a thing exists.
- abledon 9y agowell, I enjoyed their attempt: https://docs.djangoproject.com/en/1.11/_modules/django/core/validators/#EmailValidator https://docs.djangoproject.com/en/1.11/_modules/django/core/...
- voldemort1968 9y agoI thought Rails was the boilerplate.
- the-dude 9y agoIt is boilerplates all the way down.
- pjungwir 9y agoThis looks very nice! I have something like this for my own projects, and my favorite piece is having detailed tests that I don't have to re-write every time: tests for Devise, tests for Stripe subscriptions, tests for many-to-many users and accounts, etc. I see this project has the same, which I really like. I don't know why Devise doesn't have a generator to write all those tests for you, just like it will give you some starting views. Of course they won't match your app perfectly, but having the failures is helpful too, and probably it would be less effort to adjust them than to write new ones from scratch. The idea isn't to "test the library"---Devise should have its own internal tests too---but to make sure that the features work as expected with your own configuration and customizations. The other gem where a free battery of tests would really save time is Spree. (Maybe that exists; I don't know yet.)
- CLGrimes 9y agoGreat concept. I've never understood why there weren't pre-configured SaaS-based Rails templates out there. Thank you for your contribution to the community!
- timdorr 9y agoCouldn't this be implemented as an Application Template instead? http://guides.rubyonrails.org/rails_application_templates.html http://guides.rubyonrails.org/rails_application_templates.ht...
- brunofacca 9y agoYes, it could. I might eventually do that, but currently the project has a narrower scope in the sense that it is meant to have a set of preselected defaults.
- ssaunier_ 9y agoAt Le Wagon, we had the same need for our students, but we took advantage of the built-in Rails Templates features. Super handy! More details here: https://github.com/lewagon/rails-templates https://github.com/lewagon/rails-templates
- 6t6t6t6 9y agoIs there a reason for defaulting to Rails 5.0.5 rather than 5.1.3?
- steinuil 9y ago> Built to minimize the time spent writing boilerplate code and performing repetitive setup tasks I never used Rails, but I thought its motto was "conventon over configuration"?
- craigmcnamara 9y agoRails is productive out of the box. The author has different preferences for some defaults and some plugins that require config. This is common for a consultancy to have a project like this so their rails apps are consistent around non-default add-ons and preferences.
- vvdcect 9y agoIt would be cool if you could have a command line feature where we could select what packages we want to use and also add details about the app. Rails composer is pretty interesting too and it has this feature. https://github.com/RailsApps/rails-composer https://github.com/RailsApps/rails-composer
- ziggzagg 9y ago> Base or "skeleton" application for Ruby on Rails 5.1 projects. Built to minimize the time spent writing boilerplate code and performing repetitive setup tasks. Wasn't Rails 1.0 invented to solve this exact problem? A decade later and after 5 versions we are here?
- craigmcnamara 9y agoRails out of the box is ready to build a production ready project. These are for when developer preferences diverge from the out of the box rails defaults. I love RSpec and I always set that up when I start a new Rails/Ruby project. If you do consulting work, you definitely make new apps frequently and having your favorite things ready to go is a plus. Thoughtbot has a project called suspenders that includes their preferences for new apps.