Skip to content

SnapCal v0.0.1 - First Release

Choose a tag to compare

@dirathea dirathea released this 10 Jan 23:05
· 33 commits to main since this release
726abbf

πŸŽ‰ 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


πŸš€ 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.1

Access 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/client

See 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:


πŸ“„ License

MIT License - See LICENSE for details.


πŸ™ Acknowledgments


🎯 What's Next?

See our GitHub Projects for planned features and improvements.

Enjoy using SnapCal! πŸŽ‰