Tent v0.3-WIP Documentation

Note well: There is no guarantee of API stability until Tent v1.0.

Please contribute by making Pull Requests and Issues on the GitHub repository.

Protocol Introduction

Tent uses HTTPS and JSON to transport posts between servers and apps.


Entities are the users of Tent. They authorize apps, establish relationships and read/publish posts. Each entity is identified by their Entity URL, a HTTPS or HTTP URL that has link metadata to facilitate discovery.


Each entity has one or more servers that represent it. Servers handle the storage and dissemination of posts.


Posts are the atomic unit of content in Tent. Each post is JSON and may have attached files.


Apps provide the UI for Tent. Tent is a machine-readable JSON API; some apps consume this API and provide human interfaces to Tent. Apps must be authorized via OAuth 2 before it can modify data or access private posts.


Entities establish relationships when they send posts that mention other entities. Relationships ensure that a post publishers cannot be spoofed and allow granular permissions to be applied to posts.


Subscriptions build on relationships and provide a mechanism to request that a subset of posts get pushed when they are published by an entity.


Notifications are webhooks containing posts that are delivered to entities based on subscriptions and mentions. Apps may also request notifications for published posts.