#comments #bridge #platform #blog #activity-pub #system #mastodon

app pinka

A highly available, ActivityPub-powered commenting system that bridges the gap between web comments and the Fediverse. Perfect for blogs looking to engage with Mastodon and other ActivityPub-compatible platforms.

2 releases

0.1.0-beta.0 Feb 10, 2025
0.1.0-alpha.0 Jan 17, 2025

#61 in Database interfaces

Download history 112/week @ 2025-01-14 8/week @ 2025-01-21 74/week @ 2025-02-04 50/week @ 2025-02-11

142 downloads per month

MIT/Apache

285KB
6.5K SLoC

Pinka πŸ¦‹

License: MIT OR Apache-2.0 crates.io

A highly available, ActivityPub-powered commenting system that bridges the gap between web comments and the Fediverse. Perfect for blogs looking to engage with Mastodon and other ActivityPub-compatible platforms.

The name "Pinka" comes from the Lojban word meaning "to comment" (x₁ is a comment/remark about subject xβ‚‚ expressed by x₃ to audience xβ‚„). This reflects both the project's core purpose and its systematic approach to federated communications.

[!WARNING] Pinka is still under active development. The database schema might change between minor versions. See FEATURES.md for currently implemented features.

[!NOTE] Federating with Mastodon mostly works now!

✨ Features

  • πŸ”„ Full ActivityPub Integration

    • Actor profile, inbox, and outbox support
    • Seamless federation with Mastodon and other Fediverse platforms
  • 🎯 Easy Integration

    • RESTful API for comment management
    • Drop-in web components for instant commenting functionality
  • 🎨 Highly Customizable

    • Flexible Tera templating system
    • Fully customizable via CSS
  • πŸ”’ Built for Reliability

    • Raft-based clustering powered by Ractor actor system
    • Self-healing data replication
    • Robust comment moderation system
  • πŸ“¦ Zero External Dependencies

    • Powered by Fjall, an embedded key/value database
    • No external database setup or management required
    • Self-contained and easy to deploy

πŸ’‘ Why Pinka?

Pinka is designed to be simple to deploy and easy to maintain. With its embedded Fjall database and Ractor-based clustering, you don't need to worry about:

  • Setting up external databases
  • Complex deployment procedures
  • Additional infrastructure costs
  • Cluster coordination complexity

Just deploy and run!

πŸš€ Quick Start

cargo install --locked pinka
pinka run -c examples/config-single.toml

πŸ“– Documentation

For detailed documentation, please visit our website (🚧).

πŸ› οΈ Integration Example

<pinka-comments
  site="your-site-url"
  page-id="unique-page-id">
</pinka-comments>

🀝 Contributing

We welcome contributions! By contributing, you agree to license your work under MIT OR Apache-2.0 license.

Please read our CONTRIBUTING.md for:

  • Development setup
  • Coding guidelines
  • DCO requirements
  • Pull request process
  • Community guidelines

πŸ“œ License

This project is licensed under either of:

at your option.

🌟 Acknowledgments

Pinka stands on the shoulders of giants. Special thanks to:

  • Fjall - The robust embedded key/value database that powers our storage layer
  • Ractor - The excellent actor system that enables our reliable clustering capabilities

Thanks to all contributors who help make Pinka better!

Dependencies

~107MB
~2.5M SLoC