// the find
short-d/short
URL shortening service written in Go and React
Short is a self-hosted URL shortener written in Go with a React frontend, built as a showcase for Clean Architecture, dependency injection with Wire, and microservices patterns. It's aimed less at people who just want a link shortener and more at developers who want a worked example of DDD-flavored Go project structure with GraphQL, gRPC, and full CI/CD wired up.
The dependency injection is done properly with Wire rather than a hand-rolled container, and the package layering (entity/usecase/adapter) is consistent enough to actually study as a reference. Test strategy is unusually thorough for a side project — unit, integration, component, and contract tests are all present with real examples, not just claimed in the README. The feature toggle abstraction (IFeatureDecisionService) is a clean way to avoid scattered conditionals and is genuinely reusable.
No commits since September 2020 — this is five years stale, dependencies (Go 1.13, Node 12, React scripts of that era) will need real work to build today. Setup requires standing up reCAPTCHA, OAuth apps for three providers, and a separate kgs microservice just to run it locally, which is a lot of ceremony for a URL shortener. The README is more architecture essay than usage doc — there's no simple 'just run it and shorten a URL' path, and the promised services (Search, Status Page, Data Reporter) are flagged as 'still under active development' with no indication that changed before the project went dark.