{"id":18533343,"url":"https://github.com/thilobillerbeck/skymoth","last_synced_at":"2025-10-16T14:08:59.901Z","repository":{"id":209198677,"uuid":"719356103","full_name":"thilobillerbeck/skymoth","owner":"thilobillerbeck","description":"A service to automatically crosspost your Toots to Bluesky","archived":false,"fork":false,"pushed_at":"2025-07-08T20:33:35.000Z","size":1102,"stargazers_count":57,"open_issues_count":19,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-08T21:35:25.290Z","etag":null,"topics":["bluesky","bsky","crosspost","crossposter","mastodon"],"latest_commit_sha":null,"homepage":"https://skymoth.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thilobillerbeck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"thilobillerbeck"}},"created_at":"2023-11-16T01:50:44.000Z","updated_at":"2025-06-18T02:34:07.000Z","dependencies_parsed_at":"2023-11-25T19:25:04.611Z","dependency_job_id":"cb541b82-96c7-41ee-8538-f04a0cb55361","html_url":"https://github.com/thilobillerbeck/skymoth","commit_stats":null,"previous_names":["thilobillerbeck/skymoth"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/thilobillerbeck/skymoth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilobillerbeck%2Fskymoth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilobillerbeck%2Fskymoth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilobillerbeck%2Fskymoth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilobillerbeck%2Fskymoth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thilobillerbeck","download_url":"https://codeload.github.com/thilobillerbeck/skymoth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thilobillerbeck%2Fskymoth/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266845403,"owners_count":23994062,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bluesky","bsky","crosspost","crossposter","mastodon"],"created_at":"2024-11-06T19:11:06.204Z","updated_at":"2025-10-16T14:08:59.895Z","avatar_url":"https://github.com/thilobillerbeck.png","language":"TypeScript","funding_links":["https://ko-fi.com/thilobillerbeck"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/images/logo.svg\" width=\"256\"\u003e\n\u003c/p\u003e\n\n# Skymoth - Toots to the Sky\n\nSkymoth 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.\n\n## Features\n\n- Reposting toots over to Bluesky in a regular interval\n- Reposting text (and handle threads)\n- Reposting (multiple) images with alt descriptions\n\n## Migrating from \u003c= v0.3.2 to \u003e v0.4.0\n\nWith v0.4.0 Drizzle will be the new ORM of choice. Thus Prisma and its migration tracking table\nwill be dropped accordingly. To make the upgrading process go smoothly, Skymoth checks if all migrations\nfrom Prisma have been applied before migrating. If you have an instance running on a version below v0.3.2\nupgrade to v0.3.2 first before upgrading to v0.4.0 and above.\n\nAdditionally, Drizzle will execute its migrations automatically on app startup, so there is no need to run `pnpm migrate`\nafter an update.\n\n## Development\n\nFor development using [Cachix Devenv](https://devenv.sh/) is strongly advised.\nAfter setting up, you can just enter this projects shell just run:\n\n```bash\npnpm install\n```\n\nDon't worry, if set up correctly the development shell you are in should contain all development tools needed for this project.\n\n```bash\ndevenv up\n```\n\n### Testing\n\nThe project uses Node.js built-in test runner for unit testing. To run tests:\n\n```bash\n# Run all tests\npnpm test\n\n# Run linting\npnpm run lint\n\n# Check code formatting\npnpm run format:check\n\n# Auto-fix formatting issues\npnpm run format\n```\n\nTests are located in the `test/` directory and follow the `*.test.ts` pattern.\n\n### CI/CD Pipeline\n\nThe project uses GitHub Actions for continuous integration and deployment:\n\n- **Pull Request Validation** (`pr.yaml`): Runs tests, linting, and formatting checks on all pull requests\n- **Release Pipeline** (`ci.yaml`): Runs tests before deploying to main/develop branches\n\nTests must pass before any code can be merged or released.\n\n## FAQ\n\n### Is this free to use?\nYes, 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.\n\n### Can I host this myself?\nYes, 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.\n\n### *@()#$* - Something went wrong!\nI 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthilobillerbeck%2Fskymoth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthilobillerbeck%2Fskymoth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthilobillerbeck%2Fskymoth/lists"}