{"id":13571029,"url":"https://github.com/ovidiuch/jobs-done","last_synced_at":"2025-04-04T07:32:52.863Z","repository":{"id":55845581,"uuid":"141058176","full_name":"ovidiuch/jobs-done","owner":"ovidiuch","description":"Ritual app for ending the work day inspired by Deep Work","archived":true,"fork":false,"pushed_at":"2020-12-11T09:57:20.000Z","size":17178,"stargazers_count":944,"open_issues_count":4,"forks_count":46,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-12-08T05:04:36.579Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://jobs-done.now.sh","language":"JavaScript","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/ovidiuch.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}},"created_at":"2018-07-15T21:00:46.000Z","updated_at":"2024-11-18T18:19:26.000Z","dependencies_parsed_at":"2022-08-15T07:50:35.426Z","dependency_job_id":null,"html_url":"https://github.com/ovidiuch/jobs-done","commit_stats":null,"previous_names":["ovidiuch/jobs-done","skidding/jobs-done"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidiuch%2Fjobs-done","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidiuch%2Fjobs-done/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidiuch%2Fjobs-done/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovidiuch%2Fjobs-done/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ovidiuch","download_url":"https://codeload.github.com/ovidiuch/jobs-done/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247139472,"owners_count":20890236,"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":[],"created_at":"2024-08-01T14:00:57.677Z","updated_at":"2025-04-04T07:32:47.855Z","avatar_url":"https://github.com/ovidiuch.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Jobs Done!\n\n**[Live demo](https://jobs-done.now.sh)** ◌ [Hacker News](https://news.ycombinator.com/item?id=18339215) ◌ [Reddit](https://www.reddit.com/r/productivity/comments/9t8clr/jobs_done_a_ritual_app_for_ending_the_work_day/) ◌ [Product Hunt](https://www.producthunt.com/posts/jobs-done)\n\nRitual app for ending the work day inspired by [Deep Work](http://calnewport.com/books/deep-work/)\n\n\u003ca href=\"https://jobs-done.now.sh/\"\u003e\n  \u003cimg width=\"30%\" alt=\"Screenshot\" src=\"screen1.png\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://jobs-done.now.sh/\"\u003e\n  \u003cimg width=\"30%\" alt=\"Screenshot\" src=\"screen2.png\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://jobs-done.now.sh/\"\u003e\n  \u003cimg width=\"30%\" alt=\"Screenshot\" src=\"screen3.png\"\u003e\n\u003c/a\u003e\n\n---\n\nJump to:\n\n- [Motivation](#motivation)\n- [How it works](#how-it-works)\n- [Tech stack](#tech-stack)\n- [How to use](#how-to-use)\n\n## Motivation\n\nJobs Done! is built on Cal Newport's **shutdown ritual** concept from his book \"Deep Work\".\n\nThe need for a shutdown ritual comes from the following (oversimplified) reasoning:\n\n1.  Deep focus is invaluable for producing great work\n2.  We can only sustain deep focus for a limited amount of hours per day\n3.  To be able to focus deeply consistently, our mind requires rest (ie. complete disconnect from work) between working sessions\n\n\u003e The app name is inspired by the loyal [Peasant](https://www.youtube.com/watch?v=5r06heQ5HsI)\n\n## How it works\n\nYou decide it's time to call it a day.\n\nYou are guided through a set of (customizable) steps meant to relieve your mind from work-related thoughts. The steps often involve formalizing thoughts into tasks and creating a plan for tomorrow. Each step can have one more **external links** attached.\n\nThen you **say a \"set phrase\" out loud.** The set phrase is personal, so choose a phrase you resonate with. Verbalizing your set phrase \"provides a simple cue to your mind that it's safe to release work-related thoughts for the rest of the day.\"\n\nFinally, you're presented a collection of (customizable) pastime activities you can do to disconnect.\n\n\u003e I extended the original shutdown ritual with the last step because I've often found myself clueless about how to spend my evening after a day fully immersed in work.\n\n## Tech stack\n_Jobs Done!_ is a [React Native](https://facebook.github.io/react-native/) app built with [React Native for Web](https://github.com/necolas/react-native-web/). For web publishing, _Jobs Done!_ compiles into a static app with the app data embedded in the frontend build.\n\nThe project features a [custom server-side rendering implementation](https://github.com/skidding/jobs-done/blob/d3d85ce6c5b156249702d90190397bd67fdc31ed/tools/shared/renderIndex.js#L13-L39), which might be interesting for someone trying to understand how SSR (Server-Side Rendering) works.\n\nStyles are defined _universally_ using [styled-components](https://www.styled-components.com/). Same styles compile to native platforms as well as browsers (on both client and server side). Pretty cool!\n\n## How to use\n\n### Install\n\nClone this repo and run `yarn install`.\n\nCopy [data.example.js](data.example.js) as `data.js` in project root. Customize it with your info later.\n\n### Run\n\nRun `yarn start` to start the _web_ app locally in dev mode.\n\nRun `yarn cosmos` to browse components independently.\n\n### Publish\n\nRun `yarn build` to create (static) production build.\n\nGo to `build` dir and publish it using something like [Now](https://zeit.co/now) or [Surge](https://surge.sh/).\n\n### Native\n\nThe aforementioned instructions are for running and publishing the web app, but this is a React _Native_ project. I did test _Jobs Done!_ on Android and iOS simulator, but I didn't bother publishing it on app stores. The web version works just fine on both desktop and mobile ¯\\\\\\_(ツ)\\_/¯.\n\nOpen two terminals to load the app on native devices or simulators. In the first run `yarn cosmos:native`. In the second run `yarn start:native` for [Expo](https://expo.io/) or `yarn ios` or `yarn android` for a specific platform.\n\n## License\n\nMIT © [Ovidiu Cherecheș](https://ovidiu.ch)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovidiuch%2Fjobs-done","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovidiuch%2Fjobs-done","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovidiuch%2Fjobs-done/lists"}