/ cloud

Simple inspirational cross-cloud app

Disclaimer: I made this app for personal use, in one evening. It's flawed. If you like it, and have ideas on how to make it into more of a product, shoot me an email.

Problem

You know how some tasks can be difficult, boring, or unpleasant - and all it takes sometimes is to see someone complete it successfully and share their experience online?

Solution

I decided to build a cheap and simple cross-cloud (making AWS and Google Cloud work together) web app to generate inspiration:

Screen-Shot-2019-05-03-at-4.29.07-PM

Under the hood

The app takes the definition of your task (for example, "get in shape"), then uses Google Search to find highest-ranking articles from people who successfully completed the task:

Screen-Shot-2019-05-03-at-4.42.25-PM

The ranking is Google's, not mine. The list of data sources is curated; I started with Reddit, Medium, and Hacker News.

You can launch a project like this in one sitting - but it will probably require some polishing. You can see the many flaws - so I will most likely redo it from scratch soon. Yet, I am finding it pretty effective - it provides that much-needed inspiration.

Enter SomeTask.com - get inspired and get it done.

  1. register a domain (bonus points for a .com name)
  2. put it in Amazon Route 53
  3. configure static site hosting using a storage bucket on Amazon S3
  4. [forgot to do this, so TODO] get SSL/TLC cert from Amazon Certificate Manager, configure https access
  5. set up CloudFront to cache content from the storage bucket, point your domain to CF
  6. make static HTML site with a form
  7. for the form action, set up a "serverless" Python script using Google Cloud Functions
  8. the script will use Google Custom Search, so configure your API access for that
  9. create css to render results in a way that's presentable
  10. enjoy!

Note: when you hit the form for the first time, it may take a second or two to get the data back - the infamous "cold start problem". You can read more about this phenomenon here (it's actually about ASW Lambda, but applies to other "serverless" solutions too).

Some improvements I can think of:

a. form validation
b. better rendering of results
c. don't jump between URLs (stay on sometask.com)
d. more data sources
e. more aggressive filtering (attempt to rank results again after Google has ranked them)

Let me know if you want to see the source code.

Happy hacking!