Git Product home page Git Product logo

emissary's Introduction

Go Reference Build Status Go Report Card Codecov

Emissary 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.

Why Emissary?

Trustworthy Custom Applications

As 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.

This 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.

Distribute 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.

Multi-Network

Emissary use the sherlock library 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.

Baked-In DevOps

Anyone 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.

This 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.

High Performance

Emissary is built to be fast on any hardware. Lightweight, cacheable templates work with the latest web performance techniques from htmx.org for a web application that always loads quickly and runs smoothly.

Get Started

To get started, visit the Emissary Developer Website. This resource is growing every day, and includes a quickstart guide along with detailed documentation on how to configure Emissary for your own environment.

Feature Checklist

There's a lot of work to do. Check out the project status page and the Emissary kanban for a peek at where we are right now.

Tech Stack

Emissary 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 in between lunch and tea time.

Emissary also relies on a stack of custom libraries that make it go:

  • Hannibal - A robust, idiomatic ActivityPub interfaces in Go
  • Sherlock - Inspect data in ActivityPub/RSS/MicroFormats and more
  • Toot - Mastodon Server API
  • Rosetta - Data mapping and manipulations: schemas, conversions, etc

A complete list can be found in the Go module file.

Everyone Welcome

I 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.

Please try it out, get in touch, file a suggestion, report bugs "@" me, block me, whatever. Just get involved and help make a difference.

emissary's People

Contributors

alrs avatar andrewmoise avatar benpate avatar davepeck avatar dependabot[bot] avatar dz4k avatar tomberek avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.