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.
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 MiniJinja 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
First, include the JavaScript file:
<script src="https://example.com/pinka/comments.js"></script>
Then specify where the comments will be added:
<div class="pinka-comments"></div>
π€ 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:
- [MIT License]()
- [Apache License 2.0]()
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!