/jobs-done

A ritual app for ending the work day inspired by Deep Work

Primary LanguageJavaScript

A ritual app for ending the work day inspired by Deep Work

Screenshot Screenshot Screenshot

Jump to:

Motivation

This app is built on Cal Newport's showdown ritual concept from his book Deep Work.

The need for a shutdown ritual comes from the following (oversimplified) reasoning:

  1. Deep focus is invaluable for producing great work
  2. We can only sustain deep focus for a limited amount of hours per day
  3. To be able to focus deeply consistently our mind requires rest (ie. complete disconnect from work) between working sessions

The app name is inspired by the loyal Peasant

How it works

You decide it's time to call it a day.

You are guided through a set of (customizable) steps meant to relieve your mind from work-related thoughts. This often involves formalizing thoughts into tasks and creating a plan for tomorrow.

Then you say a "set phrase" out loud. This step is personal so choose a set 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."

Finally, you're presented an array of (customizable) pastime activities you could do to disconnect.

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.

Tech stack

This is a React Native app built with React Native for Web. For web publishing, it compiles into a static app with the app data embedded in the frontend build.

The project features a custom server-side rendering implementation, which might be interesting for someone trying to understand how SSR works.

Styles are defined universally using styled-components. Same styles compile to native platforms as well as browsers (on both client and server side). Pretty cool!

How to use

Install

Clone this repo and run yarn install.

Run

Run yarn start to start the web app locally in dev mode.

Run yarn cosmos to browse components independently.

Customize

Copy data.example.js as data.js in project root. Customize it with your info.

Publish

Run yarn build to create (static) production build.

Go to build dir and publish it using something like Now or Surge.

Native

The 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 already works just fine on both desktop and mobile ¯\_(ツ)_/¯.

Open 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 or yarn ios or yarn android for a specific platform.

License

MIT © Ovidiu Cherecheș