{"id":19483511,"url":"https://github.com/librity/impetus","last_synced_at":"2026-05-08T03:12:44.232Z","repository":{"id":99704150,"uuid":"441601567","full_name":"librity/impetus","owner":"librity","description":"A Momentum clone made with Next.JS and Typescript.","archived":false,"fork":false,"pushed_at":"2022-08-21T22:20:13.000Z","size":5047,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-08T07:38:50.618Z","etag":null,"topics":["focuser","momentum-clone","nextjs","openweathermap-api","quotes-api","typescript","unsplash-api","vercel-deployment"],"latest_commit_sha":null,"homepage":"https://impetus.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/librity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2021-12-25T04:11:16.000Z","updated_at":"2021-12-28T07:14:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef62a322-2431-4df5-af98-17da6896e262","html_url":"https://github.com/librity/impetus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fimpetus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fimpetus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fimpetus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librity%2Fimpetus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/librity","download_url":"https://codeload.github.com/librity/impetus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240718943,"owners_count":19846482,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["focuser","momentum-clone","nextjs","openweathermap-api","quotes-api","typescript","unsplash-api","vercel-deployment"],"created_at":"2024-11-10T20:15:23.393Z","updated_at":"2026-05-08T03:12:39.173Z","avatar_url":"https://github.com/librity.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://impetus.vercel.app\" target=\"_blank\"\u003e\n    \u003cimg height=\"300\" src=\".github/logo_clear.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e A bicycle for your mind.\n  \u003cbr\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n![Deploy Status](https://img.shields.io/github/deployments/librity/impetus/Production?label=Vercel\u0026logo=vercel\u0026logoColor=white)\n![License](https://img.shields.io/github/license/librity/impetus?color=yellow)\n![Code size in bytes](https://img.shields.io/github/languages/code-size/librity/impetus?color=blue)\n![Lines of code](https://img.shields.io/tokei/lines/github/librity/impetus?color=blueviolet)\n![Top language](https://img.shields.io/github/languages/top/librity/impetus?color=ff69b4)\n![Last commit](https://img.shields.io/github/last-commit/librity/impetus?color=orange)\n\n\u003c/div\u003e\n\n---\n\n## 📜 Table of Contents\n\n- [About](#about)\n- [Features](#features)\n- [Getting Started](#getting_started)\n- [License](#license)\n- [Packages](#packages)\n- [Docs](#docs)\n- [Resources](#resources)\n\n## 🧐 About \u003ca name = \"about\"\u003e\u003c/a\u003e\n\nA\n[Momentum](https://chrome.google.com/webstore/detail/momentum/laookkfknpbbblfpciffpaejjkokdgca)\nclone made with Next.JS and Typescript.\nOriginally a\n[vanilla Javascript project](https://github.com/librity/nc_nomentum)\nwith less features.\n\n- Production App: https://impetus.vercel.app/\n- [Figma](https://www.figma.com/file/V1hogXfkoiKoYbsaVyNJlC/Impetus?node-id=3%3A14)\n\nI personally use this\nand will be adding more useful features in the near future.\nI'm committed to online privacy and anonymity, and this app will:\n\n- Never save any personal data.\n- Never use or save cookies.\n- Never use any resources that push trackers (like google fonts).\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://impetus.vercel.app\" target=\"_blank\"\u003e\n    \u003cimg src=\".github/demo.png\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## ✅ Features \u003ca name = \"features\"\u003e\u003c/a\u003e\n\n- [x] NO TRACKING EVER!!!\n  - [x] Serve Roboto font\n  - [x] Disable Vercel analytics (no `vitals` request)\n- [x] Custom scrollbar\n- [x] Source code link\n- [ ] Zen mode\n- [ ] Light mode\n- [x] Clock\n  - [x] Basic clock\n  - [x] Custom timezone\n- [x] Greeting\n  - [x] Updates with time\n- [x] Landscape background\n  - [x] Random landscape from unsplash\n  - [x] Change landscape half hour\n- [x] Tasks\n  - [x] Add task\n  - [x] Save tasks to local storage\n  - [x] Delete task\n  - [ ] Edit tasks\n  - [ ] Move task\n  - [ ] Autofocus top task\n- [x] Weather\n  - [x] Current weather with icon\n  - [ ] Weather forecast on hover\n- [x] Search bar\n  - [x] Search with Yandex\n  - [ ] Select search /engine\n- [ ] Website Shortcuts\n  - [ ] Add shortcut\n  - [ ] Save shortcuts to local storage\n  - [ ] Edit shortcut\n  - [ ] Delete shortcutCSS\n- [ ] Crypto toolbar\n  - [ ] Add coins of interest\n  - [ ] Show price and change\n  - [ ] Show price charts\n  - [ ] Remove coins\n- [ ] Manual session backups\n  - [ ] Export local storage configs to file\n  - [ ] Load local storage configs from file\n- [ ] Timer\n  - [ ] Rings when it's done\n- [ ] Add/Remove features menu\n- [ ] Soundscapes\n- [ ] Pomodoro timer\n- [ ] Notes\n  - [ ] Add note\n  - [ ] Save notes to local storage\n  - [ ] Delete note\n  - [ ] Edit notes\n  - [ ] Move note\n\n## 🏁 Getting Started \u003ca name = \"getting_started\"\u003e\u003c/a\u003e\n\n### ⚙️ Prerequisites\n\n- `node \u003e= 16.13.0`\n\n### 🖥️ Installation\n\n1. Clone this repo locally and install the required packages:\n\n```bash\n$ git clone https://github.com/librity/impetus.git\n$ cd impetus\n$ npm install\n```\n\n2. Start a development server:\n\n```bash\n$ npm run dev\n```\n\n3. Open http://localhost:3000 with your web browser.\n\n#### 🧼 Lint \u0026 Format\n\nFormat all source files with Prettier:\n\n```bash\n$ npm run format\n```\n\nRun ESLint:\n\n```bash\n$ npm run lint\n```\n\n## ⚖️ License \u003ca name = \"license\"\u003e\u003c/a\u003e\n\nThis project is [MIT licensed](LICENSE).\n\n## 📦 Packages \u003ca name = \"packages\"\u003e\u003c/a\u003e\n\n- https://github.com/Microsoft/TypeScript\n- https://github.com/vercel/next.js/\n- https://github.com/vercel/swr\n- https://github.com/davidhu2000/react-spinners\n- https://github.com/donavon/use-persisted-state\n- https://github.com/garmeeh/next-seo\n- https://github.com/twbs/icons\n\n## 📚 Docs \u003ca name = \"docs\"\u003e\u003c/a\u003e\n\n- https://swr.vercel.app/docs/data-fetching\n- https://www.davidhu.io/react-spinners/\n- https://react-icons.github.io/react-icons/\n\n### Next.JS\n\n- [Next.js Documentation](https://nextjs.org/docs)\n- [Learn Next.js](https://nextjs.org/learn)\n  - https://github.com/vercel/next-learn\n- [Next.js deployment documentation](https://nextjs.org/docs/deployment)\n\n## 🔗 Resources \u003ca name = \"resources\"\u003e\u003c/a\u003e\n\n- https://fonts.google.com/specimen/Roboto\n- https://github.com/alvarotrigo/fullpage.js\n- https://github.com/serranoarevalo/momonton\n- https://stackoverflow.com/questions/3191664/list-of-all-locales-and-their-short-codes\n\n### Javascript\n\n- https://stackoverflow.com/questions/18621612/find-and-remove-element-from-array\n- https://www.delftstack.com/howto/javascript/javascript-float-to-int/\n- https://stackoverflow.com/questions/2696692/setinterval-vs-settimeout\n- https://stackoverflow.com/questions/55362152/how-to-open-a-new-tab-in-javascript\n- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString\n- https://www.w3schools.com/js/js_string_search.asp\n- https://github.com/unsplash/unsplash-source-js\n\n### ReactJS\n\n- https://medium.com/programming-essentials/how-to-create-a-digital-clock-with-react-hooks-aa30f76cfe3f\n- https://sebhastian.com/react-submit-form/\n- https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/forms_and_events/\n- https://stackoverflow.com/questions/55370851/how-to-fix-binding-element-children-implicitly-has-an-any-type-ts7031\n- https://reactjs.org/docs/hooks-reference.html#usestate\n- https://www.kindacode.com/article/how-to-create-a-filter-search-list-in-react/\n\n### Next.JS\n\n- https://www.peterlunch.com/snippets/next-image-styling\n- https://nextjs.org/docs/basic-features/image-optimization\n- https://nextjs.org/docs/messages/next-image-unconfigured-host\n- https://nextjs.org/docs/messages/react-hydration-error\n- https://stackoverflow.com/questions/63212462/localstorage-in-static-nextjs-site-referenceerror-localstorage-is-not-defined\n- https://stackoverflow.com/questions/57126760/nextjs-dynamic-title\n\n### Quotes API\n\n- https://github.com/lukePeavey/quotable\n- https://api.quotable.io/random\n\n### Backgrounds API\n\n- https://awik.io/generate-random-images-unsplash-without-using-api/\n- https://unsplash.com/developers\n\n### Weather API\n\n- https://openweathermap.org/current\n- https://openweathermap.org/weather-conditions\n\n### CSS\n\n- https://flexboxfroggy.com/\n- https://www.w3schools.com/cssref/func_linear-gradient.asp\n- https://www.w3schools.com/cssref/pr_background-image.asp\n- https://developer.mozilla.org/en-US/docs/Web/CSS/background-image\n- https://stackoverflow.com/questions/6338217/get-a-css-value-with-javascript\n- https://cssgradient.io/gradient-backgrounds/\n- https://stackoverflow.com/questions/4847850/is-it-possible-to-define-constants-in-css\n- https://stackoverflow.com/questions/5195303/set-css-property-in-javascript\n- https://stackoverflow.com/questions/11757537/css-image-size-how-to-fill-but-not-stretch\n- https://www.educba.com/css-text-outline/\n- https://www.w3docs.com/snippets/css/how-to-set-space-between-flexbox-items.html\n- https://www.w3schools.com/css/css_text_align.asp\n- https://www.w3schools.com/CSSref/css3_pr_opacity.asp\n- https://stackoverflow.com/questions/16989585/css-3-slide-in-from-left-transition\n- https://www.w3schools.com/cssref/sel_focus.asp\n- https://marksheet.io/css-priority.html\n- https://www.w3schools.com/csS/css_overflow.asp\n- https://developer.mozilla.org/en-US/docs/Web/CSS/@import\n- https://www.w3schools.com/howto/howto_css_custom_scrollbar.asp\n- https://www.w3schools.com/howto/howto_css_transition_hover.asp\n- https://stackoverflow.com/questions/35968553/webkit-scrollbar-css-always-a-white-box-in-corner\n\n### Meta Tags\n\n- https://opengraph.dev/\n- https://metatags.io/\n- https://www.linkedin.com/post-inspector/inspect\n- https://www.linkedin.com/pulse/how-clear-linkedin-link-preview-cache-ananda-kannan-p/\n- https://stackoverflow.com/questions/10042786/how-to-successfully-implement-ogimage-for-the-linkedin\n- https://kinsta.com/blog/linkedin-debugger/\n- https://ahrefs.com/blog/open-graph-meta-tags/\n- https://stackoverflow.com/questions/54266598/meta-tags-for-url-with-description-and-image-in-skype-discord\n\n### Logo\n\n- https://grahamhancock.com/kollerstromn2/\n- https://fonts.google.com/specimen/Cormorant+Garamond\n\n### Vercel Badge\n\n- https://github.com/vercel/vercel/discussions/4824\n- https://shields.io/category/other\n- https://github.com/therealsujitk/vercel-badge\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrity%2Fimpetus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibrity%2Fimpetus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrity%2Fimpetus/lists"}