You'll find that Rails apps start as single repos. The more successful ones (Twitter, Square, many others) split into multiple codebases as they grow into that requirement. Those additional codebases can be daemons, services, gems, Rails Engines, or something else.
This refactoring into multiple projects isn't done until it proves necessary, because YAGNI. Bifurcating your project on day 1 slows prototyping time, and prototyping speed is a key strength of Ruby and of Rails. You'll want to keep in mind that creating or a class in Ruby costs almost nothing, as does breaking apart a well-desined class. Your pure Ruby code will live mostly under /app/
(app/models
, app/views
app/controllers
, app/helpers
) and /lib/
. Your static assets, layered JS/Coffee includes, and CSS/Sass/etc includes are going to be in /app/assets
.
Understanding why breaking apart a Ruby class is so easy requires a bit of reading on duck typing and the understanding that Ruby's interfaces aren't as ironclad as you might
be used to in a less dynamic environment.
Here are a few links that might interest you:
Good luck with your projects!