Matt Castley

Lighting & Rendering, Technical Direction, Performance Optimisation, Pipeline & Tools, OpenUSD, Python

All work

2025 · Founder / Developer · python, javascript, SQL

Folkery

personal relationship manager

A journal for the things I want to remember about people, with linked notes, a relationship graph and AI research to help me find the details again.

folkery.app

Loose notes that are hard to lose

The things I want to remember about people rarely fit in a contacts app. “Milhouse can’t have wheat” is useful, but for day to day relationships I’m much more likely to jot it down than I am to fill out the allergy field in a form.

That’s the idea behind Folkery. I can write an ordinary note and mention the people, groups, things or events it concerns. I’d write, “Dropped @Milhouse off with @Rod and @Todd for rehearsal.” The note appears on all three people’s pages. Easy to write and easy to find.

Note taking folkeryusers can reference more than just @people. They can also tag!Attributes, &Groups, $Events and regular old #tags

User experience lessons

A mention points to a person’s ID, not the spelling of their name. If I rename someone, their old notes still point to them. If I delete them, Folkery keeps their last-known name so those notes remain readable.

Getting the typing right was harder. At first, a space ended a mention: @Lisa worked, but @Santa’s Little Helper didn’t. That was partly intentional. I expected people to create contacts through a dialog where they could also assign groups and colours. Feedback was fairly clear: opening a dialog every time interrupted the very thing Folkery was meant to make easy.

So the dialog became optional, and the editor got a proper mention state. I can type a full name, then finish with two spaces, a newline, Escape, or a move of the caret. I’d taken this kind of behaviour for granted in other text boxes.

Connecting the dots

Stable mentions let Folkery gather the notes about a person without searching for their name in every sentence. Their page can show those notes alongside details such as allergies and upcoming events.

The relationship graph uses a different kind of connection. Mentions link notes to people; explicit attributes such as sibling, pet or mentor link people to one another. Two people appearing in the same note does not mean they know each other.

I first gave relationships their own tables, then folded them into typed attributes that point to other people. That lets Santa’s Little Helper have his own page and place in the graph. D3 arranges the graph on screen, but it does not invent the relationships.

AI Assistance

AI Research grew from a familiar frustration: I meet Tim, remember that he works on an indie game called Moonwake, and forget his surname and studio. Folkery can use those clues to suggest an answer with a source I can check. If the evidence points to several Tims, it should leave the question open.

It can also work from my notes. If a note mentions Milhouse’s wheat allergy, Folkery can find it through the mention index and propose adding the allergy to his profile. Suggestions carry their evidence, and nothing is saved until I accept it.

The privacy boundary depends on the task. Notes-only research sends the relevant note text to the model. Web research sends search providers a restricted brief, without raw notes or private contact fields. The mention index handles retrieval; there is no separate embedding system.

This solves a particular problem I have today. It does not rule out broader assistance later, especially around dates or reminders. I want to learn how those features should behave before asking other people to live with and pay for them.

ai: Suggestions include evidence to check and are saved only when accepted.

Building it

I’m Folkery’s sole human contributor. I made the product and technical decisions and wrote parts of the early editor, graph and filtering code myself. Since early 2026, coding agents have helped implement much of the rest.

They’ve made it easier to try ideas, including bad ones. Location inference confidently put people near their friends, so I took it out. Web haptics produced no feedback on the iPhones I tested, so they went too. Folkery itself has been substantially rebuilt since the first SQLite and HTMX prototype.

The current version uses FastAPI, PostgreSQL, server-rendered pages and custom JavaScript where the interactions need it. It’s live on a small scale. I use it daily, and a few friends and beta users are using it. That’s enough use to keep finding things I got wrong, and enough encouragement to keep going.

architecture: Notes and relationships use stable references; external research receives a restricted brief.

Where this might lead

I do have payment plans and AI usage budgeting set up in order to keep the bills predictable and payable, although it is invite-only at the moment. Folkery has never been something I intend to market or turn into anything much more than a personal project. Honestly, I’d be nervous about attracting the wrong kind of customers (particularly with the AI internet research aspect).

While Folkery is still useful for myself and the others using it. I’m beginning to wonder if the most interesting part of the project is actually the editor. What if you could define the kinds of things you write about, and choose which character starts each kind of mention? It’s much broader than the current use case and more or less becomes something like obsidian with types and a simplified UX.

A film critic, for instance, might link actors, films, musicians and songs within a review. A location could have a map; a film could have an IMDb link. I’ve been considering a separate project to explore that idea, using what I’ve learned from Folkery.

I remember what I write

Indicentally, I’ve discovered that whenever I write details down, I’m significantly less likely to forget them. So, at the moment, I’ve found myself writing notes much more than reading them. At times I question how necessary Folkery is but as soon as I don’t write the details down, I’m much more likely to forget them. It feels like my recall tends to improve after I have already intentionally remembered something soon after the initial experience. I’m excited to see how this dynamic evolves as the application develops and my networks of relationships and information mature.