[OUTDATED MIRROR] ⭓ Instance-agnostic share page for the Fediverse. https://github.com/kytta/share2fedi
This repository has been archived on 2024-07-28. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2023-06-17 14:16:00 +02:00
.github Update usernames 2022-02-02 15:32:36 +01:00
api Fix lint problems 2023-03-01 12:42:40 +01:00
assets
src Use at() instead of charAt() 2023-06-17 14:08:15 +02:00
.browserslistrc Fix formatting issues 2023-03-01 12:42:40 +01:00
.editorconfig
.eslintignore Set up linters 2023-03-01 12:42:40 +01:00
.eslintrc.json Set up linters 2023-03-01 12:42:40 +01:00
.gitignore
.pre-commit-config.yaml Update pre-commit 2023-06-17 14:07:34 +02:00
.prettierignore Set up linters 2023-03-01 12:42:40 +01:00
.prettierrc.json Set up linters 2023-03-01 12:42:40 +01:00
CHANGELOG.md Release 2.4.5 2023-06-17 14:16:00 +02:00
gulpfile.js Set up linters 2023-03-01 12:42:40 +01:00
LICENSE
package.json Release 2.4.5 2023-06-17 14:16:00 +02:00
pnpm-lock.yaml Set up linters 2023-03-01 12:42:40 +01:00
README.md add caddy syntax 2022-05-17 15:30:54 +02:00

toot

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="https://toot.kytta.dev/?text=Hello%20world!&instance=https%3A%2F%2Fmastodon.xyz">
  Share on Mastodon
</a>

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

Hosting

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: https://pm2.keymetrics.io/docs/usage/quick-start/

  4. Set up webserver

    1. Apache
    DocumentRoot "path_to_toot/public"
    
    ProxyPass "/api/toot"  "http://localhost:8000/"
    
    1. Nginx
    root path_to_toot/public;
    index.html;
    
    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!

Licence

Copyright © 2020–2022 Nikita Karamov
Licenced under the GNU Affero General Public License, version 3

The ‘toot’ logo is based on Mastodon’s ‘Simple’ logo, licensed under AGPL-3.0.

The repo banner includes Mastodon’s ‘Full’ logo, licensed under AGPL-3.0.


This project is hosted on Codeberg: https://codeberg.org/kytta/toot