bun-activitypub/README.md

32 lines
1.6 KiB
Markdown

# 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.