May 4 2015 · 3 min read · Comments

For the past few weeks working on a new toy: Conjugate. It's probably easier if I just stick a summary of the GitHub readme here.

Conjugate is a verb conjugator service. Enter a verb in English and get the conjugations for all tenses in a variety of languages.


Reason to be

When learning a new language, it is very common to struggle with verb conjugations. For example:

I want to know the third person singular form (masculine) of the future perfect tense of the verb to eat in French.

Unfortunately, the available resources are somehow limited:

  • Google translator: usually gets conjugations wrong for most languages, especially in terms of gender.
  • Apps: seriously? I don't want to install yet another app!
  • Websites: lists are limited, the sites are old, full of ads and/or don't play well with mobile devices.

Conjugate tries to solve that use case.

Project structure

The project is divided in two parts:

  • Scraper
  • Mobile friendly website


I wrote a web scraper in Python using BeautifulSoup4 that grabs translation and conjugation data from Verbix. This site doesn't work very well on mobile, their API returns a 404 and their e-mail address is no longer valid. Honestly, I feared their comprehensive database is going to be lost at some point in the near future. Besides, they allow people to user their data for non profit purposes.

The script currently supports Romanian (which I'm trying to learn) and Spanish. Luckily, it's pretty easy to add support for new languages, although no thanks to Verbix's poor use of web standards.


Currently, I'm in the process of writing the mobile friendly application. It'll be extremely simple:

  1. Enter a verb in English (infinitive).
  2. Select a language from a dropdown.
  3. Hit "Go".

For the backend I'm using Flask and sqlalchemy to keep things in the Python world, not to mention that they're really easy to get started with. Not too sure about the frontend, but I'll probably go for a framework that makes responsive design simple enough.

Any suggestions?


I've been pretty lazy these days, blame it on FarCry 4 and Daredevil but I hope to report some progress on the project soon. Of course, I'd be more than happy to accept PR's if you're interested to help!