Emissary is designed to be as simple as possible, with very few external dependencies. The main application server is written in Go, which uses a MongoDB (or compatible) database. That’s it.
The web app uses two new javascript libraries Htmx and Hyperscript for a fast and fluid user experience. Understanding these tools is helpful – but not essential – because they’re far simpler than other front-end Javascript and very easy to learn.
Everything else is baked into a single executable that compiles and runs on everything from a single VPS to a cloud-based Kubernetes cluster and beyond. Many of Emissary’s core components have been broken out into their own open source libraries – like Rosetta data manipulation, and Hannibal ActivityPub libraries – so if you can take advantage of Emissary even if you’re building something different.
Documentation
Ready to dig in deeper? Check out the GitHub repository, or read through the GoDoc Documentation