.github | ||
api | ||
assets | ||
src | ||
.browserslistrc | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.prettierignore | ||
.prettierrc.json | ||
.vercelignore | ||
CHANGELOG.md | ||
gulpfile.js | ||
LICENSE | ||
package.json | ||
pnpm-lock.yaml | ||
README.md | ||
vercel.json |
Instance-agnostic share page for the Fediverse.
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:
Host it yourself
Self-hosting toot outside of Vercel requires some extra setup:
-
Make sure you have got Node.js v12 or later as well as pnpm installed
-
Build the static part of toot:
pnpm install # to install dependencies pnpm run build # to build the website
-
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/
-
Set up webserver
- Apache
DocumentRoot "path_to_toot/public" ProxyPass "/api/toot" "http://localhost:8000/"
- Nginx
root path_to_toot/public; index.html; location /api/toot { proxy_pass http://localhost:8000/; }
- 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