Skip to content

thilobillerbeck/skymoth

Repository files navigation

Skymoth - Toots to the Sky

Skymoth is an open source service which allows you to share the content you post on Mastodon over to Bluesky. This allows you to stay in touch with your followers on both platforms.

Features

  • Reposting toots over to Bluesky in a regular interval
  • Reposting text (and handle threads)
  • Reposting (multiple) images with alt descriptions

Migrating from <= v0.3.2 to > v0.4.0

With v0.4.0 Drizzle will be the new ORM of choice. Thus Prisma and its migration tracking table will be dropped accordingly. To make the upgrading process go smoothly, Skymoth checks if all migrations from Prisma have been applied before migrating. If you have an instance running on a version below v0.3.2 upgrade to v0.3.2 first before upgrading to v0.4.0 and above.

Additionally, Drizzle will execute its migrations automatically on app startup, so there is no need to run pnpm migrate after an update.

Development

For development using Cachix Devenv is strongly advised. After setting up, you can just enter this projects shell just run:

pnpm install

Don't worry, if set up correctly the development shell you are in should contain all development tools needed for this project.

devenv up

Testing

The project uses Node.js built-in test runner for unit testing. To run tests:

# Run all tests
pnpm test

# Run linting
pnpm run lint

# Check code formatting
pnpm run format:check

# Auto-fix formatting issues
pnpm run format

Tests are located in the test/ directory and follow the *.test.ts pattern.

CI/CD Pipeline

The project uses GitHub Actions for continuous integration and deployment:

  • Pull Request Validation (pr.yaml): Runs tests, linting, and formatting checks on all pull requests
  • Release Pipeline (ci.yaml): Runs tests before deploying to main/develop branches

Tests must pass before any code can be merged or released.

FAQ

Is this free to use?

Yes, I will set up some kind of donation system to help keep this project and the infrastructure alive. But you can use this completely free without paying anything.

Can I host this myself?

Yes, this project can be indeed selfhosted, though this is not designed with selfhosting in mind. Though I would kindly ask you to keep your instances private to avoid confusion with this project and its infrastructure.

@()#$ - Something went wrong!

I know, social networks are big and complicated and handling content from a federated network is even more so. Since this is a one man show at the moment, please be patient if errors occur or the infrastructure has problems. You can be assured I'll do my best to fix stuff as quickly as I can.

About

A service to automatically crosspost your Toots to Bluesky

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5