// the find
tsugiproject/tsugi
Tsugi Admin, Developer, and Management Console (pls join the dev list)
Tsugi is a PHP framework for building LTI-compliant learning tools and hosting them in a multi-tenant environment. It's the admin/management console for an edtech platform that implements IMS Global standards (LTI 1.1/1.3, Common Cartridge, ContentItem). Aimed at developers who need to integrate with LMSes like Canvas, Blackboard, or Sakai without reinventing the OAuth/LTI plumbing.
- LTI implementation is genuinely thorough — covers LTI 1.1 OAuth, LTI 1.3 OIDC, Deep Linking, and Roster services, which is a non-trivial amount of spec work that most shops get wrong
- Multi-tenant key management with per-tenant secrets and a full admin UI for issuer/key approval is the right architecture for a tool marketplace — not bolted on later
- Active maintenance with a rolling deployment model (no traditional releases, cron-pulled from main) works well for a hosted service and keeps operators off stale security fixes
- Docker compose setup actually works out of the box, which is rare for PHP projects of this age and complexity
- MySQL-only for the database layer — there's no abstraction that would let you run Postgres, which limits hosting options and rules out managed PaaS offerings that don't do MySQL
- The PHP-to-Python migration mentioned in the README is aspirational vaporware right now — there's one linked text file showing a Django sample, not a real parallel implementation
- No semver releases and 'run close to main' is fine for Dr. Chuck's servers but is a real operational burden for anyone else hosting this — a breaking schema change lands the same day as a bug fix
- The repo is effectively a monorepo via git submodules (tsugi-php lib is a submodule), which means cloning, updating, and CI all have hidden complexity that isn't called out prominently in the setup docs