Skip to content

karant-dev/openlifecalendar

Repository files navigation

📅 OpenLifeCalendar

License: MIT Next.js React Tailwind CSS

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.


✨ Features

  • 🔄 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 (topOffset to clear native lock-screen clocks/widgets and bottomOffset for 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.

🛠️ Getting Started

Local Setup

Ensure you have Node.js 18+ installed on your system.

  1. Clone the repository:
    git clone https://github.com/yourusername/openlifecalendar.git
    cd openlifecalendar
  2. Install dependencies:
    npm install
  3. Boot the development server:
    npm run dev
  4. Access the Customizer Dashboard: Open http://localhost:3000 to customize your layout and copy Shortcut generation URLs.

Self-Hosting with Docker

You can host your own instance locally using the production-ready standalone builder:

docker compose up --build -d

The server will start up on http://localhost:3000 with minimal memory footprint.


📱 Apple Shortcuts Automation Guide

To set up your calendar as a daily self-updating iPhone wallpaper:

  1. Create a Shortcut:
    • Open Shortcuts on your iOS device.
    • Tap + (Create New Shortcut) and name it Daily Life Calendar.
  2. 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.
  3. 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.
  4. 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.

🗺️ Roadmap & Next Steps (Inviting Contributions!)

We want to build the ultimate open-source wallpaper utility and are actively seeking contributions to implement the following features:

📱 Device Presets Expansion

  • 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.

📅 Advanced Visual Layouts

  • Multi-Year Trackers: Visualize a 5-year or decade-long grid.
  • Localisation Support: Multi-lingual calendar layouts supporting native month labels and date formats.

🤝 Contributing

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:

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/amazing-preset).
  3. Commit your changes (git commit -m 'Add amazing new device preset').
  4. Push to the Branch (git push origin feature/amazing-preset).
  5. Open a Pull Request.

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

An open-source, self-hostable dynamic wallpaper generator designed to render personalized life and goal countdown grids for your device's lock screen.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages