NarraFirma commissions

About commissions

A development commission (also called a bounty) is a way in which NarraFirma users can help us maintain and improve NarraFirma. Commissions usually have narrow, fixed scopes centered around fixing bugs, making changes, or adding useful features. If you are interested in contributing to NarraFirma development by paying us to improve the software in a particular area, talk to us.

Please remember, however, that we wrote NarraFirma for everyone. We will decide whether (and when and how) to take on commissions based on our availability and our evaluation of the resulting benefit to all NarraFirma users.

Also note that though we are supremely grateful for help with NF in the form of development work (i.e., pull requests, contributed code), it does take up our time and energy to collaborate with contributors and review potential contributions. So while you can choose to (a) pay us to work on NF, (b) pay someone else to work on NF, or (c) work on NF yourself, we do ask that you not attempt to make large improvements to NF without talking to us and finding a way to help us find the time to incorporate your changes (e.g., by paying us something for the time we spend collaborating with a person you hire to work on NF). Of course, you are also free to fork the NF code and launch your own effort at your own expense; that is the essence of open-source development.

Past commissions

We would like to thank our commission funders for helping us bring these elements of NarraFirma functionality to all of its users:

  • Improved options for importing data collected elsewhere
  • Improved support for the catalysis process
  • Better looking graphs and catalysis reports
  • Better administrative tools
  • Many interface and usability improvements

Future commission possibilities

These are some wish-list items we think NarraFirma users might like to see in the software, plus some rough estimates of:

  1. Need: how much we think NarraFirma users need them, based on user feedback. "Small need" means no or few people have mentioned it; "medium need" means it has been mentioned to us several times; "large need" means lots of people have asked for it.
  2. Effort: how long we think it might take to make the wish-list items happen. "Small effort" means 50-100 hours; "medium effort" means 100-200 hours; "large effort" means 200-400+ hours.

Large need items

Better testing. Large need, medium effort. At this point we do all of our testing of NarraFirma by hand, both as we make each change and before each release. We would like to add two types of automated testing to the NarraFirma development system.

  1. We would like to place unit tests throughout the code. We did not have time to do this before, and we still have not found the time to do it. (It is also very not-fun.)
  2. We would like to set up an automated testing suite such as Cypress so we can run regression tests (which check to see if new changes break existing functionality) so we can find bugs before you do.

Dedicated testing. Large need, medium to large effort. Developers should never be testers. Their minds live inside the software they build, and they always miss bugs that would be obvious to other people. We two (at first both Paul and Cynthia, then pretty much only Cynthia) have been NarraFirma's only testers (unless you count all of its users). For the software to be top-quality, it ought to have a non-developer tester. However, probably nobody else on the planet is willing or able to put in any fraction of the volunteer time we have put into this software. So an excellent way to support NF would be to hire a QA tester for NF yourself. We would be glad to work with such a person (to the best of our ability and availability). They might test NF manually, or they might work on unit testing and an automated testing system. In either case, we would love to collaborate with such a person. We just can't pay anyone to do this. Maybe you can.

Survey improvements. Large need, medium to large effort (depending on ambition). We would like to improve NarraFirma’s surveying capabilities. This would require implementing things people take for granted in the big survey systems, such as:

  • the ability to invite people by email, monitor who has responded, and send reminders
  • support for persistent survey sessions, so survey-takers can come back and finish the survey later
  • full accessibility support (such that any standards board would accept it)
  • more survey complexity (question piping, more question types, drag-and-drop ranking, etc)
  • the ability to work fully off-line and batch send surveys when a connection is found

Medium need items

Internationalization. Medium need, medium effort. We started NarraFirma expecting it to be fully translatable, but that idea fell by the wayside as we struggled to get the essentials finished in the time we had. We could make the software translation-ready (with editable texts-to-display files for you to translate), but it would take some time.

A survey app. Medium need, large effort. We would like to create a survey-taking application for the Android and iOS operating systems. It should have a clean and simple design, connect easily, support accessibility, and work offline if necessary.

Multiple answer sets per story. Medium need, medium effort. NarraFirma assumes that each story in a story collection is associated with one and only one set of answers to the questions in the story form. But if a story could have any number of answer sets, NarraFirma users would be able to ask people questions about stories told by other people. This could be useful in many projects. For example, you could gather a set of stories, then ask people with different stated opinions to interpret the stories.

Sadly, we did not think of this back in the day, when it would have been easy to implement. We could change it now, but we would have to tread carefully. Changing how the survey is displayed is relatively easy. Changing the data storage architecture is much harder, given the need to protect the integrity of existing project data. Also, we would have to think about how multiple interpretations would change NarraFirma's graphs (how to show linkages among multiple interpretations of the same story?) and statistics (which tests must be disabled when samples are linked? must they be disabled wholescale? or can some data be excluded?). Still, we think such a change is doable given enough time and care, and it could make the software much more useful for PNI projects.

Small need items

Live data import. Small need, medium effort. We have heard that it may be possible to link NarraFirma directly to one or more survey systems (LimeSurvey, for example) using a JavaScript-accessible API. If we could make this work, it would mean that you could create and run a survey, then import the data to NarraFirma without dealing with any intermediate files. But it might work for only one surveying system.

Optimization. Small need, medium effort. We have not had time to try (more than a little) to optimize the speed of NarraFirma’s operations. If we could set aside some time to work specifically on this, we could probably speed up response time and capacity significantly. The software could handle more stories, more questions, and more graphs, in less time.

Better multi-user support. Small need, medium effort. We have thought about improving the multi-user experience in NarraFirma, most specifically by adding a running chat channel.

Undo support. Small need, medium effort. Because NarraFirma uses a journaling data store, it could theoretically support an undo system, where you could reverse your changes all the way back to the creation of a project. We have not implemented this, however, due to the fact that it would take a while to implement the actual rolling back of actions.

Interface usability overhaul. Small need, small effort. We are limited in what we can do to improve the NarraFirma interface in Javascript, but we could improve the experience by adding more real-time interactivity to the software (more drag and drop widgets, for example).

Visual design overhaul. Small need, small effort. It might be nice to bring in some outside advice on making NarraFirma look nicer in its interface and reports.

Unlikely commissions

There are also a few wish-list items we have decided to drop from the list (for now) due to small (apparent) need and large (probable) effort. If you want to support these things, by all means talk to us! But we think they are unlikely to happen without significant support at this point.

Support for online sensemaking. We would like NarraFirma to support group sensemaking workshops, so you could have distant people calling in and doing a Zoom-style collaborative sensemaking session.

Rakontu integration. We would love to incorporate the essential functionality of Rakontu into NarraFirma, so people could create groups that share stories over time, then periodically make sense of those stories together.

Desktop version. Javascript is fine, but working in a browser environment does create some limitations. We could create a desktop version of NarraFirma that would still talk to a network client but offer more local capability. It could handle more data more quickly, and we could do more interesting things in the interface (probably with Java) than we can do with Javascript.

RTF reports. We have explored writing RTF, ODT, or DOCX reports from NarraFirma, but we decided to stop trying to do that, because pandoc does such an excellent job of converting NarraFirma's HTML reports to any other format you could want.

What would you like to see in NarraFirma?

If there is something you would like to see included in (or improved in) NarraFirma, let us know. You can send me (Cynthia Kurtz) an email at

Also, if you know of any grant opportunities we should pursue to gather funding for NarraFirma maintenance and development, we would love to hear about it.