If you've read Flow: The Psychology of Optimal Experience by Mihaly Csikszentmihalyi, or even if you've just seen a diagram like this one
flow
and it inspired you to figure out which activities put you in flow... boy, do I have a blog post for you 😂

I have to admit I never read the book, but I have totally seen that chart before (I've also read his collection of research papers a few times, so - like - I'm not a total poser).

Well, anyway, I was a hundred pages deep into his research and I was all "Awww man, I'd love to do that experience sampling on myself!" Because, how cool would it be to know exactly which activities positively influence your well-being?!

So, I made an app.😊

Sidebar: I was rudely interrupted by the birth of my daughter, so the frontend isn't hosted anywhere. You can checkout the code in my GitHub repository.

What does the app do?

The app administers Csikszentmihalyi's flow test, 56 surveys (Experience Sampling Forms, as they say) over a 7 day period.

  • You sign up by adding my Slack app to your personal slack channel.
  • The slack app sends you a message, randomly, 6 to 9 times a day during waking hours (8am and 10pm), with a link to the survey.
    slack-app
  • You fill out the survey, which asks you some questions about what you're doing and how you feel about what you're doing.
    ESF
  • Once you submit a survey, you can see your survey results, which are updated with each new survey you submit.

Why is your survey *way* shorter than Csikszentmihalyi's?

Csikszentmihalyi needed to find an accurate way to measure people's mental state during an activity, never mind a way to measure flow.

Spoiler alert: he figured all that out. So, I was able to focus on the following subset of his original design...

Things that are a good indication of flow:

  • Intrinsic motivation
  • Sense of competence

Things that are a good indication that you spend enough time in flow:

  • Subjective sense of well-being

Turns out you can measure intrinsic motivation, competence, and sense of well-being in 6 questions. Praised be. Because - like - nobody has time for a 36-part survey.

What kinds of things can you tell from the survey?

The app generates the following insights calculated directly from the "Sample and Method" section of Csikszentmihalyi's paper, Measuring Intrinsic Motivation in Everyday Life (p. 117).

  • How much time did you spend in flow?
  • Which activities put you in flow? Give you anxiety? Bore you?
  • Which activities make you happy? Sad?
    results-donut-1
    results-happy-1

With the idea that you could use these visuals to...

  • Realize the activities that optimally balance your skill with the challenge of the activity.
  • Figure out if you're spending enough time doing those activities.

How did you build it?

  • Vue.js
    The frontend, to make the single-page web app that displays the survey and results.
  • Dark
    The backend, which includes data storage, a cron job, and APIs for both the web app and the slack app.
  • Slack App
    Manages authentication and notifies the user when it's time to fill out a survey.

And I'm not sure if this helps or hurts, but here's my system(ish) diagram for how they all interact...
flow-app-diagram

Anyway! I had a ton of fun with this project. Feel free to use my code if you're interested in taking the test yourself.😊