{"id":50134529,"url":"https://github.com/fedify-dev/astro-blog","last_synced_at":"2026-05-23T21:02:14.416Z","repository":{"id":352216648,"uuid":"1214246300","full_name":"fedify-dev/astro-blog","owner":"fedify-dev","description":"Federated blog example using Fedify and Astro","archived":false,"fork":false,"pushed_at":"2026-04-22T11:59:05.000Z","size":208,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T15:36:00.216Z","etag":null,"topics":["astro","blog","example","fedify","tutorial"],"latest_commit_sha":null,"homepage":"https://fedify.dev/tutorial/astro-blog","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-18T10:04:46.000Z","updated_at":"2026-04-22T11:59:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fedify-dev/astro-blog","commit_stats":null,"previous_names":["fedify-dev/astro-blog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fedify-dev/astro-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fastro-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fastro-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fastro-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fastro-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedify-dev","download_url":"https://codeload.github.com/fedify-dev/astro-blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fastro-blog/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":["astro","blog","example","fedify","tutorial"],"created_at":"2026-05-23T21:02:12.451Z","updated_at":"2026-05-23T21:02:14.400Z","avatar_url":"https://github.com/fedify-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Federated blog example using Fedify and Astro\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 thoroughly tested for security.\n\nThis is a simple federated blog example using [Fedify] and [Astro]. Blog posts\nare authored as Markdown files and built to static HTML at build time, while\nActivityPub federation is handled by server-side routes. The features of this\nprogram are:\n\n -  Blog posts authored as Markdown files in *src/content/posts/*\n -  The blog author can be followed by other actors in the fediverse\n -  A follower can unfollow the blog\n -  Blog posts are delivered to followers as [ActivityPub] activities\n -  Remote users can reply to posts, and replies are shown on the blog\n\nSince it is a simple example for educational purposes, it has a lot of\nlimitations:\n\n -  The blog author's profile cannot be configured without editing source files\n -  No likes or shares of posts\n -  No search feature\n -  No authentication or authorization for the web interface\n -  In-memory key-value store and message queue (resets on restart) in early\n    chapters; SQLite is introduced later in the tutorial\n\n[Fedify]: https://fedify.dev/\n[Astro]: https://astro.build/\n[ActivityPub]: https://www.w3.org/TR/activitypub/\n\n\nTutorial\n--------\n\nThis repository accompanies the *[Building a federated blog]* tutorial on the\nFedify website. The tutorial walks through building this project step by step,\nstarting from `fedify init` and ending with receiving comments from the\nfediverse.\n\n[Building a federated blog]: https://fedify.dev/tutorial/astro-blog\n\n\nDependencies\n------------\n\nThis program is written in TypeScript and uses [Bun]. You need to have Bun\n1.0.0 or later installed on your system to run this program.\n\nIt also depends on a few external libraries besides [Fedify]:\n\n -  [Astro] for the web framework and static site generation\n -  [bun:sqlite] for the database (followers, comments, and key pairs)\n -  A few other libraries; see *package.json* for details\n\n[Bun]: https://bun.sh/\n[bun:sqlite]: https://bun.sh/docs/api/sqlite\n\n\nHow to run\n----------\n\nTo run this program, you need to install the dependencies first. You can do\nthat by running the following command:\n\n~~~~ sh\nbun install\n~~~~\n\nAfter installing the dependencies, you can start the development server using\nthe following command:\n\n~~~~ sh\nbun run dev\n~~~~\n\nThis will start the program on port 4321. You can access the blog by visiting\n\u003chttp://localhost:4321/\u003e in your web browser. However, since this program is an\nActivityPub server, you need to expose it to the public internet to communicate\nwith other servers in the fediverse. In that case, you can use the\n[fedify tunnel] command.\n\n[fedify tunnel]: https://fedify.dev/manual/test#tunneling\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%2Fastro-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedify-dev%2Fastro-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedify-dev%2Fastro-blog/lists"}