You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.7 KiB


Cross-instance share page for Mastodon

toot allows you to share stuff on Mastodon, cross-instance. Just put in your post text and the instance URL and click Toot!

And if you open this page with text URL parameter, it will be auto-inserted in the text field. The same goes for the instance URL parameter. This can be used to build custom share buttons for Mastodon:

<a href="!&">
  Share on Mastodon

The instance URL can be saved in your localStorage to be automatically appended later — handy!


One-click Vercel deploy

For now, toot is a tad bit vendor-locked to run on Vercel. To deploy it yourself, you can use the following button:

Deploy with Vercel

Host it yourself

Self-hosting toot outside of Vercel requires some extra setup:

  1. Make sure you have got Node.js v12 or later as well as pnpm installed

  2. Build the static part of toot:

    pnpm install    # to install dependencies
    pnpm run build  # to build the website
  3. Run the backend server for the form:

    node api/toot.js

    or if you want to run the process in the background:

    pm2 start api/toot.js --watch --ignore-watch="node_modules"

    You can find a summary for pm2 at:

  4. Set up webserver

    1. Apache
    DocumentRoot "path_to_toot/public"
    ProxyPass "/api/toot"  "http://localhost:8000/"
    1. Nginx
    root path_to_toot/public;
    location /api/toot {
        proxy_pass http://localhost:8000/;
    1. Caddy
    root * path_to_toot/public;
    try_files index.html
    handle_path /api/toot {
       reverse_proxy localhost:8000

See also

📯 Shareon (lightweight, stylish, and ethical share buttons) uses toot under the hood!


Copyright © 20202022 Nikita Karamov
Licenced under the GNU Affero General Public License, version 3

The toot logo is based on Mastodons Simple logo, licensed under AGPL-3.0.

The repo banner includes Mastodons Full logo, licensed under AGPL-3.0.

This project is hosted on Codeberg: