Getweeks helps you see where you stand, capture moments that matter, and turn your goals into concrete milestones — week after week.
Inspired by getweeks.com, this is a fully local, privacy-first life planner that visualizes your entire life as a grid of weeks.
- Your entire life visualized as ~4,680 circles — one per week, all visible at once without scrolling
- Past weeks: filled dark dots · Current week: teal dot · Future: outlined dots
- Jalons (milestones) appear as colored dots directly on the grid
- Weeks with multiple milestones display a conic-gradient pie chart dot
- Click any week to see details or add a milestone
- Hover any dot for a cursor-following popover showing date, status, and age in years
- Add unlimited milestones to any week in your life
- Color picker (8 colors) + icon picker (22 icons: 🎓 🏠 ❤️
✈️ 🏆 and more) - Link milestones to goals for context
- Edit or delete milestones at any time
- Grouped by year with a summary of past years
- Set short, medium, or long-term goals with target dates
- Color-coded with horizon badges (Court / Moyen / Long terme)
- Goals appear in the
/mesidebar for quick reference
- Write weekly reviews on your chosen review day
- View your next review date at a glance
- Full history of past reviews, sorted by date
- Light mode: Paper White (
#EEE8DF) — warm, elegant, focused - Dark mode: Deep Obsidian (
#0D0A07) — high contrast, easy on the eyes - Instant toggle, persisted across sessions
- Full French 🇫🇷 and English 🇬🇧 support
- Switch at any time from the header or Settings
- All data auto-saves to localStorage via Pinia
- Export your data as a timestamped
.jsonfile (getweeks-YYYY-MM-DDTHH-MM-SS.json) - Import a
.jsonfile with full Zod schema validation and error reporting - Export/Import buttons accessible directly from the
/mesidebar - No account required — your data never leaves your device
- Choose your weekly review day (Sunday → Saturday)
- Toggle theme and language
- Export / Import data
- Live stats: age, weeks lived, jalons, goals
| Layer | Choice |
|---|---|
| Framework | Astro 5 (SSG + islands) |
| UI | Vue 3 (Composition API, client:only) |
| State | Pinia + pinia-plugin-persistedstate |
| Styling | Tailwind CSS v4 |
| Validation | Zod |
| Language | TypeScript (strict) |
npm install
npm run devOpen http://localhost:4321, enter your birthdate and preferred review day, then click "Voir ma vie".
npm run build
npm run previewsrc/
├── pages/ # Astro routes (index, /me, /jalons, /objectifs, /bilans, /settings)
├── components/ # Vue 3 islands (LandingPage, MePage, LifeGrid, JalonsPage…)
├── stores/ # Pinia store (useLifeStore)
├── schemas/ # Zod schemas (UserLifeData, Jalon, Objectif, Bilan)
├── composables/ # useI18n (FR/EN)
├── layouts/ # AppLayout.astro
└── styles/ # global.css (Tailwind v4 theme)
All data is stored locally in your browser (localStorage). Nothing is sent to any server. Use the Export feature regularly to back up your data.
Built with ❤️ — inspired by the idea that a good life is made week by week.