Introduction
In a world where planning poker tools often come with restrictions or uncertainties, a new player, Pokor, has emerged. Designed for distributed engineering teams, Pokor offers a free and unlimited experience, addressing common frustrations with existing tools.
Motivation for Development
Many existing planning poker tools impose restrictions on participants or sessions, especially during peak sprint planning periods. Moreover, the ambiguity regarding data storage and usage was a concern. Pokor was developed to eliminate these limitations, providing users with a tool that respects their data privacy and offers unrestricted access.
Key Features
- Unlimited Access: Pokor allows unlimited sessions, participants, and stories without auto-deletion.
- Real-Time Voting: Engage in real-time voting with reveal and re-vote options, alongside confidence indicators.
- Asynchronous Sessions: Users can vote at their convenience, not just during live sessions.
- Integration with Popular Platforms: Import stories from GitHub Issues, Jira, Notion, and CSV files.
- Chat Bot Integration: Start sessions directly from Slack and Discord using the /pokor command.
- Paid Organizer Plan: Offers two-way sync with GitHub, Jira, and Notion, though most teams will manage with the free version.
Technical Stack
Pokor's stack was chosen for reliability and performance:
- Laravel + Vue: Utilizes Inertia for a seamless blend of backend routing/auth and frontend SPA, with server-side rendering for optimal loading.
- FrankenPHP + Laravel Octane: Keeps applications in memory to enhance performance, reducing latency in real-time actions.
- Laravel Reverb WebSockets: Ensures all data stays within the Pokor infrastructure, enhancing security and privacy.
- PostgreSQL and Redis: PostgreSQL handles complex queries efficiently, while Redis manages both Laravel's standard operations and join-request approval queues.
Real-Time Session Interaction
The planning room is powered by WebSockets, enabling real-time interaction without delays. Events such as votes, story changes, and participant movements are efficiently managed and broadcasted to ensure a seamless experience.
Deployment Strategy
Pokor employs a blue-green deployment strategy, allowing updates with zero downtime. This is achieved using Docker containers managed behind Caddy, ensuring smooth transitions and easy rollback if necessary.
Docker and Portability
The entire infrastructure resides in a Docker compose file, simplifying server migrations. With Cloudflare managing TLS and security, the system is robust and portable, making server changes quick and efficient.
Cloudflare Integration
Cloudflare enhances Pokor's efficiency by managing TLS, blocking bot traffic, and providing secure tunnels for traffic, ensuring that server migrations are hassle-free.
Integration Challenges
While integrating with platforms like GitHub, Notion, Slack, and Discord was straightforward, Jira presented multiple challenges due to its complex OAuth flow and permissions. Despite these hurdles, Pokor now supports Jira after implementing a robust solution.
Future Developments
The focus remains on user feedback and improving upon the initial release. Users are encouraged to share their experiences to help refine Pokor further.
For more information, visit pokor.dev.