OpenLifeCalendar is a premium, open-source, local-first clone of thelifecalendar.com. It features a fully responsive, dynamic PNG wallpaper generator server designed to render personalized progress grids for your lock screen.
Automated via platforms like Apple Shortcuts, OpenLifeCalendar keeps you mindful of your time, goals, and habits on a daily basis with pixel-perfect aesthetic precision.
- 🔄 Dual Visual Modes:
- Year Progress (3x4 Grid): Visualizes your current year month-by-month. Completed days are filled, today is highlighted with an accent color, and future days are kept empty.
- Goal Countdown (16-Column continuous Grid): Tracks a specific personal target (e.g., marathon training, graduation, product launch) with a dense, customizable grid of days.
- 🎨 Premium Theme Presets: Handpicked color combinations including AMOLED Black, Catppuccin Mocha, Dracula, Nord, Forest, and minimal monochrome themes, plus fully custom hex overrides.
- 📐 Lock Screen Spacing Control: Fine-tune vertical spacings (
topOffsetto clear native lock-screen clocks/widgets andbottomOffsetfor status clearance) with relative and absolute placement tools. - 🚀 Edge Runtime Optimization: Built using standard Next.js App Route Handlers running on the Edge Runtime (via
next/og/ Satori) for ultra-fast, zero-cold-start image generation. - 📦 Base64 Config Serialization: No databases required. The entire state (colors, offsets, goals, timezone) is compressed into a short, URL-safe Base64 token path.
- 🐳 Self-Hostable: Standard multi-stage container optimization makes it ready for a single-command deploy on any Docker environment.
Ensure you have Node.js 18+ installed on your system.
- Clone the repository:
git clone https://github.com/yourusername/openlifecalendar.git cd openlifecalendar - Install dependencies:
npm install
- Boot the development server:
npm run dev
- Access the Customizer Dashboard: Open http://localhost:3000 to customize your layout and copy Shortcut generation URLs.
You can host your own instance locally using the production-ready standalone builder:
docker compose up --build -dThe server will start up on http://localhost:3000 with minimal memory footprint.
To set up your calendar as a daily self-updating iPhone wallpaper:
- Create a Shortcut:
- Open Shortcuts on your iOS device.
- Tap + (Create New Shortcut) and name it Daily Life Calendar.
- Add URL Fetch Action:
- Add the action Get Contents of URL.
- Copy your Compressed Path Wallpaper URL from the OpenLifeCalendar dashboard, and paste it into the URL block.
- Set Wallpaper:
- Add the action Set Lock Screen Wallpaper.
- Configure it to set the wallpaper using the output Contents of URL from the previous step.
- Schedule Daily Automation:
- In Shortcuts, select the Automation tab -> New Automation -> Time of Day (e.g. 12:01 AM daily).
- Set it to Run Immediately (without confirmation) and direct it to trigger the Daily Life Calendar shortcut.
We want to build the ultimate open-source wallpaper utility and are actively seeking contributions to implement the following features:
- Tablet / iPad Presets: Layout grids specifically optimized for various iPad models (Pro, Air, Mini) that automatically shift dot matrix wrappers to match standard screen aspect ratios.
- Mac / Desktop Presets: Horizontal-oriented widescreen wallpapers with widgets margin alignments for macOS desktop settings.
- Popular Phone Brand Presets: Pre-configured layout adjustments for Google Pixel, Samsung Galaxy, and other major smartphone lines to automatically clear their native lock screen overlays.
- Multi-Year Trackers: Visualize a 5-year or decade-long grid.
- Localisation Support: Multi-lingual calendar layouts supporting native month labels and date formats.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated!
If you want to contribute:
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/amazing-preset). - Commit your changes (
git commit -m 'Add amazing new device preset'). - Push to the Branch (
git push origin feature/amazing-preset). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.