{"id":16071502,"url":"https://github.com/backpackerhh/upgrow-docs","last_synced_at":"2026-03-19T10:26:01.316Z","repository":{"id":80883836,"uuid":"496173962","full_name":"backpackerhh/upgrow-docs","owner":"backpackerhh","description":"[mirror] A sustainable architecture for Ruby on Rails by Shopify","archived":false,"fork":false,"pushed_at":"2022-05-25T10:07:20.000Z","size":63,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-08T00:05:20.571Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/backpackerhh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-25T09:56:14.000Z","updated_at":"2023-07-04T19:48:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"811e6da3-0035-4809-aa6f-efe1b4510efd","html_url":"https://github.com/backpackerhh/upgrow-docs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/backpackerhh/upgrow-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backpackerhh%2Fupgrow-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backpackerhh%2Fupgrow-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backpackerhh%2Fupgrow-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backpackerhh%2Fupgrow-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/backpackerhh","download_url":"https://codeload.github.com/backpackerhh/upgrow-docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backpackerhh%2Fupgrow-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282041525,"owners_count":26604071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-31T02:00:07.401Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-09T07:40:52.762Z","updated_at":"2025-10-31T19:03:10.897Z","avatar_url":"https://github.com/backpackerhh.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## Note\n\nThe website https://upgrow.shopify.io was taken down for some reason. You\ncan access it through the archive.org at https://web.archive.org/web/20210304183319/https://upgrow.shopify.io/\n\n# Upgrow\n\nRuby on Rails is the framework of choice for web apps at Shopify. It is an\nopinionated stack for quick and easy development of apps that need standard\npersistence with relational databases, an HTTP server, and HTML views.\n\nBy design, Rails does not define conventions for structuring business logic and\ndomain-specific code, leaving developers to define their own architecture and\nbest practices for a sustainable codebase.\n\nIn fast product development teams, budgets and deadlines interfere with this\narchitectural work, leading to poorly written business logic and complicated\ncode that is very hard to maintain long term. Even when developer teams take\nthe time to think about what a good architecture in Rails look like, this work\nis likely required to be done all over again when a new Rails app needs to be\ncreated.\n\nThis project aims to make it easier for both new and existing Rails apps to\nadopt patterns that are proven to make code more sustainable long term, and\ncodebases easier to maintain and extend. We will recommend a set of abstractions\nand practices that are simple, yet powerful in organizing code in Rails apps in\na way that allows fast-growing apps to remain easy to change.\n\n## Guide\n\n1. [Introduction](guide/1-introduction.md)\n2. [The Goal of Good Software Design](guide/2-the-goal-of-good-software-design.md)\n3. [Code Smells in Rails Apps](guide/3-code-smells-in-rails-apps.md)\n4. [Software Design Principles](guide/4-software-design-principles.md)\n5. [A Better Architecture](guide/5-a-better-architecture.md)\n6. [The Missing Pieces](guide/6-the-missing-pieces.md)\n7. [Extensions](guide/7-extensions.md)\n8. [Caveats](guide/8-caveats.md)\n9. [Final Words](guide/9-final-words.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackpackerhh%2Fupgrow-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbackpackerhh%2Fupgrow-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackpackerhh%2Fupgrow-docs/lists"}