gulliver

the simple travel planner

Visit Website
October 12, 2019 anti-milestone: temporary failures

I thought it might be fun to share a setback instead of a positive milestone for a change. I screwed up twice, hindering my progress on (what is now) https://gllvr.com.

  1. Fail number one:

Naming is hard, and after way too much browsing of namecheap I got impatient and thought: "I know, I'll name my travel planner after my favourite migratory bird!"

I found swallow.app to be free, so I registered it one evening, pointed its DNS to netlify, done. Time to focus back on the essential task of building features!

Except no, the next day I strongly felt that the name didn't work AT ALL for most english speakers 😱. I had hoped that the connotations might be offset with a cute bird logo, but after gathering some more feedback from friends and the internet, it became clear that the feeling evoked by the word "swallow" was just a bit gross for most people. Sorry birds, you still rock.

How fix? The decision on name+domain felt weirdly permanent. Except that it wasn't. I swallowed (ha) my pride and reversed my decision. I looked for domains for "gulliver" and found gllvr.com to be free. I registered it as fast as possible, replaced the name in my source code, and vowed to never make decisions when tired again.

  1. Fail number two:

I'm decent enough at setting up backends, but I don't know much more than the basics about security.

So I needed a server to save trips that people share. Annoying but easy enough: rent a virtual machine for 3.50 a month, install postgres, nginx, fail2ban, ufw firewall, and some other stuff. Configure nginx with an api domain, set up letsencrypt, configure postgres to accept authentication via SSH, and so on.

I left port 5432 open in order to conveniently connect from my laptop, and accept the fact that my config is probably not perfect, but workable enough. I post some updates on the internet, and maybe a hundred people try out the travel planner.

Cue a couple of days later: I receive an URGENT 🚨 email from my provider: "Abuse-Message: Netscan detected ... We received evidence that an attack is originating from your server ..."

The email was very serious, so I briefly shit my pants, log in to my machine and kill a couple of weird processes started by the postgres user. I switch off the VM, disheartened that somebody violated my beautiful API baby.

This is already getting too long, so I'll just note that I decided to deploy the API on something more managed next time. I tried out Firebase and AWS before settling on Heroku for the time being. It was annoying and took some time to rewrite some of the backend, but in the end I'm happy with the current setup.

  1. Conclusion

So there you go, two self-inflicted setbacks. It was a great feeling to fix them. I briefly felt awful about both of these, but it allowed me to experience what DHH once mentioned: bad decisions can always be fixed, so don't be blocked on taking decisions out of fear of making a mistake.

4 Comments

  1. 2

    Thanks for sharing those great insights. I once heard that you learn from mistakes but since there is so much to learn from mistakes and you can't make all the mistakes yourself therefore you have to learn from others mistakes.

  2. 2

    Interesting.

    ---
    And also interesting service. It's very handy when traveling, I tend to do quick notes in Google Keep. But a service like yours has potential if you want to keep track of places where you've been and activity.

    (I'm using google maps timelines but get mixed with everyday activity).

    good luck!

    1. 2

      Thank you very much for checkin it out! It's good to hear that I'm not the only one who hacks together some google things to organize trips. For me it's usually spreadsheet + calendar, but I have the same problem as you mention, daily activities don't really mix in well.

      I didn't know google maps timelines, but looking at it it's purely passive tracking, right? Or can I add a "plan" to my timeline?

      1. 1

        Cheers!

        Google maps uses Google Location History (so this has to be enabled) for the timelines. It automatically track the routes, distance + duration (walking, car, even plane!), guess the places (most of them on track) where you've been with the time and duration. And you have those records saved by days and you can look in the past with the help of the integrated calendar.
        For me it's a handy tool.

September 8, 2019 Shareable Trips

I finished up the feature I was most excited to build so far.

I set up a backend with Postgres, some cheap virtual server, registered a domain name for my API, set up nginx, letsencrypt and all that other Jazz.

It was some grunt work, but very satisfying once it worked (and I learned a ton!).

I then wrote a REST API. The UI can now request to save trips, which results in getting back a public and a secret id (the latter for letting only the creator update the shared plan)

I'm proud that it's fast and very easy to use. You click the sharing button, and you get a link almost instantaneously. πŸŽ‰

There is still a lot to add to make it work even nicer, but I'll go celebrate now by going for a beer with a friend.

Comment

August 12, 2019 Finished a prototype

I've wanted a simple trip planning app for the longest time, but I could never find anything that fits the simple workflow I would like.

Basically I just want to sketch out the days while I'm planning, booking the flights, deciding where to go etc. I tend to lose the overview very quickly, so I usually just want to stay on top of all the ideas and my current plan-in-progress.

Until now I've managed with spreadsheets, but I wanted to build something nicer and see if other people are interested in a similar type of tool.

Now I have a first public version. Definitely not as useful as a simple spreadsheet yet.

Comment

About

I've wanted a minimalist trip planning app for the longest time, but I could never find anything sleek and fast with a nice workflow.