Type something to create a diagram.


Click one to make your own version.

“Theories of change: great idea, but fiddly to draw and revise.”

“Try Theory Maker, the quick, free web app.”

Theory Maker - sketch out your Theory of Change

Theory Maker is a free web app by Steve Powell for making any kind of causal diagram, i.e. a diagram which uses arrows to say what contributes to what. You make the diagrams just by typing the names of the elements (called variables) in a structured way into a (resizeable) window, and you get a live diagram as output which reflects what you type.

In particular, it is optimised for making theories of change, logframes, etc. - special kinds of pragmatic causal theory which are particularly popular at the moment in the world of monitoring and evaluation (M&E).

Theory Maker is most often used by M&E staff for quickly sketching out project theories and evaluation plans. But scientists, especially social scientists, and policy makers use it too.

About Theory Maker

Theory Maker is a free, open-source project. The code for Theory Maker is here and for the web interface is here if you want it. It is under rapid development and run on a shoestring so please don't rely on it being there next week. I plan to keep it running for years, but who knows.

I also restart the server every day or so as I update the code, so make sure you save a copy of your text or save your diagram as a permanent link, so you don't lose your work.

I don't plan ever to charge for Theory Maker or to make money from it directly. It is a project for airing some ideas I have about Theories of Change to accompany a book I am writing.

Plus, Theory Maker is based on a theory of Theories of Change. So when you diagram your theory using Theory Maker, the examples help you to make a real theory, expressed using variables and rules to link them up, not just a nice picture. I have just started to set out some of this theory in the examples provided here. There is a lot more to come.

Please tweet me me your comments, problems and suggestions.


Theory Maker is built on top of Graphviz using Shiny.

For the icons, flaticon.com and font-awesome.

Many people have helped me in developing the app, not limited to: Anamaria Golemac Powell, Esad Bratovi<87>, Simone Ginsburg, Randall Puljek-Shank, many colleagues on LinkedIn, …

Comments, suggestions, bug reports:

Please tweet me or write here.

Do us a favour and tweet about Theory Maker!

Theory Maker 2!

What is new in Theory Maker 2

Theory Maker 2 is a complete rewrite of Theory Maker.

  • It runs about twice as fast (the code is about a quarter the length of the old code) and should be a lot more stable and easier to maintain.
  • Works with other languages: You can now use a whole range of non-English Unicode characters with accents and symbols.
  • You can apply themes just by adding a line like theme=winter, theme=summer, theme=drama, theme=comic or theme=night. More coming!
  • The syntax is simpler and you can tweak your diagram with almost the entire range of Graphviz attributes from label positioning to URLs.
  • You can set 'engine=circle' to get non-hierarchical, more circular layouts

I am also running it on a more powerful server.

Here are the new, somewhat simpler rules for writing Theory Maker diagrams. Or just click on the link “Help and tips” above the text window.

If you saved a diagram in a previous version of Theory Maker

Some things will work fine, but if your diagram had:

  • arrows between groups (“boxes”) of variables,
  • “sentences in variable names. Like. this.”
  • dots to draw arrows,
  • >> to draw arrows,

it may not look right now. Sorry for any inconvenience. You will need to “redraw” your diagram just using spaces to create arrows. Or just write to me at steve@pogol.net and I will fix it for you.

So if you had this:


you can rewrite it as

banana; peach

and if you had this:


you should rewrite it as


If you had this:

A variable name. A sentence to appear as a note. Another sentence.

you can rewrite it like this:

A variable name; note=A sentence to appear as a note///Another sentence.///

Look here for more help.

Theory Maker Features (& Known Bugs)

Main features

  • Human-readable syntax.
  • Two different ways to “draw” lines between variables, so you can use whatever is most convenient.
  • Recognises and makes auto links for standard decimal naming conventions beginning with a number.
  • Boxes for putting variables in groups, for example to mark off different phases, places or participants.
  • Format your variables and boxes with colours, fonts etc.
  • Easy to change diagram direction (left-to-right, top-to-bottom, etc.) and diagram proportions (wider, taller etc.).
  • Easy to add cross links even in mainly hierarchical theories, e.g. from one sub-Outcome to more than one Outcome
  • You can create aliases/labels for your variables to save tiresome retyping
  • Add notes, “calendar bars” and many other bells and whistles
  • Lots of live templates and suggestions for your theory of change, ready for you to edit (don't worry, you aren't editing the originals).
  • Each new diagram gets a unique permanent link which you can bookmark to return to later or send to a friend. Anyone can save changes to this link.

The rules for typing diagrams in Theory Maker are here.

What it doesn't do

No beautifying

Theory Maker doesn't give you much control over the actual layout (like whether something appears at the top or bottom). This tool tries to keep the layout simple, but that doesn't necessarily mean things are where you expect them to be. Don't bother trying to get the nodes and boxes to move about: If you want to tweak a diagram further, you can download the .svg version of it and manipulate it further in Inkscape, Libreoffice Draw or Illustrator.

Remember to save your text

There is no registration or log-in. You just type text. You can type a title for your diagram and click to save a version and bookmark the link. If you don't, don't forget to copy and paste (somewhere safe) the text you typed, because it won't be there next time you visit the site.

Comments, suggestions, bug reports:


Below this line are technical details of interest mostly to myself…

Possible features (Roadmap)

  • Easy alias - just take first matching letters
  • Longer text as footnotes. Maybe everything after first sentence. Or just put first sentence in bold
  • Calendar spreadsheet output
  • Easy sliders for wrap, nodesep, theme….
  • Option to download zip of different versions of diagram, with and without different boxes
  • Timeline - when a date is given, introduce a bar of dates joined by hidden arrows, using rank=same
  • Automatic legend
  • Easy to tweet a link with picture and text (to original version). Use https://dev.twitter.com/cards/types/summary-large-image; also https://dev.twitter.com/cards/overview. Doesn't work at the moment because of timeouts.
  • Release as R package on github.
  • Print permalink on diagram / make it a hyperlink

Missing features to add soonest

  • Wrap at node level, not only global?

Bugs to be fixed

  • delete query string when clicking on gallery etc
  • if name contains “=” it gets interpreted as a global att, so either have to list all atts to check if it exists, or insist that graph-level globals are of form diagram;x=y

Posts to write

Flexible theories of change

Simon Hearn on Impact

Frequently asked questions

Q: How can I use the diagram in a document? A: 1) Select the format you want, click the download button, save the diagram and paste into your document. PDF will provide better quality. 2) Right-click on the diagram to copy or save it - but it will be in .svg format, which you can paste into some document types (like Libreoffice) but not others (Microsoft office).

Q: Help, I made a mistake typing something and got lost! A: trying undoing your changes: Press control-z one or more times on Windows or Linux.

Q: How can I split a line? A: Use /// like this: first line blah///second line blah

Q: How can I end one box without starting another? A: Just put a line with the same number of -s as the box you want to end, and no other text.

Q: What if I want to work on different diagrams at the same time? A: Just open Theory Maker in different browser windows.

Q: I want to make my diagram super fancy and fit our corporate template. A: If you want to tweak a diagram further, you can download the .svg version of it and manipulate it further in a program like Inkscape, Libreoffice Draw or Illustrator.