Real world Ruby apps
Real World Ruby apps and their open source codebases for developers to learn from
You'll find the source code in the
apps/ subdirectory. These apps
- Not based on any framework (see other repos for Rails, Sinatra, etc.)
- Executable via the command line
Thank you to every developer who has worked on a project this repo links to, your work is helping developers learn Ruby.
How to install on your computer
# Clone this git repo: git clone email@example.com:jeromedalbert/real-world-ruby-apps.git cd real-world-ruby-apps/ # The apps are linked to as git submodules. # This will take some time... git submodule update --init
Other Real World codebase collections
- Real World Rails https://github.com/eliotsykes/real-world-rails
- Real World Sinatra https://github.com/jeromedalbert/real-world-sinatra
- Real World Ember https://github.com/eliotsykes/real-world-ember
- Real World React Apps https://github.com/jeromedalbert/real-world-react-apps
- Know any others? Please open a PR and add the link here
Information for contributors
Is your app the right fit?
- The majority of the codebase should not be based on any framework, like Rails or Sinatra. There are dedicated Real World repos for these.
- The vast majority of the codebase should be written in Ruby.
- The main app should be executable via a binary.
- The app should be somewhat popular, in order to limit the apps in this repo to a manageable amount. There is some leeway in what constitutes a popular app. A possible indicator can be GitHub stars compared to similar apps.
Don't hesitate to submit a pull request if you meet the criteria!
How to add a Real World app
Given a GitHub repo for an app
# Inside the project root: git submodule add -b master firstname.lastname@example.org:githubuser/foo.git apps/foo
Updating the apps submodules to latest
The apps in
apps/ are git submodules. Git submodules are locked to a revision
and don't stay in sync with the latest revision.
To update the revisions, run:
# This will take some time: git submodule foreach git pull origin master
- Jerome Dalbert http://jeromedalbert.com
- Contributions are welcome, fork the GitHub repo, make your changes, then submit your pull request! Reach out if you'd like some help.