Work & Projects

  |  Thor Galle

Hi! I'm Slowby's Chief Technologist

Slowby is a social enterprise from Belgium that makes slow travel more accessible. We mainly work on the hospitality platform Welcome To My Garden, but we also have several other projects.

Women Don't Cycle (documentary)

_Women Don't Cycle_ is a 2022 documentary by my Slowby co-founder [Manon Brulard](https://www.linkedin.com/in/manon-brulard). It is a film about what it means to be a woman cycling in different countries around the world.

The documentary was shot during an eleven-month bicycle touring trip from Brussels to Tokio, with our other co-founder [Dries](https://www.linkedin.com/in/driesvanransbeeck) ([more about their trip](https://roadtotherisingsun.be/)).
A documentary about what it means to be a woman cycling in different countries around the world.

Welcome To My Garden

Welcome To My Garden is a free community network where people can share their garden with other slow travellers and plan their next trips. WTMG has an intuitive map with lots of wonderful gardens (mostly in and around Belgium), a simple chat system, and it integrates with [Waymarked Trails](https://waymarkedtrails.org/).

[Superfans](https://welcometomygarden.org/about-superfan), who support us with a yearly membership, also get access to extra tools like uploading `.gpx` files to find gardens along a planned trail, a community space with likeminded travellers, a railway transportation map, and more!
Founded during the corona summer of 2020, WTMG is a hospitality network for sharing your garden as a camping ground with slow travellers. These days, it's becoming much more!

Previously...

I have worked in consulting at Columbia Road & front-end & more at Readup.

Read more about my past work →

I also hack on projects for fun 👀

I'm sporadically working on...

Readup 2020 →

Readup is a social reading platform, purpose-built for sharing and discovering articles on the web.

Readup encourages _deep_ reading by clearing away clutter from articles. It facilitates civilized discussions by requiring readers to complete an article before they can comment on it, and every day, it also lists the most-read and most-loved articles of the moment in the "Article of the Day" competition.

<!-- These readers readers can get informed and inspired at their own pace. -->
A social reading platform, purpose-built for sharing and discovering articles on the web. Enjoyed by a fun community of devout readers since 2016.

Personal Website 2020 →

This very website is the second iteration of my personal site. It was originally built [with Gatsby](https://www.gatsbyjs.com/) and Contentful, and attempted to keep things simple with most pages being just HTML. Very recently, in early 2023, I merged in another "portfolio database" project using [Strapi](https://strapi.io/).
The website you're looking at right now! I recently added a deceptively simple project database, a preview of which you're seeing right here.

And, here's a selection of past projects, both recent and older.

Mealime/Siri integration 2022 → 2023

In September 2022, I built a simple HTTP API that wraps the internal grocery list API of the meal planning app [Mealime](https://www.mealime.com/). It abstracts away cookie-based authentication into a simple fixed token, so the API can be used from an iOS Shortcut and other simple HTTP clients.

Amongst others, I used this Shortcut to build a grocery list integration with Siri: I can now add items to my grocery list without picking up my phone, and I often do!

In February/March 2023, I rewrote the Node.js app into Deno, extended its functionality, and released it publicly on GitHub.
An unofficial Mealime API wrapper for usage with Siri via Apple Shortcuts.

Dash 2020

Dash is a browser extension that adds a "new tab" dashboard with widgets driven by personal data from various sources. 

This project originally started as a design exploration in time management in October 2018. When trying to learn a new skill, or reach certain outcomes in a project, consistency is key. _"Practice a little every day"_, _"Write a little every day"_. But reaching consitency is difficult, it relies on balance. Time is scarce. Overspending it on one project takes it away from other projects, a situation I often found myself in (and I still do).

What if you could, ahead of time, plan **timeboxes** for all the projects you wanted to work on in a week, or in a month? And crucially, what if you could also nudge yourself into respecting those timeboxes by geting frequent and instant feedback on your overall progress?

At the outbreak of COVID-19, and while procrastinating on my thesis work, I experienced a surge in interest to work on this again, and I started implementing a proof-of-concept. Iterating on the above idea, I first built the **"Time Goals"** widget. Later, I built two more related widgets: a "streaks" widget, and an (audio)book-specific time goals widget.

## The Time Goals Widget

 The Time Goals widget consisted of two parts:
- Live time tracking data for my projects, which came from two sources; the [Toggl Track API](https://developers.track.toggl.com/) for my personal projects at the time, and the [Harvest API](https://help.getharvest.com/api-v2/) for my Columbia Road work projects at the time.
- Time goals, which I set in the dashboard, for projects I wanted to commit to at the time. For example, "I want to learn Swedish for 6 hours per week" would be a goal.

The widget then showed my progress towards the goal of each project in a progress bar, dividing the time goal equally over each weekday. With colors, it visually represented how much I was on- or off-balance:
- <span style="color: blue;">Blue</span> meant: completed according to schedule
-  <span style="color: red;">Red</span> meant: overdue, should have been done.
-  <span style="color: gold;">Yellow</span> meant: to be done today.
-  <span style="color: green;">Green</span> meant I "overshot" the goal, or did more than planned given this distribution (can be a bad thing!).

I used this for about two months, and I felt it did help me to achieve a better balance. A new tab page is one you see often, so I would get reminded of my undershooting and overshooting all the time, which would steer my behavior.

I wanted to take this step further, according to my original designs: what if you didn't just set a fixed number of hours as a project goal for a week/month, but would also integrate it with your digital calendar?

Then the tool would help you in more ways:
- When planning, you could add, rescale and reshuffle calendar events for each project, until each project reached the desired quota of time: _"Is your calendar sound? Does it match your intentions?"_
- Your expectations for a day would be more fine-tuned: the dashboard wouldn't nudge you to work on a project on Tuesday or Wednesday if you wanted to complete it all Thursday.
- When your calendar changed, as it often does, you would see the impact it had on your overall distribution of time for a week/month, and you'd be better informed to make resulting changes.

But while getting somewhere, I had not finished this part of the implementation. Along the way though, I saw more opportunities for this Dashboard that I did try out.

## The "Streaks" Widget

Not everying ought to take a distinguishable number of hours in a weekly plan. A habit can be a small thing, like practicing on Duolingo for a few minutes each day. For these types of commitments, I added a "streaks" widget.

I picked two external services that I wanted to use daily at the time. Both had a "streaks" concept of their own.
- First, there was Vocabulary.com, the object of my [Vocabulary.com Enhancer tools](/projects/vocabulary-com-tools/). The entry would also link to my last-practiced list, so I could directly jump into the next session. 
- Next, there was Readup.com (for which I didn't work yet at the time). Similarly, it showed my last Starred article.

Neither of these had a public API, however. This sparked some creative web engineering to retrieve arbitrary authenticated web app HTML from these srouces. I used a web extension to proxy privileged requests with my cookies/credentials to my "new tab" page, which inconveniently was a regular web page. It needed to be a regular web page, because I relied on the Service Worker's Cache API to cache requests for quick loads, and that was not supported in extension pages at the time.

## The book widget

The last widget I added was the book widget. I didn't only want to track time spent on my computer, but also time spent learning otherwise: through books, or audiobooks, and bring it fairly into consideration along with the rest.

Using the same proxy extension, I could parse my progress on audiobooks with Audible's web app  (see [this post](/articles/regex-puzzle-either-and/) on a regex challenge therein). I could then set a time goal to finish my book by a certain date. I also worked on fetching progress from Kindle's web app, but if I remember correctly, couldn't sufficiently reverse-engineer the web app to extract my progress.

## Conclusion & legacy

I used a development build of this project for some months as my daily-driver new tab, and enjoyed it! I thought it did help me. However, I got stability problems with some widgets. For scraped "APIs", it counts that if the HTML changes, the app likely breaks, which lead to annoying errors on my new tab. Other work encroached: I submitted my thesis, I became a full-time employee at Columbia Road, and I didn't feel like spending time to maintain and upgrade it to keep it working. Who knows, maybe this will change some day. But not today.

A big year later though, just after my professional stint at Readup ended, I got excited when I learned about Potential. Their idea of a habit _forming_ app aligned well with what I had dreamed of here. When I introduced myself to [CEO Welf](https://www.welf.co/), I presented this project too. I like to think that that helped me get hired, when I eventually also applied totheir open Software Engineer role.
A "new tab" dashboard with widgets driven by personal data from various sources, to keep track of your commitments & habits.

Vocabulary.com Tools 2018 → 2020

Voc Enhancer is a set of features hacked on top of the English vocabulary learning platform & dictionary Vocabulary.com. Its Chrome and Firefox extensions have nearly 1000 users. I also built an API wrapper and use it to synchronize dictionary lookups in an Amazon Kindle to a Vocabulary.com list.
A suite of tools to enhance English language learning on vocabulary.com.

Movie Visualization 2018 → 2019

This project is an interactive and chronological visualization of the movies I've watched between ~2015 and 2020.

Tracking movies I watched is something I started doing in 2015, as part of a general move to track many things I do. In early 2018, a idea germinated to also do something with that data. 

I made a small proof-of-concept to prove a theory to myself: I thought I watched movies in intermittent sprees, and then didn't watch any for a long time in between. That project didn't take long, and I answered my question. In 2019, I believed more could be done with this data: a full-fledged visualization with movie posters, together with recommendation form.

You can read the full story of the creation of this visualization in [the article from 2019](/articles/movieviz/).
An interactive visualization of movies I watched during 2015-2018, with some commentary.
Licensed CC-BY-NC-ND 4.0 · 2024 · Contact