View Source 🪐 Orbit - a Gemini app framework for Elixir

Module Version Hex Docs

A simple framework for a simple protocol.

Orbit is a framework for building Gemini applications, known as "capsules".

This framework focuses primarily on the Gemini protocol itself, intent on getting a request into your application, handling it, and sending a Gemtext response.

It doesn't make any assumptions about your business logic, backing database, migrations, or anything like that. If you need a database, you can add it manually.

Concepts

Orbit borrows a lot of ideas from Plug and Phoenix.

  • Orbit.Endpoint - the TLS server that accepts incoming requests (Phoenix.Endpoint + cowboy)
  • Orbit.Request - encapsulates the request-response lifecyle (Plug.Conn)
  • Orbit.Pipe - the behaviour for request middleware (Plug)
  • Orbit.Router - defines pipelines and routes (Phoenix.Router)
  • Orbit.Controller - processes requests (Phoenix.Controller)
  • Orbit.Gemtext - renders Gemtext templates (Phoenix.Component)

Some additional niceties:

Installation

Orbit can be added to a new or existing application, including a Phoenix one.

See the quickstart guide for installation instructions.