New project: Geotoast

3 minute read

Two books I have read at the end of 2016 which have shaped a lot of my current thinking are So Good They Can’t Ignore You and Deep Work, both by Cal Newport.

I picked up a lot of tips from these books, but for me the two main things which stood that I want to work on are the following:

  1. Doing deep work. In other words, I want to set aside time where I can focus intensely on one specific task, without being distracted by anything else.
  2. Deliberate practice (or learning). This is about identifying a set of skills or techniques at which you are lacking, and then focusing your learning specifically towards acquiring those skills. For me as a programmer this means identifying certain technologies or techniques which I feel are lacking and the focusing on acquiring the skills to use those technologies / techniques.

    One of the best ways to do deliberate practice (or learning) is by using a project based approach. So in other words, once I have identified those technologies, I create a real life project which makes use of those technologies and build it

So what do I want to learn?

So, with that in mind I have identified the first set of skills I want to acquire, as well as the project which will help me accelerate this learning process.

So for me the skills / technologies I want to learn are the following:

  1. Firstly, I am working for Auth0 and building stuff which other developers use, but I have never actually built something using our product. I therefore do not understand some of the frustrations which developers have, and this is a problem. I will be building something using Auth0.
  2. The new API Authorization feature of Auth0
  3. ASP.NET Core, and specifically the following areas:
    • Authentication and Authorization (once again this is crucial for my job to understand the nuances of these)
    • Building an API, and all that goes with that - authorization, versioning, etc.
  4. JavaScript. Damn, my JS skills are sorely lacking
  5. One of the newer JS frameworks. Not 100% decided yet, but I am leaning towards Vue.js
  6. VS Core. I wanna become better at using it. So I will be using it, and not the full Visual Studio. Along with that, all the .NET command line tools. No more fancy IDE for me.

The project

The project I have identified which will help me learn these skills will be called GeoToast. Basically it is about displaying a popup message (or toast) to users on your website based on their geographical location.

The idea for this first came about some years ago while I was still doing the ASP.NET Weekly newsletter. I thought that as I was doing traveling around the world, it would be cool to meet up with developers in the cities and countries I was visiting. One other way I thought of getting in touch with them was but displaying a notification on my blog, so that when someone visited from say Taipei, and I knew I was heading to Taipei soon, it could for example display a message like the following:

Hey, I am headed to Taipei from 1 February to 14 February and would like to meet up with some of my readers. Interested in meeting up? [Click Here]

That at a high level is the idea for the application. It will allow people to register on the GeoToast website and then create a list of messages which can be displayed to their website visitors based on the geographical location of that visitor. It will also allow them the embed a small JS file in their website which will make a call to the GeoToast API, and based on whether any of the message are applicable to that visitor’s location, it will display a nice notification somewhere on the screen to the visitor.


That is the very brief overview of the application. I will write more blog posts to share more details and things I have learned as I continue with the development of this project. Because I also want other developers to be able to learn from this, the project is open source and hosted on GitHub at

Did you notice an error? Please help me and the other readers by heading over to the GitHub repo for this blog and submit a Pull Request with the corrections.