Skip to content

fdelbrayelle/getweeks

Repository files navigation

⏳ Getweeks

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.


✨ Features

🗓️ Life Grid (/me)

  • 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

🚩 Jalons (Milestones) — unlimited

  • 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

🎯 Objectifs (Goals)

  • Set short, medium, or long-term goals with target dates
  • Color-coded with horizon badges (Court / Moyen / Long terme)
  • Goals appear in the /me sidebar for quick reference

📝 Bilans (Weekly Reviews)

  • Write weekly reviews on your chosen review day
  • View your next review date at a glance
  • Full history of past reviews, sorted by date

🌗 Theme

  • Light mode: Paper White (#EEE8DF) — warm, elegant, focused
  • Dark mode: Deep Obsidian (#0D0A07) — high contrast, easy on the eyes
  • Instant toggle, persisted across sessions

🌍 Language

  • Full French 🇫🇷 and English 🇬🇧 support
  • Switch at any time from the header or Settings

💾 Data Persistence

  • All data auto-saves to localStorage via Pinia
  • Export your data as a timestamped .json file (getweeks-YYYY-MM-DDTHH-MM-SS.json)
  • Import a .json file with full Zod schema validation and error reporting
  • Export/Import buttons accessible directly from the /me sidebar
  • No account required — your data never leaves your device

⚙️ Settings

  • Choose your weekly review day (Sunday → Saturday)
  • Toggle theme and language
  • Export / Import data
  • Live stats: age, weeks lived, jalons, goals

🛠️ Tech Stack

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)

🚀 Getting Started

npm install
npm run dev

Open http://localhost:4321, enter your birthdate and preferred review day, then click "Voir ma vie".


📦 Build

npm run build
npm run preview

🗂️ Project Structure

src/
├── 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)

🔒 Privacy

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.

About

Our entire life fits on a screen

Resources

Stars

Watchers

Forks

Contributors