package module
Version: v0.0.0-...-b62883f Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2020 License: MIT Imports: 1 Imported by: 0



GitHub All Releases Docker Cloud Build Status Docker Pulls Docker Image Size (latest by date)

Go Report Card codebeat badge GoDoc GitHub license

📕 twtxt is a Self-Hosted, Twitter™-like Decentralised micro-Blogging platform. No ads, no tracking, your content, your data!

Technically twtxt is a twtxt client in the form of a web application. It supports multiple users and also hosts user feeds directly.

There is also a publicly (free) available Pod available at:

NOTE: I James Mills run this first (of which I hope to be many) twtxt instance on pretty cheap hardware on a limited budget. Please use it fairly so everyone can enjoy using it equally! Please be sure to read the /privacy policy before signing up (pretty striaght forward) and happy Twt'ing! 🤗

Sponsor this project to support the development of new features the upcoming Mobile App and much more! Or contact Support for help with running your own Twtxt!


Hosted Pods

This project offers fully-managed, 1-click instances of this platform we call pods.

Please visit to get your pod today!

NOTE: As of 15th Aug 2020 (comment announcement blog), this is completely FREE and we invite anyone to contact us for an invite code to be one of the first few pod owners!


Pre-built Binaries

As a first point, please try to use one of the pre-built binaries that are available on the Releases page.

Using Homebrew

We provide Homebrew formulae for macOS users for both the command-line client (twt) as well as the server (twtd).

brew tap prologic/twtxt
brew install twtxt

Run the server:


Run the commanad-line client:

Building from source

This is an option if you are familiar with Go development.

  1. Clone this repository (this is important)
git clone
  1. Install required dependencies (this is important)
make deps
  1. Build the binaries

NOTE_: It is important you follow these steps and don't just simply attempt go get ... this project as that will not work (#30) due to the need to package templates and static assets which we use the go.rice tool for.


Deploy with Docker Compose

Run the compose configuration:

docker-compose up -d

Then visit: http://localhost:8000/

Web App

Run twtd:

twtd -r

NOTE: Registrations are disabled by default so hence the -r flag above.

Then visit: http://localhost:8000/

You can configure other options by specifying them on the command-line:

$ ./twtd --help
Usage of ./twtd:
  -E, --admin-email string          default admin user email (default "")
  -N, --admin-name string           default admin user name (default "Administrator")
  -A, --admin-user string           default admin user to use (default "admin")
      --api-session-time duration   timeout for api tokens to expire (default 240h0m0s)
      --api-signing-key string      secret to use for signing api tokens (default "PLEASE_CHANGE_ME!!!")
  -u, --base-url string             base url to use (default "")
  -b, --bind string                 [int]:<port> to bind to (default "")
      --cookie-secret string        cookie secret to use secure sessions (default "PLEASE_CHANGE_ME!!!")
  -d, --data string                 data directory (default "./data")
  -D, --debug                       enable debug logging
      --feed-sources strings        external feed sources for discovery of other feeds (default [,,])
      --magiclink-secret string     magiclink secret to use for password reset tokens (default "PLEASE_CHANGE_ME!!!")
  -F, --max-fetch-limit int         maximum feed fetch limit in bytes (default 2097152)
  -L, --max-twt-length int          maximum length of posts (default 288)
  -U, --max-upload-size int         maximum upload size of media (default 16777216)
  -n, --name string                 set the pod's name (default "")
  -O, --open-profiles               whether or not to have open user profiles
  -R, --open-registrations          whether or not to have open user registgration
      --session-expiry duration     timeout for sessions to expire (default 240h0m0s)
      --smtp-from string            SMTP From to use for email sending (default "PLEASE_CHANGE_ME!!!")
      --smtp-host string            SMTP Host to use for email sending (default "")
      --smtp-pass string            SMTP Pass to use for email sending (default "PLEASE_CHANGE_ME!!!")
      --smtp-port int               SMTP Port to use for email sending (default 587)
      --smtp-user string            SMTP User to use for email sending (default "PLEASE_CHANGE_ME!!!")
  -s, --store string                store to use (default "bitcask://twtxt.db")
  -t, --theme string                set the default theme (default "dark")
  -T, --twts-per-page int           maximum twts per page to display (default 50)
  -v, --version                     display version information
      --whitelist-domain strings    whitelist of external domains to permit for display of inline images (default [imgur\.com,giphy\.com,reactiongifs\.com,githubusercontent\.com])
pflag: help requested

Production Deployments

Docker Swarm

You can deploy twtxt to a Docker Swarm cluster by utilising the provided twtxt.yaml Docker Stack. This also depends on and uses the Traefik ingress load balancer so you must also have that configured and running in your cluster appropriately.

docker stack deploy -c twtxt.yml


Support the ongoing development of twtxt!



Interested in contributing to this project? You are welcome! Here are some ways you can contribute:

  • File an Issue -- For a bug, or interesting idea you have for a new feature or just general questions.
  • Submit a Pull-Request or two! We welcome all PR(s) that improve the project!

Please see the Contributing Guidelines and checkout the Developer Documentation or over at /docs.

Please note: If you wish to contribute to this proejct off-Github please get in touch with us and let us know! We have this project mirroed to private Git hosting using Gitea and can fully support external collaborator this way (even via email!).


Thank you to all those that have contributed to this project, battle-tested it, used it in their own projects or products, fixed bugs, improved performance and even fix tiny typos in documentation! Thank you and keep contributing!

You can find an AUTHORS file where we keep a list of contributors to the project. If you contriibute a PR please consider adding your name there. There is also Github's own Contributors statistics.

Stargazers over time

Stargazers over time


twtxt is licensed under the terms of the MIT License




This section is empty.


View Source
var (
	// Version release version
	Version = "0.0.2"

	// Commit will be overwritten automatically by the build system
	Commit = "HEAD"


func FullVersion

func FullVersion() string

FullVersion display the full version and build


This section is empty.

Source Files


Path Synopsis
webmention project webmention.go
webmention project webmention.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL