node package manager


An offline/online field database which adapts to its user's terminology and I-Language

FieldDB is a free, modular, open source project developed collectively by field linguists and software developers to make an expandable user-friendly app which can be used to collect, search and share your data, both online and offline. It is fundamentally an app written in 100% Javascript which runs entirely client side, backed by a NoSQL database (we are currently using CouchDB and its offline browser wrapper PouchDB alpha). It has a number of webservices which it connects to in order to allow users to perform tasks which require the internet/cloud (ie, syncing data between devices and users, sharing data publicly, running CPU intensive processes to analyze/extract/search audio/video/text). While the app was designed for "field linguists" it can be used by anyone collecting text/audio/video data or collecting highly structured data where the fields on each data point require encryption or customization from user to user, and where the schema of the data is expected to evolve over the course of data collection while in the "field."

FieldDB was officially launched in Spanish on August 1st 2012 in Patzun, Guatemala as iCampo an app for fieldlinguists. Since then more than 500 users at 50+ universities that we know of have started using and giving us feedback about the app. You can find more about the "non-technical" side of the project at or find "technical" publications about the project on the Dev site. You can also watch screencasts which demo how parts of the app & infrastructure work by searching on YouTube.

Interns and Development Team


We would like to thank SSHRC Connection Grant (#611-2012-0001) and SSHRC Standard Research Grant (#410-2011-2401) which advocates open-source approaches to knowledge mobilization and partially funded the students who have doubled as fieldwork research assistants and interns on the project. We would like to thank numerous other granting agencies which have funded the RAs and TAs who have also contributed to the project as interns. If you have a student/RA who you would like to customize the project for your needs, contact us at support @ lingsync . org


This project is released under the Apache 2.0 license, which is an very non-restrictive open source license which basically says you can adapt the code to any use you see fit.

How to Contribute Code

  • Signup for a GitHub account (GitHub is free for OpenSource)
  • Click on the "Fork" button to create your own copy.
  • Leave us a note in our issue tracker to tell us a bit about the bug/feature you want to work on.
  • You can follow the 4 GitHub Help Tutorials to install and use Git on your computer.
  • You can watch the videos on YouTube dev playlist and/or in the Developer's Blog to find out how the codebase works, and to find where is the code that you want to edit. You might also like the user tutorial screencasts to see how the app is supposed to behave. Feel free to ask us questions in our issue tracker, we're friendly and welcome Open Source newbies.
  • Edit the code on your computer, commit it referencing the issue #xx you created ($ git commit -m "fixes #xxxx i changed blah blah...") and push to your origin ($ git push origin master).
  • If you know how, you should also try to run the tests $ npm install and $ grunt test it should say something like Finished in 10.388 seconds 732 tests, 2308 assertions, 0 failures, 0 skipped Then you can also run the entire build $ grunt travis to make sure your changes dont affect other parts of the app. If any of these parts errors, ask us for help in the issue tracker.
  • Click on the "Pull Request" button, and leave us a note about what you changed. We will look at your changes and help you bring them into the project!
  • Feel the glow of contributing to OpenSource :)

Related repositories

These are the webservices which the FieldDB clients use, and which make up the complete FieldDB suite. If you fork the project, you might also be intersted in forking these repositories and adapting them to your needs. We created two scripts to simplify the process of downloading and building the FieldDB dependancies into one directory.

$ cd $HOME/Downloads && curl -O --retry 999 --retry-max-time 0 -C - && bash
$ cd $HOME/Downloads && wget && bash
  • Audio webservice (for hosting audio files and running processes such as the ProsodyLab's Aligner)
  • Lexicon webservice (for search functionality, and glosser functionality if you are a linguist)

You might also be interested in the code for some of the client apps which use FieldDB api/corpora.