Repository navigation
SnapCal v0.0.1 - First Release
π SnapCal v0.0.1
First Stable Release
SnapCal is a privacy-first Progressive Web App (PWA) that helps you sync personal calendar events to your work calendar without exposing sensitive details.
β¨ Key Features
Privacy & Security
- π Privacy-First Design: Events sync as "Synced Event" - no personal details exposed
- π‘οΈ Zero Data Retention: CORS proxy stores nothing - pure pass-through
- π Security Hardened:
- Environment-based CORS restriction
- Security headers (X-Frame-Options, CSP, X-Content-Type-Options)
- SSRF attack prevention
- 5MB file size limits
- No logging policy
Core Functionality
- π Smart Event Syncing: Sync events to Google Calendar, Outlook, or download .ics files
- π± Progressive Web App: Install on mobile & desktop, works offline with caching
- ποΈ Flexible Week Navigation: Infinite future week scrolling with "Today" quick jump
- π Comprehensive FAQ: Detailed privacy and security documentation
Deployment Options
- βοΈ Cloudflare Workers: Serverless, global deployment (Free tier available)
- π³ Docker Support: Self-hosting with multi-platform builds (amd64, arm64)
- π§ Easy Setup: Simple deployment with detailed documentation
π Documentation
- README.md: Full project documentation
- PRIVACY.md: Detailed privacy policy
- DEPLOYMENT.md: Docker & Cloudflare deployment guides
- FAQ Page: In-app comprehensive FAQ
π Quick Start
Using Docker
docker pull ghcr.io/dirathea/snapcal:v0.0.1
docker run -d -p 3000:3000 --name snapcal ghcr.io/dirathea/snapcal:v0.0.1Access at: http://localhost:3000
Using Cloudflare Workers
git clone https://github.com/dirathea/snapcal.git
cd snapcal
npm install
npm run build
npx wrangler pages deploy dist/clientSee DEPLOYMENT.md for detailed instructions.
π οΈ Technology Stack
- Frontend: React 19 + TypeScript + Vite
- Backend: Cloudflare Worker (CORS proxy)
- UI: shadcn/ui (Tailwind CSS + Radix UI)
- Calendar: ical.js (Mozilla)
- Deployment: Cloudflare Pages + Workers / Docker
π¦ What's Included
Components & Features
- Privacy Banner with transparency disclosure
- FAQ page with 9 comprehensive questions
- Week navigation with calendar icon and infinite scrolling
- Event details dialog with sync options
- Progressive Web App manifest & service worker
- Responsive design (mobile & desktop)
Security Enhancements (v0.0.1)
- β
Environment-based CORS origin restriction (
ALLOWED_ORIGIN) - β Security headers middleware
- β Request size validation (5MB max)
- β Zero logging implementation
- β Comprehensive privacy documentation
Platform Support
- β linux/amd64 - Intel/AMD x86_64
- β linux/arm64 - Apple Silicon, AWS Graviton, Raspberry Pi 64-bit
- β linux/arm/v7 - Not supported (Bun limitation)
π Changelog
Added
- FAQ page with comprehensive privacy & security information
- Privacy Banner on setup page with FAQ link
- Week navigation with infinite future scrolling
- "Today" quick jump button (calendar icon)
- PRIVACY.md with detailed data handling policy
- Cloudflare Workers deployment guide
- Docker multi-platform support (amd64, arm64)
- Environment variable for CORS origin restriction
- Security headers (X-Frame-Options, CSP, etc.)
- Request size limits (5MB maximum)
Changed
- Simplified InstructionsGuide (removed redundant sections)
- Moved Privacy Banner to bottom of setup page
- Enhanced README with privacy and security details
- Improved information architecture (setup vs FAQ)
Removed
- ARM v7 (32-bit) platform support (Bun limitation)
- Console logging from proxy (privacy-first approach)
- Redundant privacy notes from setup page
Security
- Zero data retention policy implemented
- No logging in proxy worker
- SSRF prevention enhanced
- File size validation added
- Security headers on all responses
π Requirements
For Users
- Modern web browser (Chrome 90+, Firefox 88+, Safari 14+)
- HTTPS connection (required for PWA)
- JavaScript enabled
For Self-Hosting
- Node.js 18+ (for building)
- Docker 20.10+ (for Docker deployment)
- Cloudflare account (for Workers deployment)
π€ Contributing
SnapCal is open source! Contributions welcome:
- Report issues: GitHub Issues
- Discussions: GitHub Discussions
π License
MIT License - See LICENSE for details.
π Acknowledgments
- ical.js by Mozilla
- shadcn/ui for beautiful UI components
- date-fns for date manipulation
- Lucide Icons for icons
- Cloudflare Workers for serverless infrastructure
π― What's Next?
See our GitHub Projects for planned features and improvements.
Enjoy using SnapCal! π