# bun-activitypub This is a basic ActivityPub server written in JavaScript, using [Bun](https://bun.sh). It is very much based on [existing work](https://github.com/jakelazaroff/activitypub-starter-kit) but has been re-written to work with Bun instead of Node/Express. This is as much about a personal learning experience as anything. In the beginning, this server only supports following/unfollowing (and being followed/unfollowed in return), as well as posting simple notes - which do get sent out to followers. Rather than store data in a database, it currently stores create activity data in json files, and created posts in markdown files with YAML frontmatter for metadata. The hope is this will allow me to use something like [11ty](https://www.11ty.dev/) to generate my own website for people to view and interact with my posts in the future. I may also experiment with pushing the content to a seperate git repository so I can utilize automated scripts to build and publish the web front-end. ## Dependencies - Bun has it's own built-in http server, so this project uses that rather than something like Express. - It uses [`node-forge`](https://github.com/digitalbazaar/forge) for signing and verifying signed posts, as Bun does not yet implement the required `node:crypto` methods - It uses [`gray-matter`](https://github.com/jonschlinkert/gray-matter) for writing and parsing YAML frontmatter in Markdown files ## Development To install dependencies: ```bash bun install ``` To run: ```bash bun run start ``` This project was created using `bun init` in bun v1.0.0. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.