Website header
Treehouse is the fastest, easiest way to learn to code, make apps, and start a business. Tutorials in CSS, HTML, Ruby, JavaScript, iOS, and more.
A/B Testing with two or more different versions of your website. See which one performs better.
A/B Testing9,354Rubyahoy, split and 5 more »Track what matters, and optimize your conversion rates. Get insight into what matters most in your sales funnel, and make more money with your existing service or product.
API Builders36,663Rubygrape, active_model_serializers and 11 more »Develop APIs with nice and consistent APIs. Your user's will love you.
API Caching and Rate Limiting4,906Rubyrack-attack, garner and 1 more »Optimize your API's performance and behavior.
API Versioning2,705Rubyversionist, rocket_pants and 3 more »Versioning your APIs can help keep consistency while moving at a fast pace. Don't screw your API consumers.
API testing3,801RubyDraftrspec_api_documentation, airborne »
API: Clients for popular services1,687Rubylinkedin, tinder and 2 more »Great Ruby wrappers for APIs of popular web services. Interface with Facebook, Twitter, and more.
API: Create Ruby API Clients4,607Rubyautorest, nestful and 2 more »Build an API client for your favorite web service.
API: Documentation15,987Webslate, apidoc »Create docs for your API.
API: Great API examples1,725Rubyapi-documentation, bcx-api »Docs of great APIs to reference when building your own implementations.
ActionMailer: Email Previews8,904Rubymailcatcher, letter_opener and 3 more »Preview emails easily in development instead of sending them. Test the visual design of your emails.
ActiveModel: Custom Validations4,535Rubyvalidates_timeliness, dry-validation and 25 more »Validate email, social profiles, urls, dates or post addresses and much more.
ActiveRecord: Caching1,545Rubyidentity_cache, record-cache »Specify how you want to cache your model objects, at the model level, and adds a number of convenience methods for accessing those objects through the cache.
ActiveRecord: Comments3,481Rubyacts_as_commentable, acts_as_commentable_with_threading and 1 more »Enable comments for your posts.
ActiveRecord: Data Migrations924Rubylarge-hadron-migrator, data-migrate »Migrate data schemas between different formats, including some schema versioning.
ActiveRecord: Database Sharding2,552Rubyoctopus, db-charmer and 2 more »Distribute data across multiple databases.
ActiveRecord: Flags391Rubyflag_shih_tzu »Flag implementations apart from a range of boolean fields on your model.
ActiveRecord: Importing data4,087Rubyactiverecord-import, seed-fu »Bulk insert data.
ActiveRecord: Miscellaneous2,198Rubyactive_scaffold, upsert and 2 more »Various ActiveRecord extensions.
ActiveRecord: Multitenant Apps2,734Rubyapartment, acts_as_tenant and 2 more »Various approaches for separating data for different customers of yours.
ActiveRecord: Normalize attributes897Rubyattribute_normalizer, strip_attributes and 1 more »Sanitize user input before saving it to the database. Strip whitespace, html tags and more.
ActiveRecord: Rating / Liking / Voting6,733Rubyacts_as_votable, recommendable and 10 more »Tag, rate, vote or like records, and build social networks around these data points.
ActiveRecord: Schema annotations4,437Rubyannotate_models, railroady »Annotate ActiveRecord models with table schema data.
ActiveRecord: Seeds4,415Rubyseed_dump, seed-fu and 3 more »Define seed data for your databases.
ActiveRecord: Serialized attributes869Rubyactiverecord-postgres-hstore, activerecord-typedstore and 1 more »Store hashes and more in Postgres and other SQL datastores.
ActiveRecord: Soft Destroying3,313Rubyparanoia, rails3_acts_as_paranoid and 6 more »Mark records as destroyed instead of actually removing them. Recover them later on.
ActiveRecord: Sortable lists3,492Rubyacts_as_list, ranked-model and 3 more »Persist the positioning of your records in a certain order. Includes view helpers for displaying sortable lists and tables, and drag-and-drop GUIs for positioning the records.
ActiveRecord: Trees, hierarchies & nested records8,630Rubyancestry, awesome_nested_set and 9 more »Easily and efficiently make your ActiveRecord model support hierarchies.
ActiveRecord: Versioning and auditing8,839Rubypaper_trail, audited and 4 more »Track changes to your models' data. Audit updates and keep a history of revisions.
Activity Tracking3,184Rubypublic_activity, rails_event_store »Track and display changes to your models, e.g. in an activity stream / feed.
Admin Interfaces for Rails21,032Rubyrails_admin, active_admin and 10 more »Ready-made administration interfaces with authentication logics and nice DSLs for your Rails apps.
Advanced Querying with ActiveRecord11,944Rubyransack, arel and 6 more »Retrieve data from complex queries, built easily.
Airplay1,829Rubyairplay, airstream and 1 more »Stream music and videos to Apple Airplay compatible devices from Ruby.
App Servers21,739Rubypuma, passenger and 9 more »Web application servers than run your deployed code efficiently. Can increase throughput on any platform.
Application Configuration Variables13,200Rubydotenv, figaro and 4 more »Configure your app with environment variables and more. Keep sensitive data out of your version control system.
Apps: Chat Servers5,354WebBalloons.IO, kandan and 1 more »Complete team chat apps for self-hosting and code review.
Apps: Miscellaneous2,301Rubypomodoro, boxroom and 4 more »Various open-source apps for the web or the command line, such as a Pomodoro time manager.
Assets10,226Rubyquiet_assets, jammit and 3 more »Optimize stylesheets and javascript files before sending them to the browser by removing whitespace and more.
Autolinking and Embedding Content3,189Rubyauto_html, oembed and 4 more »Auto-extract and link urls from user inputs or tweet bodys.
Automating Web Interaction3,682Rubymechanize, pincers »Automatically visit websites, click links, fill out and submit forms.
Background Jobs30,857Rubysidekiq, resque and 8 more »Scale your web app by transferring long-running tasks from the web processes to dedicated background workers.
Barcodes80Rubybarkick, plu »Working with Barcodes, EANs, UPCs, ISBNs and PLUs.
Blogging Engines55,592Rubyjekyll, octopress and 18 more »Start publishing a blog or a static site.
Business Advice61WebDraftLearningToWalk »Various bits of good business writing by and for developers from around the web.
Capybara helpers12,235RubyDraftcapybara, email-spec »
Child processes947Rubyposix-spawn, childprocess and 1 more »Managing child processes made comfortable.
Cient-side Form Validations2,193Rubyclient_side_validations, html5_validators and 1 more »Pre-validate user input in the browser. Enable a great user experience.
Code quality metrics27,632Rubyrubocop, brakeman and 9 more »Get stats for your code. Where can you improve?
Command line: Customize your terminal70,945Weboh-my-zsh, dotfiles »Customize your terminal and speed up common operations with shortcuts and more.
Concurrency16,103Rubyconcurrent-ruby, celluloid and 4 more »Create highly-concurrent gems and programs in Ruby. Base for great and speedy open-source projects.
Console: IRB Replacements8,323RubyDraftpry, hirb and 3 more »
Content Management Systems19,899Rubyrefinerycms, comfortable-mexican-sofa and 19 more »Open-source CMS in Ruby (cockpit is PHP)
Continuous integration servers12,409RubyDrafttravis-ci, janky and 4 more »Distributed build systems and CI servers.
Countries5,180Rubycountries, countries and 1 more »Select countries in Rails, get a lot of info and formatting help with country data. Includes infos on phone numbers, currencies, postal addresses and more.
Create PDF documents13,171Rubyprawn, pdfkit and 11 more »Want to print some PDFs in Ruby? Here are your options.
Debugging10,881RubyDraftpry, byebug and 1 more »
Development: Development Machine Setup12,834RubyDraftlaptop, our-boxen and 5 more »
Edit in Place12,231Javascript, RubyDraftx-editable, mercury and 5 more »Edit content in place in a what-you-see-is-what-you-get style.
Fabricate Fake Data7,115Rubyfaker, ffaker and 1 more »Generate large amounts of fake data e.g. for testing purposes.
Feature Rollouts9,230RubyDraftscientist, rollout »
File Uploads26,713Rubypaperclip, carrierwave and 13 more »Uploading files and attaching them to models can be a hassle. These projects save your day. Send uploads to your server or directly to a storage providers such as Amazon's S3. Track attachments to your models.
Filter Records & Named Scopes in ActiveRecord16,287Rubyransack, pg_search and 10 more »With scopes you can make your database queries more precise. Named scopes help you reuse these helpers.
Follow development49,123RubyDrafthuginn, watchman and 2 more »
Form Builders for Rails18,454Rubysimple_form, formtastic and 11 more »Generate complex forms with readable markup. These form builders help you manage nested associations and more.
Form Builders for Rails and Twitter Bootstrap1,168RubyDrafttwitter_bootstrap_form_for, formtastic-bootstrap and 1 more »Form builders that help generate markup that can be quickly styled with Twitter Bootstrap.
Form models10,954Rubyvirtus, reform »Tableless models. Including validation, and ActiveModel behaviour. Great for forms that create multiple records.
Forms: Spam Minimization1,543RubyDraftnegative-captcha, rakismet and 6 more »
Forum Engines27,977Rubydiscourse, forem and 2 more »Forum engines that work standalone or could be included into a Rails app. Building blocks for social networking capabilities of your app.
Fragment Caching1,318Rubymulti_fetch_fragments, lock_and_cache »Easily cache rendered view fragments to speed up your application.
Frameworks: Scripting & Command Line Applications12,435Ruby, JavascriptDraftthor, tty and 7 more »Build command line applications, and manage repetitive tasks with style.
Friendly Ids in ActiveRecord5,872RubyDraftfriendly_id, stringex and 2 more »Point users to nice urls, e.g. '' instead of ''.
Friendships6,078Rubycommunityengine, socialization and 4 more »Build social networks, with friendships, liking and disliking of records, and messages between users.
Geocoding and maps14,737Rubygeocoder, Google-Maps-for-Rails and 7 more »Geocoding is the process of finding associated geographic coordinates (often expressed as latitude and longitude) from other geographic data, such as street addresses, or ZIP codes.
Git Servers20,989Webgitlabhq, bananajour »Self-hosted git servers for collaboration in development.
HTML Emails4,387RubyDraftpremailer, roadie »
HTTP Clients25,123Rubyhttparty, rest-client and 14 more »Perform external HTTP requests with ease. Easily consume third-party APIs.
Hash Extensions2,943RubyDrafthashie, hash_mapper and 4 more »
Interactors / Commands / Service Objects / Use Cases4,722Rubyinteractor, mutations »Compose business logic into commands that sanitize and validation input. Extends form objects and form models to perform defined transformations with your data.
Internationalizing Rails Apps1,454RubyDrafti18n-tasks, i15r »Allow your app to talk multiple language, display different time and currency formats and more.
Interview Training11,913WebFront-end-Developer-Interview-Questions, code-problems »Common questions for developers' job interviews. Be prepared, dude.
Learning Git95,267Webgitignore, gitflow and 5 more »Basic and advanced Git wizardry. Includes guides, workflows, branching models, and more.
Learning Ruby on Rails331Rubylearn-rails »Books, blog posts and screencasts helping with learning Rails in detail.
Learning: Ruby Basics7,626RubyDraftruby_koans, ruby-warrior and 4 more »
Logging5,732RubyDraftlograge, quiet_assets and 6 more »
Markdown parsers8,436Rubyredcarpet, sundown and 5 more »Render markdown in a variety of formats, including HTML, RDoc, and more.
Mass assignment protection1,278Rubystrong_parameters »Allow users to only assign values for fields they may access.
Mathematics and Statistics1,857RubyDraftsciruby, descriptive_statistics »Your calculations just got easier.
Memcached Clients2,431Rubydalli »Interfaces to Memcached, an excellent key-value store for caching objects and response fragments.
Money and Currencies5,875Rubymoney, countries and 5 more »Working with multiple currencies, exchange rates and finances in general.
Multi-step Forms3,597Rubywicked, rails_apps_composer and 3 more »Create wizard forms with multiple steps for the user to fill.
Navigation2,003RubyDraftsimple-navigation, gretel and 2 more »Navigation and Breadcrums.
OCR & Document Processing750RubyDraftdocsplit »Extract Metadata, split and convert documents.
Onlineshops13,077Rubyspree, solidus and 2 more »Complete open-source online shopping systems built on Ruby on Rails and API Clients for hosted shop solutions.
Open-Source Rails Apps53,610RubyDraftrealworld, fat_free_crm »Learn from great open-sourced Ruby on Rails applications and improve your style.
Optimize: Code Conciseness5,351RubyDraftinherited_resources, responders and 4 more »
Pagination11,523Rubykaminari, will_paginate and 5 more »Display records in pages, and allow users to navigation those pages.
Parsers: JSON4,993RubyDraftoj, yajl-ruby and 5 more »
Payments with Paypal4,152Rubyactive_merchant, paypal-express »Accept online payments with Paypal.
Payments with Stripe11,919Rubyactive_merchant, stripe-ruby and 11 more »Get paid using Stripe for credit card processing.
Presenters and decorators7,297Rubydraper, active_decorator and 2 more »Object-oriented programming for your views.
Profiling3,764RubyDraftruby-prof, perftools.rb »
Project Management Apps27,754Rubygitlabhq, redmine and 5 more »Self-hosted project management and collaboration apps, including source code and git hosting.
Rails App Generators & Bootstrapped Templates9,537RubyDraftrails-composer, suspenders and 7 more »These repos will help you get started with your new Rails application.
Rails App Tutorials3,720RubyDraftrails-stripe-membership-saas, rails3-bootstrap-devise-cancan and 6 more »
Realtime Rails apps1,282Rubysync »Turn your Rails apps into realtime experiences.
Routing954Rubyroute_translator, routing-filter »Localized routes, custom filters, and more.
Ruby & Rails Styleguides19,597RubyDraftruby-style-guide, rails-style-guide and 3 more »Write idiomatic and lasting Ruby and Rails code and learn about best practices.
Ruby Implementations25,105Rubyruby, mruby and 4 more »Implementations of the Ruby Language for a variety of platforms and use cases.
Rule-based actions1,436WebDraftmaid »'If this then that' for your local files.
Scheduling Recurring Background Jobs19,297RubyDraftwhenever, minicron and 4 more »Cron jobs for Ruby. Schedule jobs with a certain frequency, at certain times or events.
Search Engine Optimization / SEO7,700RubyDraftfriendly_id, meta-tags and 1 more »SEO for Rails apps.
Searching with ElasticSearch12,017Rubysearchkick, elasticsearch-rails and 4 more »Provide searching, filtering, and full-text searching capabilities for your applications. Integrate ElasticSearch with Ruby and Ruby on Rails. Update search indexes automatically on record changes with callbacks and observers.
Searching with Postgres3,269Rubypg_search, textacular »Full-Text Searching right within Postgres.
Searching with Solr3,177Rubysunspot, rsolr and 1 more »Working with the Solr search engine.
Searching with Sphinx1,676Rubythinking-sphinx, riddle »Full-text search with the Sphinx search engine.
Security8,139RubyDraftbrakeman, secureheaders and 1 more »
Send snail mail320Rubysnail, going_postal and 2 more »Enable your app to send physical letters, printed by a lettershop. Validate incoming post adresses.
Serving Web Fonts229Rubyfont_assets, fistface »Set required HTTP headers on icon fonts and more.
Site-wide announcements205Rubypaul_revere »One-off announcements for your users.
Speeding up development6,865RubyDraftzeus, spring and 4 more »Start continuous testruns more quickly.
Spreadsheets10,283Rubyaxlsx, roo and 13 more »Import and export spreadsheet data in .xls and .csv formats and more.
State Machines12,005Rubyaasm, state_machine and 6 more »Transition between states in ActiveRecord and Mongoid.
Static Data743RubyDraftactive_hash, data_magic »
Static Pages in Rails2,814RubyDrafthigh_voltage, pages »Include static pages in your Rails app.
Static Sites52,232Rubyjekyll, middleman and 18 more »Build static sites using all your favorite gems and compile them to HTML, CSS and Javascript when deploying.
Sublime Text Plugins33,454Webcolour-schemes, emmet-sublime and 18 more »Notable packages and themes for the Sublime Text Editor.
Syntax Highlighting3,949RubyDraftrouge, coderay »Server-side syntax highlighting for different languages.
System daemon helpers1,221Weblunchy »Starting and stopping system daemons.
Tables & Grids1,564RubyDraftdatagrid, wice_grid and 4 more »
Templating Engines18,389Rubyliquid, slim and 5 more »Craft your views with beautiful markup.
Testing Javascript3,226Rubyteaspoon, konacha and 1 more »Test runners for your javascript files running on top of Rails.
Testing: Custom RSpec Matchers10,196Rubyshoulda-matchers, betterspecs and 2 more »Matchers for special occasions.
Tests: Fabricate Objects7,693Rubyfactory_girl, fabrication and 2 more »Fabricator, factories, fixture replacements, whatever you'd like to call them. Use one of them in your test suite.
Texteditors45,686Webbrackets, textmate and 3 more »A bunch of great open-source text editors. Please note that open-source does not always mean free.
Translation interfaces2,083Rubyshuttle, phrasing »Bring your app to more users in different countries by allowing them to translate your service or customize text, even if you're using only one language.
Twitter Bootstrap for Rails Extensions3,913RubyDraftbh, less-rails-bootstrap and 6 more »
URL Parsers1,717Rubyaddressable, postrank-uri »Split domains and urls into their various parts and more.
UUID Generators1,464RubyDraftuuidtools, uuid and 3 more »
Uptime Monitoring3,398Webuptime »Can users reach your service? If not, you'll instantly be notified.
User Authentication37,247Rubydevise, omniauth and 5 more »Allow users to authenticate with your app by providing them with dedicated user accounts. Authenticate with email and password or via Facebook or Twitter oAuth.
User Authorization23,633Rubypundit, cancancan and 10 more »Authorize user actions on resources based on policies, abilities or roles. Authenticate your users beforehand.
User Input Rendering Pipelines258Rubyslodown »Multi-step processing for user inputs. Render Markdown, sanitize HTML, auto-link urls and embed external videos and photos in a pipeline.
Using Kafka1,461RubyDraftkarafka, ruby-kafka »
Views: Tables1,958RubyDraftdatagrid, wice_grid and 6 more »
Vim Plugins80,980WebYouCompleteMe, spf13-vim and 8 more »Plugins for the Vim editor.
Web App Frameworks61,516Rubyrails, sinatra and 7 more »Comprehensive web application frameworks that help you develop web applications in style and speed. There's a variety of frameworks, each specializing in solving various challenges.
Web Crawling / Scraping43,940Rubyscrapy, pyspider »Crawl, spider and scrape websites with Ruby.
Websockets5,723Rubyem-websocket, einhorn and 2 more »Working with websockets in Ruby.
Wikis622RubyDraftolelo, gollum and 1 more »Ruby and Git-powered Wikis for self-hosting.
Working with Autocompleting Searches24,827Javascript, Rubytypeahead.js, awesomplete and 5 more »Autocomplete user inputs for a great user experience.
Working with Enumerations3,190Rubyenumerize, simple_enum and 5 more »Enumeration helpers for ActiveRecord and Mongoid.
Working with Facebook10,537Rubyomniauth, koala »Gems and links that help with reading from and writing to Facebook.
Working with Github15,300Rubyomniauth, octokit.rb and 8 more »Interact with the Github API or authenticate users via oAuth.
Working with Heroku15,551Webdotfiles, foreman »Tips and tricks for deploying to Heroku.
Working with Incoming Emails3,345RubyDraftgriddler, mailman and 2 more »Receive and process inbound emails in Ruby and Rails.
Working with Key-Value Stores940RubyDraftmoneta, horcrux and 1 more »ORMs and Interfaces for Key-Value Stores, including Redis et al.
Working with MongoDB2,347Rubymongomapper, moneta and 1 more »Object-relational mappers for MongoDB and further plugins.
Working with MongoId4,421Rubymongoid-slug, rails3-mongoid-devise and 21 more »Plugins for the MongoId ORM, a great object-relational mapper for MongoDB in Ruby.
Working with NoSQL Datastores1,287RubyDraftcassandra, ripple and 1 more »Object-relational mappers for datastores such as Riak and Cassandra.
Working with Payments9,625Rubyactive_merchant, stripe-ruby and 12 more »Process payments in Ruby. Encourage users to pay you easily by credit card or Paypal. Manage subscriptions and your billing process.
Working with Phone Numbers9,389Rubylibphonenumber, countries and 4 more »Parse and validate international phone numbers.
Working with SMS2,943Rubytextbelt, twilio-ruby and 2 more »Send and receive short text messages. Send texts to mobile phones.
Working with Telephony2,155Rubytwilio-ruby, adhearsion and 3 more »Create telephone and conference calls and more for your business.
Working with Twitter18,085Rubyomniauth, twitter and 9 more »Access Twitter with a dedicated API client, or authenticate users via oAuth.
Working with time and dates10,022Rubychronic, groupdate and 4 more »Parse and format times and extract dates from natural language. Work with time or date ranges.
XML Parsers and builders7,840RubyDraftnokogiri, oga and 6 more »
oAuth Authentication and Servers12,070Rubyomniauth, doorkeeper and 9 more »Become an oAuth provider, and add oAuth authentication to your app. Add a security layer to your API.