{"id":48217696,"url":"https://github.com/cdilga/yearly","last_synced_at":"2026-04-04T19:01:44.013Z","repository":{"id":331099254,"uuid":"1125264256","full_name":"cdilga/yearly","owner":"cdilga","description":"Visualise how many days you have in a year","archived":false,"fork":false,"pushed_at":"2025-12-30T21:43:51.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-03T03:37:22.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdilga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-30T12:20:29.000Z","updated_at":"2025-12-30T21:43:56.000Z","dependencies_parsed_at":"2026-01-03T14:09:40.488Z","dependency_job_id":null,"html_url":"https://github.com/cdilga/yearly","commit_stats":null,"previous_names":["cdilga/yearly"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/cdilga/yearly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdilga%2Fyearly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdilga%2Fyearly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdilga%2Fyearly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdilga%2Fyearly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdilga","download_url":"https://codeload.github.com/cdilga/yearly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdilga%2Fyearly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31409471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-04T19:01:43.422Z","updated_at":"2026-04-04T19:01:44.000Z","avatar_url":"https://github.com/cdilga.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yearly\n\nVisualise how many days you have in a year\n\n## 🌐 Live Deployment\n\n🚀 **Production**: [https://yearly.dilger.dev](https://yearly.dilger.dev)\n\n## 🚀 Quick Start\n\n```bash\n# Clone the repository\ngit clone https://github.com/cdilga/yearly.git\ncd yearly\n\n# Install dependencies\nnpm install\n\n# Run locally\nnpm run dev\n```\n\n## 📦 Deployment\n\nThis project automatically deploys to Cloudflare Workers when you push to the main branch.\n\n### Manual Deployment\n```bash\nnpm run deploy\n```\n\n## 🛠️ Development\n\n### Local Development\n```bash\n# Start development server\nnpm run dev\n\n# Run tests\nnpm test\n\n# Run E2E tests\nnpm run test:e2e\n\n# Test deployed site\nnpm run test:deployed\n```\n\n### Environment Variables\n- `CLOUDFLARE_API_TOKEN`: Used for deployment (set in GitHub Secrets)\n\n## ✨ Features\n\n- **Visual Year Progress**: See your entire year as a beautiful grid of dots\n- **Minute-Level Accuracy**: Half dots show progress through the current day\n- **Real-Time Updates**: Automatically updates every minute\n- **Gorgeous Animations**: Smooth fade-ins, dot pops, and pulsing effects\n- **Fully Responsive**: Beautiful on mobile and desktop\n- **Client-Side Only**: Runs entirely in your browser, works anywhere\n- **Timezone Aware**: Shows progress in your local timezone\n\n## 🎨 Design\n\nThe app displays 365 (or 366 in leap years) dots arranged in a grid:\n- **Filled dots** (bright blue gradient): Days that have passed\n- **Half dots** (half filled): The current day after noon\n- **Empty dots** (subtle gray): Future days\n- **Pulsing dot**: The current day\n\nEach dot has a smooth pop-in animation on load, and the year title shimmers with a gradient effect.\n\n## 📝 Requirements\n\nAn app which shows you the remaining days left of the year, with the already filled in ones coloured differently than the ones remaining. Updates daily wherever you are and runs client side.\nShould colour in half dots for minute level accuracy. Fully beautify and responsive site with gorgeous animations absolutely everywhere. On load, everything.\n![Image](https://github.com/user-attachments/assets/72f28070-ba0e-4a5f-b900-d78c43ffe1f2)\n\n## 🤖 Created with Claude\n\nThis project was automatically generated using [the-ultimate-bootstrap](https://github.com/cdilga/the-ultimate-bootstrap).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdilga%2Fyearly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdilga%2Fyearly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdilga%2Fyearly/lists"}