Installation instructions

If you want to install NarraFirma (locally or on a server), follow these instructions.

For bugs or problems

Visit the GitHub issues list for help with problems and bugs.

Frequently-asked questions


Can I use NarraFirma for story work that isn’t PNI?

Sure. You might not use a lot of what is in the software, but it’s flexible, and nothing is required.

Does NarraFirma support grounded theory?

Not really. NarraFirma is used for mixed-methods research, in which texts and metadata about texts are given equal importance.

Is PNI a scientifically valid approach?

As a form of action research, PNI does not seek or claim to be scientifically valid. As PNI practitioners, we are more interested in the question of whether PNI is useful. Does it help communities and organizations get to the places they want to go? Does PNI help people get along better, see the world through each others’ eyes, discover new insights they can use? As a whole the approach has that potential, but whether each individual PNI project fulfills the promise of PNI depends on the way the project is carried out.

What if I don’t want to do all of the PNI phases in my project?

Everything in NarraFirma is optional. Just skip any pages you don’t want to use.

Where did PNI come from?

Participatory narrative inquiry has grown and matured through twenty years of research, development, and practice by Cynthia Kurtz and lots of collaborators. You can read the full history of Cynthia’s work on PNI in the “Acknowledgements and Biography” section of her book Working with Stories, which you can find on the book’s web site. This page describes Cynthia’s history building software to support PNI.

Who is NarraFirma for?

NarraFirma is support software for participatory narrative inquiry (PNI). Its primary user is meant to be a person or group who is conducting PNI projects.

Why did you write NarraFirma?

I wrote NarraFirma because readers of Working with Stories kept asking me how they could get started doing projects in participatory narrative inquiry. People seemed to need a bridge between reading about doing PNI projects and actually doing them. My first plan was to write a “workbook” or “field notebook” for PNI projects that people could use to check their progress and record their thoughts. However, I soon realized that (a) everybody writes things on computers now and (b) people work best in groups. So my husband and I decided to build software that would combine guidance, record-keeping, teamwork, and data visualization to support PNI projects.


Can I create a multi-page survey in NarraFirma?

No, you can’t. Not being able to group questions into pages in NarraFirma was a design decision. Asking somebody to tell a story (and then reflect on it) is a different category of interaction than asking somebody to answer factual questions, and this leads to different requirements, thus:

  • Individual questions on a factual form usually stand alone. But with a story form, questions often build on previous questions, and certainly on the story itself. So the story form has a need for coherence, or a continuity of context, that most surveys don’t. For example, when you can’t see your story anymore, it’s hard to answer questions about it; it doesn’t feel “present” to you.
  • Because telling a story is more revealing than answering factual questions, people tend to want to evaluate the entire form before they decide to participate. When they can’t see the whole form up front, they seem to tell more distant stories, to be safe. For example, when I plan to use a story form in a group session, I make sure people have a chance to look over the forms before they start sharing any stories, so they can see what they will be asked to reflect on. People need the same transparency on the web.
  • People filling in a story form tend to look back over their form when they’re finished, and sometimes change their answers, or even the story itself, because the questions make them rethink the experience as they go along.
  • When you ask someone to tell you a story, it’s important to avoid having them feel like they are being tested, judged, interrogated, or asked to perform. A typical web survey with separate pages and a progress bar may be familiar, but it tends to make people feel that they are ticking off tasks, not having a conversation. From what I’ve seen, this leads to “just the facts” stories and “am I doing it right” performance over reflection.

All of these things combine to make me want to give people the freedom to move about the entire story form quickly and easily. I know that most web survey forms have “back” buttons, but I’ve also noticed that a lot of people don’t use them. That’s why I decided to make NarraFirma story forms one-page affairs. I’ve seen people react to them like they do paper forms: they scroll down to the bottom and back up again very quickly, evaluating the situation they are in; they tell their story and answer the questions, and at the end they usually scroll back up and down some before they are ready to submit the form. I think this design gives people an experience that feels closer to the negotiations that go on during a conversation where stories are shared.

Of course, not everybody agrees with me about this. Some people think the one-page form doesn’t look as professional. Some think its length turns people away. I think if your story form looks too long, you’ve got too many questions, and/or you haven’t yet found the questions that people want to answer!

However, if you disagree with me on this point, you can collect stories using other surveying software and import them into NarraFirma through a CSV (spreadsheet) file.

Can I import stories I collected in another way?

Yes, you can import stories from a spreadsheet (CSV) file. To do this, you need to create a story form description (using NarraFirma or with a CSV story form file), which will tell NarraFirma what to find in your data file. This helps NarraFirma support import from any survey taking system you might be using.

Can I transfer a NarraFirma project from WordPress to node.js?

Yes, and vice versa. NarraFirma’s data structure doesn’t depend on either platform. Just export your project to a file, create a new project in your other NarraFirma installation, and import the project from your saved file.

Can I use NarraFirma as a front end (or back end) for story collection?

Yes. If you want to collect your stories using some other method (like SurveyMonkey or LimeSurvey or some other surveying method), you can import you stories into NarraFirma in CSV files. Look in NarraFirma’s help system for its “Guide to importing data.”

If you want to collect your stories using NarraFirma and export them to some other system (Tableau, R, a spreadsheet), you can export your data (on the “Export stories or story forms” page) in CSV format.

How many stories can NarraFirma handle?

Because the stories (and answers to questions) are text only (so far), NarraFirma is able to handle quite a few. We have stress tested it with more than 10,000 stories, and it worked fine, though slowly. With larger numbers of stories you will see slower performance (depending on what sort of computer it is running on). But with typical projects of 100-300 stories, and even several hundred stories, you should not see a problem.

I don’t want guidance. Can I hide all of the hand-holding parts of NarraFirma?

No, sorry. We wrote NarraFirma primarily to help people who are just getting started doing PNI projects and need some help working their way through their projects. If you are an experienced researcher or facilitator, you can ignore the guidance in NarraFirma, but you can’t hide it. But if you are experienced, don’t discount the guidance NarraFirma offers out of hand. Taking the time to work through your plans and reflect on what has happened in a project isn’t just for novices. It can help even an experienced professional get new ideas and keep learning.

What about web security?

We strongly suggest that you set up any web site on which you intend to install NarraFirma (WordPress or Node.js) with SSL (secure sockets). Your hosting provider should be able to help you do that.

What browsers does NarraFirma support?

We have tested NarraFirma primarily with Firefox and (somewhat less) with Chrome and Safari. We have not tested it with Internet Explorer, mainly because so few people are still using it (according to Wikipedia, the percentage of browser users using Internet Explorer as of November 2018 is less than three percent).

If you are using NarraFirma with IE and something doesn’t seem to be working, we suggest you try using NarraFirma with either Firefox or Chrome.

What is the current state of NarraFirma?

As of this writing (January 2019), NarraFirma has been in use for a few good years – not by a million people, but enough to have grown a little.

However, we still suggest that you back up your work every so often by exporting your project to a JSON file (go to Project administration and choose Export). We also strongly suggest that you set up SSL security on any web site that runs NarraFirma (unless you run it locally).


Can’t save catalysis report in Chrome

If you go to save your catalysis report (or any other HTML page NarraFirma generates) in Chrome, and the “Save Page As” menu item is disabled, click on any link in the page, then look at the menu option again; it should be enabled. For some reason, Chrome doesn’t see the page as an HTML document at first.

I saved a NarraFirma graph to a PNG file, but the file is empty.

Yes. This is a limitation of the library we are using to render a SVG graph to the PNG format. It happens (at least we’ve seen it) when you are using Firefox as your browser and your image contains texts (possibly popup texts) that contain special characters (umlauts, etc) that do not render correctly in the XML format. There is an easy fix: do the same thing using Chrome or Safari. This seems to be a Firefox-specific problem.

Javascript heap error

In the node.js version of NarraFirma, if you are working with a lot of stories, you could see an error having to do with the Javascript heap (memory allocation). This is easily fixed. Just add an extra parameter when you start your server, thus:

$ node –max-old-space-size=4096 NarraFirmaServer.js

This will increase the amount of memory available above the default of 512 megabytes.

My spreadsheet saves CSV files with a semicolon, but NarraFirma expects a comma

Yes. Spreadsheets choose what delimiter to use for CSV from your location, and at least in Europe, the default is to use a semicolon. As of NarraFirma 1.4.0, you can change the CSV delimited used for import and export. To do this:

  1. Go to the NarraFirma home page for your project.
  2. Click on “Project administration”.
  3. Click on “Project options”.
  4. Choose one of the delimiters in the list (comma, semicolon, tab).
  5. Import or export files as usual. NarraFirma will expect (and write) your chosen delimiter.
New version not loading

If you install a new version of NarraFirma and it doesn’t seem like anything has happened, it might be because your browser has cached the earlier version and is not replacing it. You can delete your browser cache, but you can also do a “hard reload” on just the NarraFirma page. The way to do this is different for every browser, but it’s easy to look up. Just search for “hard reload” or “force reload” and your browser and operating system.

WordPress 500 error

A 500 error in WordPress can be caused by several things (it’s a general error message). The most likely culprit is not having enough memory allocated to WordPress – search for “how to increase the WordPress PHP memory limit.” If that doesn’t help, search for “how to enable WordPress debugging” so you can see more information about what is happening.

If you do see more information about what is happening, and it seems to be a problem specifically with NarraFirma, please let us know by posting an issue on the NarraFirma Github site.


I’d like to install NarraFirma locally to play with it. How should I do that?

We have written some instructions for setting up NarraFirma on your local computer. If you get confused, search for guides to setting up WordPress or Node.js locally – there are many good resources out there for doing this.


Do you offer training courses in the use of NarraFirma?

No, but we’re thinking about it. Right now we are just offering one-on-one coaching. If you are interested in coaching or training, send Cynthia an email at

This is so complicated! How can I get started?

The best way to understand NarraFirma (we think) is to poke around in the example project on the NarraFirma web site. Start with the Planning section (click on the orange box that says “Planning”) and work your way through the links you see there, reading what is on each page. At the end of each page, click the Next button to move on. If you don’t understand a page, click the Help link and read the part that says “What to do here.”

NarraFirma is companion software to the book Working with Stories in Your Community or Organization. Taking a quick look at book excerpts on the web site will help you understand the method NarraFirma supports.

What should I do for my first NarraFirma project?

We recommend that you start small, and if possible, do your first project off-line, in a room, with people. There is something about story work that is hard to understand if you start doing it on-line. You need human contact to really understand how the exchange of stories works. You can use NarraFirma to plan the project and reflect on what you learned, even if the project spans only half a day. Using NarraFirma to “get your feet on the ground” in this way will make it easier to use the software for more complicated projects (involving more people and more technology) later on.

Open source

How can I help with NarraFirma?

You can donate, volunteer, pay us a commission to improve the software to suit your needs, and spread the word.

What license is NarraFirma distributed under?

The General Public License, version 2.0 or later.

Technical details

How does NarraFirma store its data?

NarraFirma uses a triple-store journaling data storage system called “pointrel” (points and relationships), which was developed by my husband Paul Fernhout. It’s similar to RDF. We chose this type of datastore because it’s robust and hard to corrupt. Triples are stored in files (in the node.js version of NarraFirma) or in a MySQL database (in the WordPress version).

Have a question we didn’t answer?

You can ask your question on the GitHub issues list, or send an email to cfkurtz at cfkurtz dot com.