Email-based comments
Go to file
2025-01-20 21:50:40 -05:00
src Clean up index.ts and implement basic http server 2025-01-20 21:50:40 -05:00
.gitattributes Big bang 2024-12-24 09:43:23 -05:00
.gitignore Initial implementation for generating thread JSON files 2025-01-04 01:20:47 -05:00
bun.lockb Generate color hashes for comment authors 2025-01-05 20:36:38 -05:00
index.ts Clean up index.ts and implement basic http server 2025-01-20 21:50:40 -05:00
LICENSE Add LICENSE 2025-01-06 14:13:09 +00:00
package.json Generate color hashes for comment authors 2025-01-05 20:36:38 -05:00
README.md Implement support for mailbox filtering + start http server 2025-01-20 21:12:47 -05:00
sample.eml Add sample email for dkim 2025-01-12 11:23:14 -05:00
tsconfig.json Big bang 2024-12-24 09:43:23 -05:00

chorus: Email-based comments

This is a system for adding comments to arbitrary sites like a blog. Rather than requiring users to have an account with your blog or a 3rd-party comments platform, it uses email.

Features

  • Works with any mail server that supports arbitrary mailbox aliases (e.g. user+alias@example.com)
  • Writes out comments as static JSON files so they can be served by your webserver of choice
  • Handles arbitrarily deep replies to comments
  • Threads generate UUIDs and don't need to pre-register with Chorus
  • WIP DKIM verification for incoming mail
  • Optionally, only include comments that have been moderated/approved by the admin

Principles

  1. Email, as a federated and decentralized communication protocol, is good.
  2. Independent blogs and websites that do not rely on a large 3rd-party platform are good.
  3. Users should not have to create an account with every individual website to participate in a discussion thread.
  4. Individual threads should not have to pre-register with the comment server.

How It Works

Configuration

Configuration is handled via environment variables:

  • CHORUS_IMAP_HOST
  • CHORUS_IMAP_PORT 993
  • CHORUS_IMAP_USER
  • CHORUS_IMAP_PASS
  • CHORUS_THREAD_TEMPLATE
  • CHORUS_DATA_DIR chorus-data
  • CHORUS_MAILBOX