Framework

Under Code, Framework groups opinionated application stacks that own project shape: routing, lifecycle, dependency injection, ORM conventions, and “where code goes.” You trade flexibility for speed. Prefer Library composition unless the framework’s opinions match your product for years.

In this subcategory:

ItemRatingUse when
Ruby on RailsholdMaintaining legacy Rails; not default for greenfield

Related subcategories (do not duplicate tags):

SubcategoryDistinction
LibraryYou call it; it does not own the app skeleton (OpenTelemetry, Zap)
Test FrameworkExists to run/assert tests (TestContainer, Helm Unittest)
game engineReal-time interactive runtime (player loops, not CRUD web)
LanguageSyntax/spec only (YAML, OpenAPI)

What belongs here:

  • Web/app frameworks: Rails, Spring, Django, ASP.NET, Next.js (when rated as a Code dependency)
  • Full-stack runtimes that dictate MVC (or similar) layout
  • Items tagged subcategories: ["[Framework](/garden/framework/)"] on Code tools

What does not belong here:

  • Design Pattern (technique-level patterns, not a product)
  • Declarative IaC / cloud “frameworks” (Terraform modules are not app frameworks)
  • Agent Skills Framework and similar Technique names (portable skill folders, not app code)
  • Bare UI kits or single-purpose libs (use Library)
  • Test runners (use Test Framework)

Garden stance:

  • Default: small Library graph + boring Language; add a framework only when conventions clearly beat bespoke structure.
  • Hold heavy monolith frameworks (Ruby on Rails) for new products unless the team and estate are already committed.
  • Assess niche frameworks (e.g. Ebitengine belongs under game engine, not general web Framework).
  • Framework upgrades are migration projects: pin versions, budget escape hatches (strangler, service extraction).

How to tag: category: "Code" and subcategories: ["[Framework](/garden/framework/)"] when the artifact is an opinionated app platform you build inside, not a CLI you operate (Tool) or infra you deploy (Platform).

Hold