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!
-
🔄 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
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!
cargo install --locked pinka
pinka run -c examples/config-single.toml
For detailed documentation, please visit our website (🚧).
<pinka-comments
site="your-site-url"
page-id="unique-page-id">
</pinka-comments>
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
This project is licensed under either of:
at your option.
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!