A Micropub server implementation in Gleam - a lightweight, type-safe server for publishing content to your personal website
Find a file
2026-04-10 11:50:47 +00:00
.forgejo/workflows Add names to all steps 2026-02-22 18:54:49 +00:00
src refactor: restructure backend and route generation 2026-03-04 23:19:27 +00:00
test refactor: remove phantom types and simplify post type handling 2026-03-03 22:06:12 +00:00
.example.env Integrate GitHub backend and break import cycles 2026-02-13 23:18:49 +00:00
.gitignore read env vars 2025-07-28 18:32:30 +01:00
gleam.toml fix(deps): update dependency mist to v6 2026-03-10 20:01:07 +00:00
LICENSE Add license 2025-08-02 21:31:43 +01:00
manifest.toml fix(deps): update dependency mist to v6 2026-03-10 20:01:07 +00:00
mise.toml chore(deps): update dependency erlang to v28.4.1 2026-03-12 20:01:08 +00:00
README.md Update README 2025-08-02 21:34:32 +01:00
renovate.json Add renovate.json 2026-02-22 14:45:53 +00:00

TwinklePub

TwinklePub is a friendly Micropub server written in Gleam, enabling you to publish content to your personal website using standardized IndieWeb protocols.

Installation

Prequisites

  • Gleam (Tested on v1.11)
  • Erlang/OTP (Tested on v28)

Quick Start

This application requires some environment variables to be configured, see below for details.

Start by cloning this repository.

cd twinkle_pub

# Install dependencies
gleam deps download

# Configure environment variables
cp .example.env .env # Edit these variables according to your requirements

# Build and run
gleam run

Configuration

The following environment variables should be configured before running the server.

Required

TOKEN_ENDPOINT: The URL of your IndieAuth token endpoint (e.g., https://tokens.indieauth.com/token)
ME: The URL of your personal website

Optional

MEDIA_ENDPOINT: The URL of the media endpoint Micropub clients should use
SYNDICATE_TO: A JSON array of syndication targets
LOG_LEVEL: Logging verbosity level - defaults to INFO. Supports: DEBUG, INFO, WARN, ERROR, CRITICAL