docs/Start here
Start here
Sharing a release should be the easy part. This page takes you from nothing to a published release with notes: three commands and a markdown file.
What you need
- An ATProto account — the same kind of account you’d use on Bluesky or Tangled. New to the ecosystem? Get an account. Your releases are published as records in your repo, signed by your identity; dist.town never holds them.
- The
disttownCLI — see Install.
1. Log in
disttown login your-handle.exampleYour browser opens for OAuth against your own PDS. Running over SSH or in automation? Use --app-password instead.
2. Publish
disttown publish 1.0.0 dist/mytool-linux-amd64.tar.gz \
--project mytool \
--notes notes.md \
--blobsThat one command hashes your artifacts, uploads them, and writes the release, its notes, and a latest pointer in a single atomic commit to your repo. There is no separate “create project” step — publishing a version creates the project on first release.
--notes notes.mdpublishes your markdown as release notes, readable on your release page and in any standard.site reader.--blobsstores artifact bytes on your own PDS — the zero-setup path, right for small artifacts.
Big files? Bring your own storage instead of --blobs: see storage in the CLI reference.
3. That’s it — see it live
Your project now has a page and a steady address:
https://dist.town/your-handle.example/mytool— the project page: releases, notes, downloads.https://dist.town/your-handle.example/mytool@latest— always the newest release.https://dist.town/your-handle.example/mytool@1.0.0— this release, forever.
Scripts can fetch artifacts and checksums from the same addresses — see the front door.
Where to go next
- Ship the next version the same way;
latestmoves automatically (or manage channels withdisttown pointer set). - Attach or revise notes on any already-published version with
disttown changelog set. - Organize multi-component projects with nesting and publications — see How dist.town thinks.
- Something shipped broken?
disttown yankmarks a release do-not-newly-adopt without breaking anyone’s pins.