Organizing a team meeting across multiple time zones, planning a family reunion, or coordinating a volunteer event used to mean one thing: create a Doodle poll and hope nobody complains about the ads. In 2026, there is a better way. Self-hosted collaborative scheduling tools let you create polls, gather availability, and find the best time — without handing your group’s data to a third-party service.
This guide compares the three best open-source Doodle alternatives you can run on your own server: Rallly, Framadate, and Dudle. Each takes a different approach to the same problem, and each has its own strengths depending on your needs.
Why Self-Host Your Scheduling Polls
The case for running your own collaborative scheduling tool comes down to four factors:
Privacy: When you use Doodle or similar SaaS tools, every participant’s name, email, and availability choice is stored on a commercial server. For teams handling sensitive projects, this data exposure is unnecessary. Self-hosting keeps all scheduling data on your own infrastructure.
No ads, no upsells: Doodle’s free tier is filled with banner ads and constant prompts to upgrade. Self-hosted alternatives are completely free — no per-user licensing, no feature gates, no “pro” tier you need to unlock basic functionality.
Branding control: When you send a scheduling poll from your own domain, it looks professional. No Doodle branding, no “Powered by” footers. The poll matches your organization’s identity.
Longevity: Doodle has changed its pricing, features, and ownership multiple times. A self-hosted tool lives as long as your server runs. There is no corporate decision that can shut it down or change its terms of service.
For teams that already run self-hosted tools like Cal.com for booking or Nextcloud for file sharing, adding a collaborative scheduling poll completes the coordination stack.
Quick Comparison Table
| Feature | Rallly | Framadate | Dudle |
|---|---|---|---|
| Language | TypeScript (Next.js) | PHP | Ruby |
| Database | PostgreSQL | MariaDB / MySQL | SQLite |
| License | AGPL-3.0 | AGPL-3.0 | MIT |
| GitHub Stars | 5,057 | 103 | 370 |
| Last Updated | April 2026 | November 2025 | March 2026 |
| docker Support | Official docker-compose | Community Docker image | Dockerfile available |
| User Accounts | Yes (email + OAuth) | No (anonymous polls) | No (anonymous polls) |
| Auth Providers | Google, Microsoft, OIDC | N/A | N/A |
| Calendar Sync | Yes (ICS export) | No | No |
| Comments | Yes | Yes | Yes |
| Custom Fields | No | Yes (yes/no/maybe + custom) | Yes (custom options) |
| Hidden Polls | Yes (secret links) | Yes | No |
| Mobile Responsive | Yes | Yes | Yes |
| Multi-language | Yes | Yes | Yes |
| Resource Needs | Moderate (Node.js + Postgres) | Low (PHP + MariaDB) | Minimal (Ruby + SQLite) |
Rallly: The Modern Full-Featured Choice
Rallly is the most actively developed and feature-rich self-hosted Doodle alternative. Written in TypeScript with Next.js, it offers a polished interface, user accounts with OAuth sign-in, calendar integration, and a clean REST API.
With over 5,000 GitHub stars and regular releases, Rallly is the clear leader in this space. It supports both “pick a date” polls (find the best meeting time) and “yes/no/maybe” polls (should we do this thing?), making it versatile for both scheduling and general decision-making.
Key Features
- User accounts with OAuth: Sign in with Google, Microsoft, or any OIDC provider. This means you can manage who creates polls and delete old ones.
- Calendar integration: Export polls to ICS format and subscribe via any calendar app.
- Real-time updates: When someone votes, the poll updates live without a page refresh.
- Secret polls: Create polls accessible only via a shareable link — no public listing.
- Custom branding: Set a custom domain and remove any default branding.
- Email notifications: Participants get notified when the poll creator makes changes.
Docker Compose Deployment
Rallly ships with an official docker-compose.yml that sets up both the application and PostgreSQL database:
| |
Save this as docker-compose.yml and run:
| |
Rallly will be available at http://localhost:3000. For production, place it benginxa reverse proxy like Nginx or Caddy with TLS termination.
Configuration Options
| Environment Variable | Description | Required |
|---|---|---|
DATABASE_URL | PostgreSQL connection string | Yes |
SECRET_PASSWORD | Session encryption key (min 32 chars) | Yes |
NEXTAUTH_URL | Your public URL | Yes |
NOREPLY_EMAIL | From address for notifications | No |
SMTP_HOST | SMTP server hostname | No (needed for emails) |
SMTP_PORT | SMTP port (587 for STARTTLS) | No |
SMTP_SECURE | Use TLS (true/false) | No |
SMTP_USER | SMTP authentication username | No |
SMTP_PASSWORD | SMTP authentication password | No |
Framadate: The Lightweight PHP Option
Framadate is the original open-source Doodle clone, developed by the French non-profit Framasoft as part of their “Dégooglisons Internet” (let’s de-Google the internet) campaign. It has been around since 2014 and remains a solid, no-frills option for simple scheduling polls.
While the main repository on Framagit is now in maintenance mode, the codebase is stable and widely deployed across Europe, particularly by organizations that value software freedom and data sovereignty.
Key Features
- Zero registration: Anyone can create a poll instantly — no accounts needed.
- Multiple poll types: Standard date/time polls, classic yes/no/maybe polls, and free-text custom options.
- Simple administration: Delete polls, export results as CSV, and set expiration dates.
- Lightweight: Runs on any shared hosting with PHP and MySQL/MariaDB. No Node.js build step, no PostgreSQL requirement.
- GDPR-friendly: No user tracking, no analytics, minimal data collection.
Docker Deployment
Framadate does not have an official Docker image, but you can run it using a community-maintained image with MariaDB:
| |
Alternatively, deploy Framadate on any standard LAMP stack. It requires PHP 7.4+ with the pdo_mysql and intl extensions enabled. The installation process involves downloading the source, setting file permissions, and running a web-based installer.
| |
Access the installer at http://yourserver/framadate/install.php and follow the setup wizard.
Dudle: The Minimal No-JavaScript Option
Dudle takes the opposite approach from Rallly. Written in Ruby, it requires zero JavaScript on the client side, stores everything in a single SQLite file, and runs on minimal hardware — a Raspberry Pi is more than sufficient.
Dudle is ideal for organizations with strict security policies that restrict JavaScript execution, or for administrators who want the simplest possible deployment with zero external dependencies.
Key Features
- No JavaScript required: Works entirely with server-rendered HTML forms. Accessible from any browser, including text-based ones.
- Single-file deployment: The entire application plus data lives in one directory with a SQLite database. No separate database server needed.
- Custom poll types: Beyond standard scheduling, you can create any poll with custom options (restaurant voting, feature prioritization, etc.).
- Password protection: Optionally password-protect individual polls.
- Lightweight footprint: Runs comfortably on 256 MB of RAM.
Docker Deployment
Dudle can be containerized using a simple Dockerfile:
| |
Or use a docker-compose.yml with a pre-built image:
| |
The SQLite database file will be persisted in the dudle-data volume. No database server configuration is needed.
Choosing the Right Tool
The decision between these three tools comes down to your priorities:
Choose Rallly if:
- You want the most polished, modern interface
- You need user accounts with OAuth authentication
- You want calendar integration (ICS export)
- You need email notifications for poll participants
- Your server can handle a Node.js + PostgreSQL stack
Choose Framadate if:
- You want the simplest possible deployment on existing PHP hosting
- You don’t need user accounts — anonymous polls are fine
- You want a proven, stable tool that has been running in production since 2014
- You prefer MariaDB/MySQL over PostgreSQL
- You want the lightest resource footprint among the PHP options
Choose Dudle if:
- You have strict requirements against client-side JavaScript
- You want the absolute simplest deployment (single SQLite file)
- You are running on minimal hardware (Raspberry Pi, low-end VPS)
- You need maximum accessibility (text browsers, screen readers)
- You want MIT-licensed software (Rallly and Framadate are AGPL)
Deployment Architecture
For a production deployment, the recommended architecture for Rallly (the most complex of the three) looks like this:
| |
For Framadate, replace PostgreSQL with MariaDB and the Next.js container with a PHP-FPM + Apache container. For Dudle, the database layer disappears entirely — SQLite handles persistence within the application container.
FAQ
Can I migrate my polls from Doodle to a self-hosted tool?
Unfortunately, Doodle does not provide an export feature for polls. However, if you have the poll data (dates, options, votes), you can manually recreate it in Rallly or Framadate. For organizations planning a permanent migration, start by creating new polls on your self-hosted instance going forward rather than trying to migrate historical data.
Do these tools support recurring or template polls?
Rallly does not currently support recurring polls out of the box, but you can duplicate existing polls to quickly recreate similar scheduling requests. Framadate and Dudle are single-use poll tools — each poll is created from scratch. For recurring scheduling needs, consider pairing these with a tool like Cal.com which handles recurring booking pages.
Can I customize the look and feel of these tools?
Rallly supports custom branding through environment variables and theme customization in the source code. Framadate has built-in theme support — you can swap CSS files or create custom templates. Dudle uses basic HTML/CSS that is straightforward to modify. All three are open source, so you have full control over the appearance if you are willing to modify the codebase.
What happens if I forget to delete old polls?
Rallly allows poll creators to delete their own polls, and administrators can clean up the database. Framadate supports setting expiration dates on polls — they are automatically deleted after a configurable period. Dudle stores polls in the SQLite file indefinitely; you will need to manually remove old poll directories. For production use, set up a cron job to clean up expired polls.
Are these tools suitable for enterprise use?
Rallly is the most enterprise-ready option with OAuth authentication, OIDC support, and API endpoints. It can integrate with existing corporate identity providers like Active Directory or Okta. Framadate is suitable for internal team use but lacks authentication features. Dudle is best for small teams or informal use cases. For larger organizations that need scheduling at scale, Cal.com or Easy!Appointments may be more appropriate.
Can I run multiple self-hosted scheduling tools on the same server?
Yes. Each tool uses different ports and can be deployed alongside others. A common setup is Rallly for team scheduling polls on port 3000, with Cal.com for personal booking pages on port 3001, both behind a reverse proxy routing by domain or path. Just ensure each tool has its own database instance or at least separate database names.