{"id":20244571,"url":"https://github.com/yuforium/api","last_synced_at":"2025-09-21T06:07:45.695Z","repository":{"id":49336294,"uuid":"205494377","full_name":"yuforium/api","owner":"yuforium","description":"Yuforium API - ActivityPub Server","archived":false,"fork":false,"pushed_at":"2024-10-19T10:33:06.000Z","size":4004,"stargazers_count":12,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-05T14:15:21.532Z","etag":null,"topics":["activitypub","activitypub-federation","activitypub-server","federation","nestjs","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuforium.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-08-31T04:21:45.000Z","updated_at":"2025-03-06T11:45:11.000Z","dependencies_parsed_at":"2023-12-13T06:36:24.123Z","dependency_job_id":"8809d2e6-3171-4781-b50a-f8ae297cfe34","html_url":"https://github.com/yuforium/api","commit_stats":{"total_commits":168,"total_committers":3,"mean_commits":56.0,"dds":0.125,"last_synced_commit":"d21b3cb87561a127a41911524d0b508a9cd90131"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yuforium/api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuforium%2Fapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuforium%2Fapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuforium%2Fapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuforium%2Fapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuforium","download_url":"https://codeload.github.com/yuforium/api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuforium%2Fapi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274487547,"owners_count":25294559,"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-09-10T02:00:12.551Z","response_time":83,"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":["activitypub","activitypub-federation","activitypub-server","federation","nestjs","nodejs","typescript"],"created_at":"2024-11-14T09:16:14.615Z","updated_at":"2025-09-21T06:07:45.661Z","avatar_url":"https://github.com/yuforium.png","language":"TypeScript","readme":"# Yuforium API\n_Yuforium is a federated community platform based on Activity Pub_\n\nThe Yuforium API and [UI](https://github.com/yuforium/ui) are currently deployed to [Yuforia.com](https://www.yuforia.com).\n\nYuforium federates communities so they are not constrained to a single entity, and attempts to federate them in the same way that the Internet is distributed, making communities operate across public exchange points.\n\n## App Structure\nThe Yuforium API is built using the [NestJS framework](https://nestjs.com), and all Yuforium API code has been organized into modules in `src/modules`.\n\n### Data Modules\nData in Yuforium is stored as ActivityPub objects.  Any additional fields that are not part of the ActivityPub specification start with an underscore character.  These fields are generally reserved for data operations (such as pointers to other documents).\n\nYuforium stores data in three collections, with a corresponding modules:\n\n* **Activities** contain all activities sent or received\n* **Objects** stores the current state of all tracked objects and can be considered a summation of all Activities\n* **Users** contains all user login information.  In addition to providing services related to the Users collection, the `UserModule` provides functionality for managing ActivityPub related to a user, such as the Inbox, Outbox, and user related content endpoints.\n\n### Other Modules\n\n* **ActivityPub** handles server-to-server communication\n* **Auth** handles user authentication\n* **WellKnown** handles all `/.well-known` such as webfinger which are required for ActivityPub\n\n\n## About\nThis API is designed to implement a [proposed community standard for Activity Pub](https://github.com/yuforium/activitypub-docs/blob/main/federation.md).  This project also uses the [Activity Streams](https://github.com/yuforium/activity-streams) package and has a [separate UI project](https://github.com/yuforium/ui) written in Angular.\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuforium%2Fapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuforium%2Fapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuforium%2Fapi/lists"}