• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 3 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[mirror] A sustainable architecture for Ruby on Rails.

Note

The website https://upgrow.shopify.io was taken down for some reason. You can access it through the archive.org at https://web.archive.org/web/20210304183319/https://upgrow.shopify.io/

Upgrow

Ruby on Rails is the framework of choice for web apps at Shopify. It is an opinionated stack for quick and easy development of apps that need standard persistence with relational databases, an HTTP server, and HTML views.

By design, Rails does not define conventions for structuring business logic and domain-specific code, leaving developers to define their own architecture and best practices for a sustainable codebase.

In fast product development teams, budgets and deadlines interfere with this architectural work, leading to poorly written business logic and complicated code that is very hard to maintain long term. Even when developer teams take the time to think about what a good architecture in Rails look like, this work is likely required to be done all over again when a new Rails app needs to be created.

This project aims to make it easier for both new and existing Rails apps to adopt patterns that are proven to make code more sustainable long term, and codebases easier to maintain and extend. We will recommend a set of abstractions and practices that are simple, yet powerful in organizing code in Rails apps in a way that allows fast-growing apps to remain easy to change.

The Upgrow Guide

Visit https://upgrow.shopify.io to learn more about creating a sustainable architecture for your Rails apps.

The Upgrow Gem

This project offers a Ruby gem to make it easier for Rails apps to adopt the sustainable architecture proposed in the Upgrow Guide. To install, add this line to your application's Gemfile and run bundle install:

gem 'upgrow'

License

For copyright and licensing please refer to LICENSE.txt.

More Repositories

1

exifcleaner

Cross-platform desktop GUI app to clean image metadata
TypeScript
1,325
star
2

real-world-phoenix

Real World Phoenix apps and their open source codebases for developers to learn from
138
star
3

real-world-elixir-apps

Real World Elixir apps and their open source codebases for developers to learn from
33
star
4

beamtoolbox

Curated BEAM language libraries by category
21
star
5

streakable

Track consecutive day streaks in your ActiveRecord models
Ruby
15
star
6

chip8go

Chip-8 emulator
Go
10
star
7

meta_presenter

Focused Rails presenter classes
Ruby
10
star
8

zaru_crystal

Crystal shard for filename sanitization
Crystal
9
star
9

vsc-erlang-formatter

Erlang code formatter for Visual Studio Code
TypeScript
8
star
10

NDS-Cheat-Databases

[mirror] These cheat database sets are for Nintendo DS flashcarts, cheating devices, computer emulators, and homebrew applications for the Nintendo 2DS/3DS consoles. Each database contains Action Replay codes for your favorite NDS games.
7
star
11

startingperl.com

StartingPerl.com
6
star
12

real-world-erlang-apps

Real World Erlang apps and their open source codebases for developers to learn from
6
star
13

real-world-nerves

Real World Nerves apps and their open source codebases for developers to learn from
6
star
14

elixirtoolbox.dev

Curated list of Elixir/Erlang libraries
Elixir
4
star
15

turbolinks-scroll

Persist scroll position between Turbolinks AJAX calls
JavaScript
4
star
16

real-world-absinthe

Real World Absinthe apps and their open source codebases for developers to learn from
4
star
17

programmingnewsletters.com

Weekly programming newsletters without an email subscription
Perl
4
star
18

real-world-plug

Real World Plug apps and their open source codebases for developers to learn from
3
star
19

vscode-packer-powertools

VS Code extension for Packer with code formatting, inline error messages, syntax highlighting, code folding, and command palette integration
TypeScript
3
star
20

mixcloud-rss

[in production] Mixcloud RSS Reader written in Node JS
JavaScript
2
star
21

shellwords-crystal

This module manipulates strings according to the word parsing rules of the UNIX Bourne shell
Crystal
2
star
22

favicheck

Detect a site's web framework from their favicon
Go
1
star
23

vsc-hex-lens

Hover info for Hex packages (Mix/Rebar3) for Visual Studio Code. Supports BEAM languages like Erlang, Elixir, Gleam, etc.
TypeScript
1
star