Developers October 20, 2020

Get more done on your side project by removing friction.


I've noticed that reducing any friction to being able to develop on my side project is a HUGE productivity boost. Reducing the number of steps to get to the actual coding part is critical.

I found a simple way to launch my side project with the push of one button. I press the button and walk away to get coffee. When I get back, my project is built and running.

I'm using the El Gato Stream Deck app for this purpose.

You can set up different commands, macros, etc, and control your computer through the app.

I have a variety of shortcuts set up.

  • The green staircase opens a folder with various commands for starting my project Deliberate Python.
  • The owl is a folder with commands for my day job project.
  • GH is a shortcut that types my github URL.
  • LI is a shorcut that types my LinkedIn URL.
  • Stack overflow, github, notion, and hacker news are all shortcuts as well. These buttons open a browser and navigates to those URL's

How I used to get started on adding features to my project:

  1. Open terminal
  2. Navigate to my project
  3. code deliberatepython/front-end
  4. run npm start in vs code
  5. Switch over to another desktop so I can open the backend code in that workspace
  6. Go back to terminal
  7. code my_backend_project
  8. pyenv shell deliberatepython
  9. uvicorn sql_app.main:app --reload

Using the Stream Deck app

  1. Press the Front-end button on the stream deck app and let it complete all the front-end steps
    If I need the backend spun up, then I just:
  2. Press back-end button on the stream deck app and let it complete all the back-end steps.

I've noticed that I'm able to work on small features easier when I only have 10-20 minutes here and there using this system. It's been such a big productivity boost.

If you're into programmer productivity and/or Python development, I'd love for you to read stories like this on my newsletter Deliberate Python. You can subscribe here

  1. 4

    Some tech stacks have become so complex that just starting the IDE feels like launching a space rocket and landing on Mars... It's quite impressive to see the complexity of code required to build dynamic HTML pages nowadays. I think it's because a lot lof these tools were built by people who had a large team working with them within a very large organization.

  2. 3

    Interesting. With some productive frameworks, like Rails or Phoenix, a single command starts both the back-end and the front-end.

    I agree with scripting the common little things though. I've gone so far as to make vim shortcuts so that I can type three keystrokes to jump directly to my mix.exs, package.json, my router, the top level CSS file, or the directory for my controllers, schemas, views, contexts or templates.

    I've also got shortcuts for jumping to any of the right projects I work on most. I initially went to these lengths due to repetitive stress injuries but then found them a big productivity win.

  3. 2

    Have you tried Alfred?
    I use it to in a similar way to solve the same problem

    1. 1

      Oh very cool, was not aware of the workflow feature. I use alfred for some super basic things but not for scripting. Great idea!

    2. 1

      I haven’t had a look at Alfred for quite some time. Do you just refer to an Script with Alfred or can you configure workflows within the App nowadays?

      1. 3

        yes, the workflow feature is so powerful,
        and you can combine it with scripts

        for example, I have a workflow when I type "project [project name]" it will open it in both vscode and hyper (terminal)

        1. 1

          That is pretty cool! I need to check this out! :)

  4. 2

    Clever use of Elgato's Stream Deck! I watch gaming streams here and there so I am familiar with the tool but had not thought of using it for developer productivity.

    1. 1

      I'm actually 0% interested in gaming but found out about them on youtube haha. I love using it. It's very useful.

  5. 1

    How do y’all make it easier to work on your indie hacker projects?

    1. 1

      shameless plug warning right off the bat! Im building my own solution to combat the ”loss of focus” problem I encounter daily working on my own stuff.

      tabExtend( is about getting a handle on all the tabs you have in your browser and quickly switching between projects and usecases. So its more geared to solving the focus problem in the browser than your all around solution. very inspiring guide you layed out here and I can see the benefits of using a setup like this!

      1. 1

        Your product looks pretty cool. It's got some Notion vibes about it.

        Thanks for sharing :) Looks pretty useful.

        1. 1

          you are spot on! I like notion and have been using it for a while so I borrowed a few of my favorite things from their app and added some other stuff. The one thing that really got me to build my own solution thoe was that I was tired of the friction of jumping between the browser and other apps. I found myself doing a lot of copy pasting links/quotes/code snippets, sometimes adding a note or two, so thats the main idea behind tabExtend.

Recommended Posts