The modern way to coordinate global time. A minimalist world clock and meeting planner designed with "Technical Glass" aesthetics, performance, and privacy in mind.
- 🧠 Smart Auto-Location: Automatically detects your city, weather, and time via IP (with GPS fallback) using
ipwho.is. - 📅 Meeting Planner: Interactive 24h grid to find overlapping business hours across timezones. Includes color-coded availability.
- 🌍 Global Search: Search any city in the world using the Open-Meteo Geocoding API.
- 🛡️ Backup & Restore: Export your saved cities and configuration to a JSON file and restore them on any device.
- 📱 PWA Ready: Install Offset as a native app on iOS and Android. Works offline.
- 🌗 Adaptive Themes: Seamlessly switch between Light and Dark modes.
- ☁️ Real-Time Weather: Live temperature and condition icons for every saved city.
- 💾 Local-First Persistence: All settings are saved instantly to
localStorage. No login required.
- Framework: Next.js (App Router & Server Components)
- Styling: Tailwind CSS (JIT Mode)
- Interactions: dnd-kit (Drag & Drop)
- State Management: Zustand
- Time Logic:
date-fns&date-fns-tz - Data Sources: Open-Meteo, ipwho.is, FlagCDN.
This project is built with Next.js and requires no external backend database (Local-First).
- Node.js (v18 or higher)
- npm or pnpm
- Clone the repo:
git clone https://github.com/EdvinCodes/offset.git
cd offset- Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 with your browser.
- MVP: Local clock & basic city list
- UI: Dark mode & "Glass" design system
- Search: Global city search via API
- Persistence: Save user cities via LocalStorage
- Productivity: Meeting Planner with business hours
- Context: Real-time weather and dynamic flags
- Themes: Custom theme toggle (Light/Dark/System)
- Backup: Export/Import settings as JSON
- PWA: Install as a native app on mobile
This project is open source and available under the MIT License.
Developed with ❤️ by Edvin
