{"id":50134533,"url":"https://github.com/fedify-dev/content-sharing","last_synced_at":"2026-05-23T21:02:18.250Z","repository":{"id":354470805,"uuid":"1221450154","full_name":"fedify-dev/content-sharing","owner":"fedify-dev","description":"Federated image sharing example using Fedify and Nuxt","archived":false,"fork":false,"pushed_at":"2026-04-27T11:50:13.000Z","size":386,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-28T18:41:11.456Z","etag":null,"topics":["activitypub","example","fedify","fediverse","image-sharing","nuxt","pixelfed","tutorial"],"latest_commit_sha":null,"homepage":"https://fedify.dev/tutorial/content-sharing","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fedify-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-26T08:14:12.000Z","updated_at":"2026-04-27T11:50:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fedify-dev/content-sharing","commit_stats":null,"previous_names":["fedify-dev/content-sharing"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/fedify-dev/content-sharing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fcontent-sharing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fcontent-sharing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fcontent-sharing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fcontent-sharing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedify-dev","download_url":"https://codeload.github.com/fedify-dev/content-sharing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fcontent-sharing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33412082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["activitypub","example","fedify","fediverse","image-sharing","nuxt","pixelfed","tutorial"],"created_at":"2026-05-23T21:02:13.761Z","updated_at":"2026-05-23T21:02:18.244Z","avatar_url":"https://github.com/fedify-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Federated image sharing example using Fedify and Nuxt\n=====================================================\n\n\u003e [!WARNING]\n\u003e This program is for educational purposes only.  Do not use it for any other\n\u003e purpose, since it has not been tested for security.\n\nThis is a small Pixelfed-style federated image sharing service built with\n[Fedify] and [Nuxt].  It is the companion example to the\n[*Creating a federated image sharing service*][tutorial] tutorial.  Each\nchapter that touches the example app lands as its own commit, with a small\nnumber of follow-up commits at the tip that fix issues spotted during the\nend-to-end rehearsal.\n\nThe features of this program are:\n\n -  A single user can create an account on their own instance\n -  The user can be followed by other actors in the fediverse\n -  A follower can unfollow the user\n -  The user can see the list of their followers\n -  The user can upload image posts with captions\n -  Posts made by the user are visible to their followers in the fediverse\n -  The user can follow other actors in the fediverse\n -  The user can see the list of actors they are following\n -  The user can see posts made by actors they follow in a home timeline\n -  The user can like posts, and remote actors' likes are recorded\n -  The user can leave comments on posts, and remote replies are recorded\n\nSince it is a small example for educational purposes, it has a lot of\nlimitations:\n\n -  Only one local account per instance\n -  One image per post (no carousels)\n -  The user cannot edit or delete posts\n -  No boosts (reposts), no direct messages, no search\n -  No pagination\n -  No authentication beyond “whoever opened the browser first owns this\n    instance”\n\n[Fedify]: https://fedify.dev/\n[Nuxt]: https://nuxt.com/\n[tutorial]: https://fedify.dev/tutorial/content-sharing\n\n\nDependencies\n------------\n\nThis program is written in TypeScript and uses [Node.js].  You need Node.js\n22.0.0 or later installed on your system.\n\nIt depends on a few libraries besides [Fedify]:\n\n -  [Nuxt] for the web framework\n -  [`@fedify/nuxt`] for bridging Fedify with Nuxt's Nitro server\n -  [Drizzle ORM] with [better-sqlite3] for the database\n -  [UnoCSS] for styling\n -  A few other libraries; see *package.json* for details\n\n[Node.js]: https://nodejs.org/\n[`@fedify/nuxt`]: https://www.npmjs.com/package/@fedify/nuxt\n[Drizzle ORM]: https://orm.drizzle.team/\n[better-sqlite3]: https://www.npmjs.com/package/better-sqlite3\n[UnoCSS]: https://unocss.dev/\n\n\nHow to run\n----------\n\nTo run this program, install the dependencies first:\n\n~~~~ sh\nnpm install\n~~~~\n\nCreate the SQLite database schema:\n\n~~~~ sh\nnpm run db:push\n~~~~\n\nThen start the development server:\n\n~~~~ sh\nnpm run dev\n~~~~\n\nThis starts the server on port 3000.  You can visit\n\u003chttp://localhost:3000/\u003e in your web browser.  However, since this\nprogram is an ActivityPub server, you probably need to expose it to the public\ninternet to talk to other servers in the fediverse.  In that case, use\n[`fedify tunnel`]:\n\n~~~~ sh\nfedify tunnel 3000\n~~~~\n\n`fedify tunnel` prints a public URL; open it in a browser to use the app, and\nother fediverse servers will be able to reach your instance at the same URL.\n\n[`fedify tunnel`]: https://fedify.dev/manual/test#exposing-a-local-server-to-the-public\n\n\nLicense\n-------\n\nThis program is licensed under the [MIT License].  See the *LICENSE* file for\ndetails.\n\n[MIT License]: https://minhee.mit-license.org/2026/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedify-dev%2Fcontent-sharing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedify-dev%2Fcontent-sharing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedify-dev%2Fcontent-sharing/lists"}