From $0 to $10k/mo with a Geoparsing/Geocoding API in Under Two Years

Hello! What's your background, and what are you working on?

I'm Ervin Ruci, an Ontario-based developer and "entrepreneur" (since 2005). I grew up in Albania during the communist period, was fond of math and physics in high school, and won prizes at science olympiads, but never learned any practical coding skills. (There were no computers to hack.)

I came to Canada (Mount Allison University in Sackville, New Brunswick) as a student in 1996 from Albania (via Greece). I studied Math and CS. Those were my most formative years. As an MTA student I experimented with filmmaking, creative writing, radio shows, photography, learned to code, and wrote lots of code, from compilers to execute IBM650 machine code in modern computer architecture, to building online academic degree robot advisors.

I landed my first full-time programming/web design job in 1998 (while a second-year student, as the University's webmaster). Looking back using the internet archive, my design skills were lacking, and my coding skills so-so. I think I've designed perhaps the worst-looking university website in history.

I finished my CS degree part time in 2001 and moved to Ottawa, Ontario to start a new job at the Canadian Internet Registration Authority (CIRA) as a software developer, a position I held until 2005. (I did not touch web design there.) CIRA also paid for my graduate studies (at Carleton University). The problems I studied provided inspiration for a number of hobby projects I would start later on. (My thesis was on a class of 3SUM-HARD problems in Computational Geometry.)

I don't think I would be here giving this interview today were it not for this academic and work experience.

I started a number of hobby projects and companies after I quit CIRA in 2005, mainly in the "local search" area. One of my biggest successes was FoodPages.ca a local restaurant guide which was getting over 1 million unique visitors per month by 2008.

Now I count it among my failures, although it still pays for the hosting cost and even turns a small profit. I don't know why, perhaps this field is now dominated by just a few big players, Google Maps mostly, or I just have no clue about SEO. Either way, the internet is littered with the corpses of dead companies. I've made just a modest contribution to the pile with FoodPages and another half a dozen or so.

I moved back to Albania in 2008 and worked at the University of Vlora (my hometown) as a Computer Science lecturer and in various administrative positions, managing my side businesses at the same time.

From 2008 until 2011 I led the development of the University's online administration system (built from scratch by me and a student). I also built online learning and randomized testing modules for the programming classes I was teaching.

I quit and moved back to Canada in 2012 because of some bizarre events I've documented in my blog.

Within a month of coming back, I was hit with a copyright/trademark infringement lawsuit brought about by Canada Post over the provision of a free crowdsourced database of postal codes (under Creative Commons Attribution 2.5 Canada License) and the use of (according to them) the trademarked term "postal code" on one of my websites. They dropped it in 2016.

In 2016 I started working on geocode.xyz, a worldwide geocoding/geoparsing API, utilized by thousands of users (both free and commercial) to parse and geocode locations from freeform text.

My revenues are a bit over $10k per month and growing 50% YTD.

Home page

What motivated you to get started with Geocode XYZ?

With the threat of court-imposed personal bankruptcy gone, I refocused on open problems I wanted to solve. Putting world literature on a physical map of the world is one such problem. It involves parsing books for locations mentioned in a geo context, a process also known as geoparsing.

According to Directions Magazine, geoparsing is an almost magical, complex technological process that relies on data to put geo-information into context. There was little in the way of a reliable geoparsing API, so I figured I could probably create one.

Look around! Identify a problem you'd like to work on, and if you feel inspired don't be afraid to reinvent the wheel.

Tweet
Share

This is how books.geocode.xyz and the API powering it, geocode.xyz, came to be. As it turned out, other startups were in need of such an API, especially those hovering around the intersection of big text data and geospatial analysis.

Books.Geocode.XYZ:

Books.Geocode.XYZ

What went into building the initial product?

$1.

My finances were shabby after 5 years of legal wrangling, so even more than usual, I had to start with super-minimal costs (using a free tier t2.micro server on AWS). The only cost was the geocode.xyz domain name, which I bought during the .xyz promotional sale for $0.99. The total startup costs were therefore about $1 ($0.99 + tax).

Prior to this I had bootstrapped geocoder.ca, a geocoding API for Canada and the US. Geocode.xyz was a complete re-write, re-invention of geocoder.ca. It is a good idea to re-invent things and/or expand them in different directions, before they become outdated and die. Remember Yahoo? (They also built a geoparsing engine: the now defunct Yahoo Placemaker.)

It took me about 3 months to write the initial working software. It was limited to just a few European countries, had no batch geocoding functionality and no business model (i.e. no pricing page). A lot of time was spent identifying data sources and writing code to integrate those data sources into the main data pipe, and then testing/fine tuning everything.

It helps to step back, do nothing, and relax. While doing that, I might think of an interesting problem I can probably solve. In that case, I work at it in small incremental steps.

Tweet
Share

I've received no external funding, neither for geocode.xyz nor any of my previous companies. Everything I've ever done is self-funded. The only major cost is my time, but I'm certain that I generate more value working on my own projects rather than holding an engineering day job.

The codebase is over 100,000 lines of code, written in C and Perl.

How have you attracted users and grown Geocode XYZ?

I launched at the end of 2016 on the 2016 Perl Advent Calendar. Other than that, or speaking at conferences, I've done no marketing, SEO, press, PR, mass emails, or any of those things.

Most customers come from word of mouth for such a niche product. I'm also happy with current growth patterns, and I don't bother thinking much about marketing, pricing models, etc. I think the only way to "grow" a product is to have it work better. Users will be "attracted" to the product if that condition is met — eventually.

Here's a look at some of our users:

Geocode.XYZ Users

Geocode.xyz currently serves about 1.5 million requests per week, most of them free users, but enough paying users too.

Most users use JSON output from the API, and quite a few use the batch geocoding (HTML) API. I also offer an XML and a CSV API, but very few use either one. (Here's a content-type breakdown of the users. XML users in orange account for about 4%.)

What's your business model, and how have you grown your revenue?

I offer both a free and paid version of the API:

  • Throttled API access is free. API
  • Unthrottled API Pricing for pay-per-use access is 0.0025 EUR per credit. LOG IN to buy credits (1 credit = 1 API Call).
  • Unlimited API Access Monthly Subscription: 100 EUR per month. LOG IN to subscribe. (You may cancel at any time).
  • Unlimited and Unthrottled Geocode Server on AWS with standard AWS licensing costs. Run this software on your own server.

The pricing is in Euros because it was originally aimed at the EU market and I never got around to changing it, or creating country/region-based pricing options.

API Clients pay via Paypal or Stripe (recurring payments are all handled by Paypal, some CC transactions by Stripe). I've kept API pricing at nearly 1/10th the pricing of my nearest competitors. I can do that because my running costs are minimal.

AWS Marketplace is another revenue stream, clients pay for their own instances on the AWS cloud running my software. (I receive a software licensing fee billed by the hour).

Geocode.xyz is now two years old and revenue is up over 50% from a year ago.

Business expenses are going up a little bit. I use a cluster of load balanced AWS spot instances now — they are cheap, but not free.

What are your goals for the future?

My goal is to create useful solutions to certain problems, and enjoy the freedom to do whatever I want with my time as a result.

As for the future of geocode.xyz, I'd like the software to scale in order to parse millions of books for creating the most comprehensive map of world literature to date.

I'm currently adding new features, such as the integration of open elevation data into the API, adding support for intersection geoparsing (still not out of alpha), IPv4 & IPv6 address geocoding (just released), autocomplete and fuzzy geoparsing (todo), performance optimizations (ongoing), etc.

With over 1TB of base application data and a rapidly growing customer base, scaling is the number one task.

What are the biggest challenges you've faced and obstacles you've overcome? If you had to start over, what would you do differently?

Lack of data was and still remains the biggest obstacle.

The state of open data is not evenly spread throughout the world. (Openstreetmap.org and Openaddresses.io are major sources, and lots of open government data have been released in recent years — I would not have created this business without them.)

Time and timing are other challenges.

  • Time: building something that works well takes a lot of time mostly spent in testing / fine-tuning mode.
  • Timing: there is no point working on a problem when the demand for its solution is far off in the future. Timing is now right for geocode.xyz — data science is a fast growing field in need of such APIs. Still, it is not clear to me which aspects of the API are more valuable to work on right now. Identifying them is a challenge so I need to figure out a better way to get feedback from users and especially from those who almost became users.

On to the technical aspect, I've made a few poor design decisions with Unicode, causing the API not to work as well for some non-ASCII languages. Parts of the system will have to be re-written until they work better in these cases. As the codebase grows larger, that is yet another challenge.

Apart for some technical/design decisions, If I had to start over, I'd do everything exactly the same way.

A super-lean startup like geocode.xyz with no funding but a good idea on how to solve a problem, is a fun project, even if it is still just a little hack.

But then again, it is more realistic to think I'll do only what I can, not what I wish I could.

Have you found anything particularly helpful or advantageous?

It helps to step back, do nothing, and relax.

While doing that, I might think of an interesting problem I can probably solve. In that case, I work at it in small incremental steps.

It is advantageous to work while well-rested. I get more done during short bursts of creativity, as opposed to a long work haul.

What's your advice for indie hackers who are just starting out?

Look around! Identify a problem you'd like to work on, and if you feel inspired don't be afraid to reinvent the wheel.

Each time I hear, 'Don't reinvent the wheel.'

The biggest successes of the last 13 years have been re-inventions, such as a massive gossip board (Facebook) and a massive billboard (Google).

I have a feeling they (and many others) are about to be re-invented again.

Where can we go to learn more?

Technical conferences have been good learning experiences for me.

Check out my talks at FOSDEM 2016 and TPCiA 2017.

I don't believe people can be inspired or learn much from business books/pamphlets/resources on "how to be entrepreneurial" or "how to start this or that." Entrepreneurs reading books about entrepreneurship are like romantic people reading romance novels for inspiration.

I don't see myself as an "entrepreneur" either, just someone with problems to solve. Some of the solutions I come up with end up with a business plan. Some don't.

I don't believe people can be inspired or learn much from business books/pamphlets/resources. Entrepreneurs reading books about entrepreneurship are like romantic people reading romance novels for inspiration.

Tweet
Share

I do, however, enjoy reading publications such as Indie Hackers to get a condensed briefing on how other people find inspiration. I like to study people, and inspired and driven people are interesting.

In most cases I read how inspiration breeds invention, which in turn breeds validation, and there is nothing hackers seek more than validation, which in turn breeds inspiration. I don't believe one can "learn" to be creative or inspired with the goal of obtaining the sought-after validation. I believe anyone with an innate ability can create something from nothing. I also believe I could be wrong.

I believe in nothing, among many other things, unlike some who believe in something, and nothing else.

Ervin Ruci , Creator of Geocode.XYZ

Want to build your own business like Geocode.XYZ?

You should join the Indie Hackers community! 🤗

We're a few thousand founders helping each other build profitable businesses and side projects. Come share what you're working on and get feedback from your peers.

Not ready to get started on your product yet? No problem. The community is a great place to meet people, learn, and get your feet wet. Feel free to just browse!

Courtland Allen , Indie Hackers founder

Loading comments...