History in Tinderbox

History in Tinderbox: what is a good approach to linking a set of entrepreneurs to the multiple companies they founded and owned, not all people participated in every company. Is it better to set up an attribute to store the names of the “Officers and Principal Stockholders,” where there is a separate note for each person, or to create links between companies and person notes. If links, rather than manually creating links, they could be automatically created when a name is added to the attribute (a set) for the officers of each company. To make sure there is no typing errors, it would be best to create a note for each of those people when added to a company note’s Officers attribute (I recollect M. Becker has demonstrated the code in a video to do this, which I’ll hunt down.). Each company could have its own parent note, but since the officers change over time, should the initial set of offices be stored in a child note of the founding of the company or should the role each person played in the company be a child note of the person with links to the company. FYI: these companies were founded in the 19 th century.
One approach I’ve considered is to have notes, with a prototype of “episodes” or “activities,” which link the company to various activities, such as founding a company, but also includes links to the people involved. Thus episode notes tie the two types of notes together and thus people and entities are not directly linked except through episode noted. I don’t know if this is the best approach. Also whether it is best to actually link episode notes to the other notes, people or entities, or just add them to an attribute list for entities involved in the activity.

That is a great question and one that I’ve worked on extensively. You’ll find part of the answer that I’ve landed on in the indexing section of this meetup: Tinderbox Meetup Saturday 10 February 24: ExportFileName, Highlighting, Creating an Index, but that is just a snapshot. I’ve been working on this exact question for the last 3 years, as the answer to it is foundational to nearly all my work.


A critical insight that I landed on was that I must separate my writing from the elements that are contributing to my writing, e.g, “my writing on the history of a company and its products” from “the people, companies, events, artifacts (images, videos, reports, products, case studies, use cases, terminology, regulations, specifications, technologies, applications, data breaches, lawsuits…), etc.” that are foundational to what I’m writing about.

The way I’ve gone about this is to organize my Tinderbox files into three sections:

  1. My writings
  2. Resrouces (i.e., atomics notes)
  3. Backstage (all the functional elements of Tinderbox… prototypes, templates, stamps, functions, etc.).


To keep it simple.
I’ve created prototypes for the key elements, Person, pEntity, pMedia, pTerm, pRegualtion, pSpecification, pCategory, pTheme, pEvent, pLocation, etc. I use a built-in version of the Person and Reference prototype, i.e., I don’t add the “p” prefix since Tinderbox has several underlying triggers related to these named prototypes. For all my other prototypes, I add a “p” to make the names unique. I also keep them singular so that I won’t make a mistake when referencing to them in action code. I will use a user-generated attribute, $Type (a set) to make subclasses, e.g., video, image, audio, etc., or $Function (a set), e.g., officer, directors, staff, investor, etc., or $Relationship, e.g., parent, subsidiary, competition, etc. Honestly, I more often default to using $Type and have a variety of different sub-classes. I’ve toyed with converting $Type to a dictionary, but I’ve yet to find the need.


I am VERY liberal with attributes, some of my files have over 500. Over time, I’ve landed on consistently using about 10 across all my projects. I’ve not bothered to clean out the dormant ones. When I find that there is one that is serving a duplicate function, I will pick the name I want to stick with, merge the values between the two, and delete the one I don’t want anymore.

Action Code

As I demonstrate in that above-referenced video and in several others, I use action code to create new notes based on the values I place in attributes.The above video is a very simple example, I have a VERY nuanced auto-note creation process (one function that can trigger off of any attribute). The action code also links the notes (directionally, inbound vs. outbound, in a way that makes more sense to me) and names the links. I then have Tinderbox, which is based on the direction and name of the links to perform a variety of other functions. For instance, if I’m organizing an event, I’ll use a prototype called “pSpeaker.” I have the attribute “$Person” since “$People” is a string already in use by Tinderbox. When I put the name in $Person, e.g., Tom Norris, Tinderbox will automatically create the Tom Norris in /Resources Folder/People Folder/" and link it to this speaker note. The speaker note., e.g., “Spk- Tom Norris Event A”, will pull the values I want from the Tom Norris note into the “Spk- Tom Norris” note. This value will be used for my show agenda, run of the show, emailing the speakers, etc.

I have about 10 stamps and around 20 templates that I use regularly, and about 50~100 for specialized circumstances,

Templates and Posters

I use templates to help me organize my efforts. These templates produce individual profile pages (which may include an image), company profile pages (which may include a logo), class announcements (which may include video). They may also generate bulleted lists from the notes, SWOT analysis tables, generate temporary calculations to display, or any number of outputs that I need to either 1) extend the views of Tinderbox so that I can see my data in different ways or 2) contribute to my work while publishing it to email, excel, word, google docs, pdfs, HTML, speaker notes, etc.


I mostly use agents for my output. I use agents to create glossaries and indexes of terms, people regulations, etc. Each agent gets their own template, and thus, I can create any output I want.

Other times, I’ll use an agent to quickly mass-update prototypes I’ve evolved, fix typos, find notes in my writing that have a specific pattern so that I can fix that pattern throughout an entire piece, etc.

Notes about People

Working with People is a hard one; as you point out, people move in and out of an $Entity, and they may have relationships with several organizations or play several roles within one organization. I handle this by using a pRole prototype. I then add a child note to each Person, NOT THE ENTITY (since the role is related to the person, not the entity). I create a role note for every role the person plays across all the entities they interact with, e.g., officer, director, investor, father, son, student, etc. This way, I can also see how the person has evolved over time and what all their relationships are. These roles link to the Person and the Entity or to other people and events. The roles have start dates, end title, titles, and status (active, inactive). When they are no longer part of the organization I flag them as inactive. I will also add detailed notes to people, like their short and long bios.

My Writing

All of this is the foundation of my writing. With all the above in place, I can then start writing my narratives. I can happily create new atomic notes (i.e., resources like people and terms) or link to existing ones, all within the context of my writing. I can tear off linked notes and edit them while my still in the context of my related note. I break up the sections of my writing into several sub-notes and have Tinderbox reassemble them as needed; that way I have the flexibility of having long prose, bulleted lists, tables, images, etc. within my writing; my main templates often trigger off the $Type and $Protypte, to call sub-templates specialized for the context, as well as several booleans (e.g., $IsNoShowTitle, $IsNoShowChild, $IsNoShowText, $IsBulletChildren). This gives me greater control to suppress, include, or display the content in my writing in a structure that works for the context of the moment,

This may all sound complex, but it is really not. Once you have a structure that works for you, the structure quickly falls into the background, and you can focus on your writing, while Tinderbox automatically takes care of the heavy lifting in the background. As your thoughts, ideas, needs, processes, and approaches evolve, you can incrementally formalize your work to suit your personal style and needs.

What I’ve Learned Along the Way

To make all this work and flow for me, I’ve taken care to learn along the way. I’ve picked up how to,

  • think
  • take-notes
  • highlight
  • transform, transclude, and transmute data
  • write (thoughts, prose, and code)
  • organize (thoughts, prose, and code)
  • build a personalized system that works for me (and others)
  • reduce anxiety
  • be patient
  • read
  • listen
  • let things evolve
  • rely on backups
  • leverage the community
  • appreciate the diversity of other work, and yet find the commonality and golden threads that are consistent throughout
  • learn
  • teach
  • citation management
  • contribute and make a difference
  • see things differently
  • do things differently
  • let go of the process when it is not working for me (especially when on deadlines) and come back to it
  • use/apply RegEx
  • use/apply HTML
  • use/apply CSS
  • work with media formats and rendering tools (images, audio, video)
  • work with several publishing and output tools
  • leverage other tolls (get the best out of each tool, even if there are overlaps)
  • have gratitude
  • and more

I am so very grateful for this tool and all that this community has given me.

Good luck with your project. Let me know if you’d like to connect and discuss any of the above.


My view is somewhat different.

The First Question: to what sort of question are you seeking answers? You might not know this yet, but it’s central.

The First Answer: don’t worry too much about getting this right. You can reorganize later. Tinderbox Is Not A Database. (TINAD!)

Tip: Whatever structure you choose first, take a moment to think about prototypes. It helps a bit to have good prototypes — not unreasonably specific, but also not overly broad.

Agreed. I, too, started this way. After serval starts and stops and tons of incremental formalization I landed on the structure above, which works for me.

My “notes” are often in the resources folder I create and then I use these to produce my writings in my “writing/projects” folder.

I’ve found it VERY helpful to work on multiple projects in one Tinderbox file, that way the projects and can leverage all the various “notes” that I include in my “Resources Folder,” “resources” being a term for atomic reusable, refined notes that I can draw inspiration from or use verbatim.

Yes, this can be the case. For me, especially for notes like “people,” “companies,” “Terms,” etc., it can take me several projects to refine the notes. For example, if I’m working on 5 or 6 different conferences, I like working on them all in one Tinderbox file. That way I can track all the different events that I have the same person speaking. I can see the link. Look at the different session abstracts they’ve provided me, etc. I tried having a TBX file per event, and I found that I was duplicating people across multiple files, duplicating terms, and losing the incremental edit that I was making on them. All my hard work was getting siloed into the files, which made readability difficult.

I typically work with 4 Tinderboxes.

  1. My Teaching Tinderbox: This one holds all the classes I teach as well as the drafts of the textbooks and teaching artifacts I use for both the classes and textbooks.
  2. My work and industry thought-leadership file: This holds my projects, sales pipeline, social media posts, and thought-leadership articles
  3. My trade association work: This holds all the work I’m doing for the Mobile Ecosystem Forum and the ID & Data working group that I chair, including working group people, meeting notes, and the events I organize for the working group.
  4. My doctorate dissertation: this holds all my research and every draft of my dissertation.

Across these 4 files I have about 50K notes.

There is some duplication that I need to make between these three files. as people, companies, and terms do cross over between the files…but I’ve found several ways to manage this. I’d love it if I could find a way to have a Tinderbox that holds the common repository that I could draw from for my individual files (essentially self-collaboration), but I think this would be architecturally difficult to code and manage.