Startup 3: Week 3 – The Blitzkrieg

I built a web scraper, database and half a mobile app last week. Here’s how.

Demo videos of scraper and the mobile app linked below! As a reminder, startup #3 is Hotel Tonight for weeklong vacation rentals.

Phew! What a week! Lots of updates.

The web scraper is done. I learned how to use a scraping tool (and new programming language) to get it done, but am quite pleased with the results. It crawls the website and pulls all listings location, name, description and images and saves them in a readable format.

The language I learned to do this was python. I used python because according to Google, it’s the best language for scraping websites. Go figure. Also BeautifulSoup is the best library for scraping, so learned that too.

Sign up for mailing list if you want to these weekly updates in your inbox. Promise, no spam, only posts.

I followed this fantastic tutorial from Even if you have no programming experience, you could follow this, though you would still need to setup python first. First I scraped 1 page for all the URLs of each listing. Then the scraper loops through each listing and extras the info I need. This rough cut took me about 3 hours to build, but then I needed to format my content as JSON, remove extra spaces, blank images etc. It took me 2 hours to clean up the data. Here’s the finished product.

Now it was time to build my first mobile app. I’ve dabbled with Objective-C before, but building a native app is very time consuming typically and not my forte. Luckily there are some frameworks which allows you to do web dev and compile it into both native Android and iOS apps. Helluva a time savings!

Ionic is one of the most popular frameworks for this. You build web pages (HTML, CSS and JS) and then click a button to turn it into a mobile app. If you have basic web development skills, you can probably figure out how to build an app.

That being said it took me a lot of time to get up and running with the framework. Lots to learn. I spent a few hours reading and watching amazing YouTubes by Traversy Media (60 min Angular intro, 60 min Ionic Intro) and have 2.5 of the pages done. Probably 5 hours learning, 10 hours building and 3 hours hooking up my JSON data to my app.

If you’re learning a new tool, don’t focus too much on using the tool the right way. I wasted time trying to learn how to do things “the Ionic way” instead of just writing Javascript and CSS to do whatever I needed. The rest of the app should go more quickly without focusing on learning and more focus on doing.

I always start with the hardest thing first, so the rest of the work needed shouldn’t be as bad as what I’ve done so far. To start I’ll launch the app with very minimal functionality. It will show the vacation homes and allow you to request a booking. Ideally we have payment built in but I’m skipping this for now. I can always bill people on PayPal and build it later.

I expect another 15 hours required to build out the pages and make everything pretty. Then time to ship it! Nick has been working on the backend infrastructure but hell, we may just use Dropbox as our hosting and run the script daily manually to update the data. MVP, right? 😉

Key takeaways:

  • Leverage what you know over “the right way of doing things”
  • If you can skip steps, do. Nothing matters until people like what you’ve built. You can always go back and add more features.
  • If you’re not technical, then don’t try to be technical.
  • If you want a mobile app go with Ionic or RubyMotion. It’s cheaper, faster, and you get iOS and Android at the same time.
  • Don’t waste time building infrastructure if you don’t need it. You can manually update your database and store it on Dropbox for free. Get scrappy.

Thanks for reading,


PS. Big shout out to my mom for all the support. She emails me her thoughts every week after I do a writeup!