What Rallly Does
Rallly simplifies group scheduling:
- Scheduling Polls: Create a poll with proposed dates/times, share a link, and let participants vote
- No Sign-up Required: Participants can vote without creating an account — just enter their name
- Time Zone Support: Automatic time zone detection and conversion for international groups
- Comments: Participants can leave comments to explain their availability or preferences
- Notifications: Email notifications when participants respond or when a final time is selected
- Finalize & Notify: Lock in the chosen time and automatically notify all participants
- Guest Mode: Create polls without an account for quick, one-off scheduling
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Next.js │────▶│ tRPC API │────▶│ PostgreSQL │
│ (T3 Stack) │ │ (Prisma) │ │ (Database) │
└──────────────┘ └──────────────┘ └──────────────┘Tech stack:
- Frontend: Next.js 14 + React + Tailwind CSS
- API: tRPC for type-safe API calls
- Database: PostgreSQL with Prisma ORM
- Auth: NextAuth.js with email magic links
- Email: React Email templates via Nodemailer
- i18n: Support for 30+ languages via i18next
Self-Hosting
Docker Compose
services:
rallly:
image: lukevella/rallly:latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://rallly:rallly@db:5432/rallly
SECRET_PASSWORD: your-secret-password-min-32-chars
NEXT_PUBLIC_BASE_URL: http://localhost:3000
NOREPLY_EMAIL: noreply@yourdomain.com
SMTP_HOST: smtp.yourdomain.com
SMTP_PORT: 587
SMTP_USER: your-smtp-user
SMTP_PWD: your-smtp-password
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: rallly
POSTGRES_PASSWORD: rallly
POSTGRES_DB: rallly
volumes:
- pg-data:/var/lib/postgresql/data
volumes:
pg-data:How It Works
1. Create a Poll
The organizer creates a poll with:
- Title and description
- Proposed date/time options
- Optional: location, deadline for responses
2. Share the Link
Share the poll URL with participants via email, Slack, or any messaging app. No app installation or account creation needed.
3. Participants Vote
Each participant:
- Selects their availability for each proposed time (Yes / If need be / No)
- Optionally leaves a comment
- Can update their response later
4. Find the Best Time
The organizer sees a summary grid showing everyone's availability:
Mon 15 Tue 16 Wed 17
Alice ✅ ✅ ❌
Bob ✅ ❓ ✅
Carol ❌ ✅ ✅
─────────────────────────────────────
Best: 2/3 2.5/3 2/35. Finalize
Lock in the chosen date and all participants receive a notification with the final details.
Key Features
Multi-Language Support
Rallly supports 30+ languages including English, Chinese, Japanese, Korean, German, French, Spanish, and more — making it accessible for international teams.
Mobile-Friendly
The responsive design works perfectly on phones and tablets. Participants can vote from any device without installing an app.
Privacy-Focused
- No tracking or analytics on participant activity
- No ads or upsells
- Self-hosted = complete data ownership
- Participant data is never shared with third parties
Rallly vs Alternatives
| Feature | Rallly | Doodle | When2meet | Calendly |
|---|---|---|---|---|
| Open Source | Yes (AGPL-3.0) | No | No | No |
| Self-hosted | Yes | No | No | No |
| No signup to vote | Yes | No | Yes | N/A |
| Time zones | Auto-detect | Yes | Yes | Yes |
| Comments | Yes | Premium | No | N/A |
| Mobile app | PWA | iOS/Android | Web only | iOS/Android |
| Ad-free | Yes | Premium | Yes | Yes |
| Pricing | Free | Free + Premium | Free | Free + Paid |
常见问题
Q: Rallly 和 Calendly 有什么区别? A: Rallly 是投票式调度(多人选最优时间),Calendly 是预约式调度(个人开放时间段供他人预约)。团队开会用 Rallly,客户预约用 Calendly。
Q: 需要配置邮件服务器吗? A: 推荐配置 SMTP 以启用邮件通知功能。不配置也可以使用,但参与者不会收到邮件提醒,需要通过链接访问投票。
Q: 支持日历集成吗? A: 支持将最终确定的事件导出为 .ics 文件,可导入到 Google Calendar、Outlook 等。直接的日历 API 集成在开发路线图中。
来源与致谢
- GitHub: lukevella/rallly — 5K+ ⭐ | AGPL-3.0
- 官网: rallly.co