Passport is a way for creators to build space on the Internet for themselves and their fans. That space can be anywhere, and for anything:
- Creators can use Passport as a CRM or list manager to communicate with their fans, including those who sign up for free
- Creators can use Passport to manage a subscription business; Passport currently has an integration with Stripe, but in principle works with any subscription management system
- Creators can use Passport to create a paywall on a website; Passport currently has a plugin for WordPress, but in principle works with any content management system
- Creators can use Passport to send email, text messages, or publish podcasts that are customized on an individual basis
- Creators can build partnerships with other sites and services that accept Passport so that their fans can have special access
Most importantly, Passport is open source: creators can build a relationship with their fans that is truly theirs, forever.
How Passport Works
Passport at its core is a user entitlement management system.
- Users/Members: These are your fans, followers, subscribers.
- Entitlements: The content, experiences, services that your fans have access to.
The users subscribe to offerings the creator configures. The creator will interact with user over a variety of channels and services. Access to these services are maintained through the entitlements.
Architectural Components
The primary components at the core of Passport include:
- Passport Server: the API server (Open API 2.0), delivery engine, and overall backend of Passport (known internally as Atomic). For more details see the API specification on SwaggerHub.
- Administrative Application: The application the creator uses to manage Passport. It utilizes the Passport API.
- Member Application: The end user application that allows the users to manage their subscriptions, content delivery preferences and billing.
The secondary components of Passport that enable 1st and 3rd party services include:
- Passport OAuth: Passport is built on OAuth 2.0 supports OpenID Connect (for authentication). This allows for a wide variety of integrations and applications to have access privilages for users.
- Stripe Bridge: an intermediate service that connects a Passport instance to Stripe. In the future it will also facilitate Passport to Passport transactions and settlements.
- WordPress Plugin: a reference implementation of how a CMS can use Passport as a paywall. Stratechery.com utilizes the WordPress plugin as a paywall. Also, posts are authored in WordPress, they are automatically synchronized to Passport.
Concepts
This is a high level overview of the main components of Passport.
Audiences
Users are segmented using Audiences. Audiences are used to target specific user groups for email and SMS delivery and grant access to specific articles via Podcast and RSS. An Audience can contain a set of Categories to include or exclude, include conditions on the subscription status, or user attributes.
Articles
Content that is distributed to users is an article. The article can be managed in a CMS such as WordPress using the Passport WordPress Plugin, or via the Articles API. Article content is typically text based.
Assets
Assets are content that is not text based - such as images, video and audio files.
Distributions
A Distribution is an engagement between creator and member based on an Article. _Distributions facilitate delivering an Article to members of an Audience. Distributions can deliver content via Email, SMS, Podcasts and RSS Feeds. Future distribution channels could include social, messaging services, and video providers.
Templates
When a Distribution is delivered to a user a template engine executes on the attributes of the Article, User, and users Subscription. Templates can be highly customized and tailored to the specific medium or client it is rendered with.
Plans
Plans are the most important concept of Passport. A plan represents a set of entitlements that can be purchased or assigned to a user. When a user subscribes to a Plan that user is granted access to a set of entitlements. The entitlements can be a set of Article Categories, a set of Distribution channels for those Categories, a specific Article or Asset or a set of OAuth user permissions (Permission Scopes) for third party services. The Plans can be free, paid, recurring, or lifetime. Plans can be for an individual user, support corporate or group pricing.
Categories
The category is the atomic element that bridges Plans, Entitlements and Articles together. For example, when an Article and Asset is distributed as a podcast, it will be made available to a set of users via an Audience. That Audience will contain a set of Categories that map to a single or set of Plans. Categories need not be unique to a particular Plan. For instance, a creator may make one Plan (plan A) available for the public to purchase for a monthly fee. The same Categories in plan A may also be contained in another plan B made availble at a specific corporate rate, or for free to friends and family. This allows the creator to segment his users not by the Plans, but by the common Categories between several plans.
Integrations
An Integration will grant API access to applications such as WordPress, Spotify, Discourse, or any other OpenID based service or application.
Running Passport
Instructions for running Passport using Docker can be found here.
Also available is an AWS AMI, for running Passport on an AWS EC2 instance.