3 ms·
It is interesting to see this approach. Seems a lot of interest this week in exploring approaches to Rails starter apps: Cristiano Betta's Primo [1], Carbon Fi
by DanielKehoe 14y ago
It is interesting to see this approach.
Seems a lot of interest this week in exploring approaches to Rails starter apps: Cristiano Betta's Primo [1], Carbon Five's Raygun [2], this script from TaskRabbit. So I updated two lists I maintain:
A list of starter apps:
http://railsapps.github.com/rails-examples-tutorials.html http://railsapps.github.com/rails-examples-tutorials.html
A list of various template-generating gems and application templates:
http://railsapps.github.com/rails-application-templates.html http://railsapps.github.com/rails-application-templates.html
Two observations, if I may. First, it's very interesting to compare the commonalities and differences among the various starter apps, in light of discussion of "Rails is omakase" (@dhh) and "Rails has Two Default Stacks" (@steveklabnik).
Second, most starter apps end up mired in the tar pits of neglect, abandoned in the constant change of Rails and its gem ecosystem. Building a starter app, an application-generating gem, or an application template is the smaller challenge; maintaining it is the bigger challenge. To that end, a starter app needs a large communal open source effort to stay fresh and up-to-date. Most projects have failed on this count.
[1] https://github.com/cbetta/primo https://github.com/cbetta/primo
[2] https://github.com/carbonfive/raygun https://github.com/carbonfive/raygun
- bleonard 14y agoI had not seen raygun, but it is essentially the same as our approach: make an app and then clone it. My app.rake is approximately the same as the executable in raygun: https://github.com/carbonfive/raygun/blob/master/bin/raygun https://github.com/carbonfive/raygun/blob/master/bin/raygun In fact this command is almost exactly the same raygun: shell "find . -type f -print | xargs #{sed_i} 's/#{proto_name}/#{new_name}/g'" app.rake: grep -rl #{find} #{directory} | xargs sed -i '' 's/#{find}/#{replace}/g' I think this approach works for us and Carbon Five because we've picked one type of stack and go with that. As to maintenance, I tend to add/test new platform features in the template app and use that as an example to how to upgrade the existing ones. If you do that and update all the gems in the process, it tends to stay up to date.