{"id":15058786,"url":"https://github.com/emissarysocial/emissary","last_synced_at":"2025-04-05T03:10:52.497Z","repository":{"id":37290907,"uuid":"256598189","full_name":"EmissarySocial/emissary","owner":"EmissarySocial","description":"The Social Web Toolkit","archived":false,"fork":false,"pushed_at":"2024-10-23T04:03:25.000Z","size":66849,"stargazers_count":134,"open_issues_count":7,"forks_count":14,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-10-24T07:52:23.103Z","etag":null,"topics":["activitypub","activitypub-server","rss"],"latest_commit_sha":null,"homepage":"https://emissary.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EmissarySocial.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-04-17T20:02:13.000Z","updated_at":"2024-10-23T16:56:49.000Z","dependencies_parsed_at":"2024-08-29T21:26:54.518Z","dependency_job_id":"45b395b5-cfa8-4d19-99b7-cc774f8e23b4","html_url":"https://github.com/EmissarySocial/emissary","commit_stats":{"total_commits":2238,"total_committers":7,"mean_commits":319.7142857142857,"dds":0.03574620196604106,"last_synced_commit":"08d88b3d3e6540c1cf55623168ac299880369eaf"},"previous_names":["benpate/ghost","whisperverse/whisperverse"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmissarySocial%2Femissary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmissarySocial%2Femissary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmissarySocial%2Femissary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmissarySocial%2Femissary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmissarySocial","download_url":"https://codeload.github.com/EmissarySocial/emissary/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280272,"owners_count":20912967,"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","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":["activitypub","activitypub-server","rss"],"created_at":"2024-09-24T22:30:22.708Z","updated_at":"2025-04-05T03:10:52.480Z","avatar_url":"https://github.com/EmissarySocial.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://emissary.dev/.templates/emissary_dev_homepage/resources/Emissary-Wordmark-Black-600.png\" width=\"40%\"\u003e\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/EmissarySocial/emissary.svg)](https://pkg.go.dev/github.com/EmissarySocial/emissary)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/EmissarySocial/emissary/go.yml?branch=main)](https://github.com/EmissarySocial/emissary/actions/workflows/go.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/EmissarySocial/emissary?style=flat-square)](https://goreportcard.com/report/github.com/EmissarySocial/emissary)\n[![Codecov](https://img.shields.io/codecov/c/github/EmissarySocial/emissary.svg?style=flat-square)](https://codecov.io/gh/EmissarySocial/emissary)\n\n\nEmissary is **the Social Web Toolkit** -- a standalone Fediverse server designed for end users, app creators, and hosting admins — that gives everyone powerful new ways to join the social web.\n\n## Why Emissary?\n\n### Trustworthy Custom Applications\n\nAs a developer, Emissary empowers you to build custom, social applications in a simple, declarative, **low-code environment**.  Using only HTML templates and a JSON config file, you can create full-featured social apps that are easy to deploy and easy to maintain.\n\nThis is done by building action pipelines out of simple, composable steps, like: \"show an edit form\", \"create a thumbnail\", and \"save the object\".  Pipelines work alongside Emissary's built-in state machines and access permissions to form robust and secure applications that you and your end-users can trust.\n\nDistribute your applications via Git and .zip files, comprising one or more  Each template is isolated from others, so bugs in one template won't bleed out into the rest of your site.  This should prevent the incompatibility, feature bloat, and bugginess that have plagued other plugin ecosystems.\n\n### Multi-Network\n\nEmissary use the [sherlock library](https://github.com/benpate/sherlock) to bridge across different federated protocols.  This includes ActivityPub, RSS+WebSub, and IndieWeb.  More are coming, to be added into the core system.  This means that applications you build on Emissary interact with the entire social web, and will grow as Emissary grows.\n\n### Baked-In DevOps\n\nAnyone should be able to stand up their own Emissary server.  But few people will.  Grandma probably won't.  For Emissary to be successful, hosting companies must be able to offer new Emissary accounts at the click of a button.\n\nThis means that Emissary must be an exemplary citizen in any DevOps workflow.  It should be as easy for an individual hobbyist to turn on a test server on a big hosting provider as it is for that big hosting provider to offer hundreds of thousands (or millions) of accounts to the general public at scale.\n\n### High Performance\n\nEmissary is built to be fast on any hardware.  Lightweight, cacheable templates work with the latest web performance techniques from [htmx.org](https://htmx.org) for a web application that always loads quickly and runs smoothly.\n\n## Get Started\n\nTo get started, visit the [Emissary Developer Website](https://emissary.dev).  This resource is growing every day, and includes [a quickstart guide](https://emissary.dev/installation) along with detailed documentation on [how to configure Emissary](https://emissary.dev/configuring) for your own environment.\n\n## Feature Checklist\n\nThere's a lot of work to do.  Check out the [project status page](https://emissary.dev/status) and the [Emissary kanban](https://trello.com/b/Ir9dDTdu/emissary-dev) for a peek at where we are right now.\n\n## Tech Stack\n\nEmissary is intended to be as easy to run and as scalable as possible.  It runs with a minimal set of dependencies, so you should be able to [install and run an Emissary server](https://emissary.dev/installation) in between lunch and tea time.\n\n* [Go](https://go.dev)\n* [Mongodb](https://mongodb.org)\n* [HTMX](https://htmx.org) / [Hyperscript](https://hyperscript.org)\n* That's it.  I'll worry about a cute acronym later.\n\nEmissary also relies on a stack of custom libraries that make it go:\n\n* [Hannibal](https://github.com/benpate/hannibal) - A robust, idiomatic ActivityPub interfaces in Go\n* [Sherlock](https://github.com/benpate/sherlock) - Inspect data in ActivityPub/RSS/MicroFormats and more\n* [Toot](https://github.com/benpate/toot) - Mastodon Server API\n* [Rosetta](https://github.com/benpate/rosetta) - Data mapping and manipulations: schemas, conversions, etc \n\nA complete list can be found in the [Go module file](https://github.com/EmissarySocial/emissary/blob/main/go.mod).\n\n### Everyone Welcome\n\nI welcome your thoughts, ideas, feedback, criticisms, and mockery if it will help create a more realistic and workable way for people to use the Internet *as originally intended*.\n\nPlease try it out, get in touch, file a suggestion, report bugs \"@\" me, block me, whatever.  Just get involved and help make a difference.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femissarysocial%2Femissary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femissarysocial%2Femissary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femissarysocial%2Femissary/lists"}