Noveletta isn't an AI product, but it does use AI

Keeping AI out of the product and only using it where LLMs provide truly novel value

Aaron KennedyJul 29, 2026

I don't know what it is about "spoiler-safe knowledge base" that makes people think AI; Probably because the public zeitgeist is flooded with a nauseating over indulgence of "AI".

Let's be crystal clear: Noveletta is not a chatbot, not an AI, not an automation tool, not a content generator, etc. There is no little robot behind the curtain doing an impression of your favorite author, generating 7 finger hands from stolen artists' drawings of your favorite character. 

BUT I do use AI, it's just not what you touch. And even if it gathers your wrath or pitted hatred I will tell you exactly how I use it and why so you can decide if that heated vengeance is warranted for yourself with all the information you need to make that decision. 

As of today I use AI for two things: processing novels into structured data as the initial import and helping me code faster to make this. 

NOVELETTA'S AI USES
1
Turning chapters into ledgerized relational data

1,000,000 words of rich story text goes in, structured rows out. Every row stapled to the exact line it came from with metadata to use it. It's bookkeeping (get it? Oof I love a pun). 

2
Helping me write the code

I'm a software engineer, I have a full-time job, another company, and a finite number of Tuesday evenings to code this. So long as I can have confidence in the quality, ethics, control, and security of how AI supports my code, I am going to use it to build better and faster for the communities I care about. Without this, Noveletta doesn't exist sadly. 

An LLM or a 7 nation army of moderators?

Like bad doctors, most products are over prescribing today's hot drug: Large Language Models (LLMs). I'm in the opinion that the majority of AI Tech companies shouldn't be AI companies at all right now and are only adding it for investor attention and buzz. 

That said, credit where credit is due, LLMs can do things that no deterministic software can: imitate human understanding, intent, and use of language. As discussed in my first blog, The Sword, The Pen, and the LLM, there are countless misuses of this technology and generative AI at large but there are genuinely ethical and novel applications of this technology that other applications of traditional software simply can not do. 

Here, I use LLMs as a glorified army of moderators that parse source material into usable structured data that combined can create an incredible knowledge base for novels. From my initial tests and estimates it could take upwards of a thousand hours of human labor per million words to do the same that the workflow I've built can accomplish in 20 minutes. Now it's not perfect, far from it, but it's designed to be a starting point, not the finish line.

Here's the actual assembly line. Tap a stage and I'll tell you whether a model is anywhere in the room. Now this is a bit technical but I'd rather give you too much than too little!

just code and a guyrobot hererobot here, on a leash

This is the step that decides identity: characters, places, monsters, spells, etc. This roster of entities is the step everything else depends on. I use LLMs and traditional programming paired to do this.

Discover — model

Read the chapter cold and in isolation. List every entity found, its aliases as they appear in this chapter, and a verbatim sentence proving it exists. Also flag ambiguity it can’t resolve: if “he” could be two people, say so rather than guessing.

Match — mostly not a model

Take each name to the database. High-confidence hits are matched programmatically to existing records. Clear misses become new entities by prescription. Only the ambiguous middle band that requires human context understanding to place gets handed to a model, and it gets shown the candidates to compare against the source material.

Check — code first, then a cheap model

Plain code, no judgment: every alias must literally appear in the chapter text or it’s deleted. Every evidence sentence must appear, or be repairable to a real sentence with 70% word overlap, or the entity is thrown out as low conviction. Then a fast model sweeps for what the first two steps missed, and if it flags a match as wrong that entity is demoted to “new” before anything is written because a wrong match doesn’t just add a bad row, it contaminates a good one.

What comes out is a locked roster of who, what, where, is in the chapter. Every later stage works off this.

Three stages out of seven use LLMs in them, and in all three the model proposes while plain code cleans, validates, and structures. This is how I'm using LLMs to create a data structure from raw novels and it's something that isn't possible with traditional programming or thousands of hours of human moderation. 

The model's job is to pull out information, not create it. This is a unique strength of LLMs that I view powerful when respecting the use and legal rights of the author appropriately. 

So where's the human? 🙋

Upstream, mostly. To be clear, the LLM only creates the starting point so any edits, changes or errors reported after are all human run!

A human aka me, so far, defines the ontology before any of this runs. That's not review, it's the rulebook, and every single thing the model does downstream is the consequence of a human decision about what counts. 

Reader feedback comes back in through an admin queue, edits made quickly to resolve flagged information, and then if learnings need to be made for the 'rulebook' those changes update the ontology for the LLM when processing the next chapter. 

I'm working to expand this even further, allowing for authors to freely edit any text in Noveletta for their work to accurately be represented in the way they desire as easily as possible. This will include promoting moderators from their community, adding their publishing teams, and more so they all have flawless control over the story at all times. 

Renaissance Italy Invented my Data Model

Fun fact: double-entry bookkeeping was written down in 1494 by a Franciscan friar named Luca Pacioli, who also taught math to Leonardo da Vinci. His big idea was that no number gets written down without a matching number that explains it. Five hundred years later, accountants still do it! This created the modern day ledger and subsequent ledgerized datamodel and computation theory, I am just applying this to story telling. 

So a chapter goes in as prose. What comes out is rows of changes: entities, relationships, events, state changes, quotes. Entity and relationship rows have to hand over their predecessor and receipt (location in text) proving the change occured, and code checks that the sentence is really in there.

And every row carries the chapter it came from and pressed that change on top of its previous record creating a ledger or information as the store moves. That's the stamp that does the spoiler work: it's how Noveletta can show you a character exactly as of chapter 3.14 and not further. A summary can't do that, because a summary is static composition of all known information at once regardless of progress. My ledger is a chapter by chapter sequence of knowledge as it unfolds. 

Poke a row. It'll show you its receipt.

A passage I made up so I don't have to borrow anyone's

The common room had gone quiet again, and the innkeeper set down the glass she had been drying.

“Third time this week,” she said, to nobody in particular.

Out past the road, something in the tall grass was moving, and it was not a person.

She reached for the frying pan without looking at it.

What the robot files
characterThe innkeeperNew entity. Aliases verified against the text.verbatim sentence ✓ch. 1.05
locationThe common roomNew entity, matched to the inn.verbatim sentence ✓ch. 1.05
creatureSomething in the grassUnresolved. Explicitly not a person.verbatim sentence ✓ch. 1.05
itemFrying panNew entity. Held as a weapon.verbatim sentence ✓ch. 1.05
relationinnkeeper → frying panTyped relationship: reaches for, without looking.verbatim sentence ✓ch. 1.05
quoteThe innkeeper“Third time this week.” Verbatim, attributed, scored.verbatim sentence ✓ch. 1.05
state changeThe innkeeperAlert. Derived from the chapter, not from one line.chapter stamp onlych. 1.05
appearanceThe innkeeperCentral to the scene.chapter stamp onlych. 1.05
42
rows per chapter for one character alone, across 63 ingested chapters — peaking at 112
every row
carries the chapter it came from. That stamp is the spoiler mechanism
no column
in the chapters table for the chapter text. The prose is never stored

Entity and relationship rows show their proof sentence. State changes, appearances, attributes and stats carry the chapter stamp and no sentence — they're derived from the whole chapter, not one line of it.

Look at what's not in that table: writing. author's cadence, authors voice. What's kept verbatim is kept on purpose and attributed to the author. Only where a claim needs backing, the proof sentence and quoted dialogue. Everything else is flat, factual, deliberately voiceless (more accurately my voice), closer to a shipping manifest than to prose.

This ledgerized form allows for not just spoiler safety but actionable compute for everything from series statistics to building an ecosystem for authors and their fans because it gives the story a data language to connect with our technology world. 

So why not just... humans? 🐜

I've wanted to build this for over a decade and moderator time was always my limitation. Fan wikis are one of the greatest volunteer accomplishments of the internet and I will defend them at all cost. That's why I didn't build this to exclude them but to bridge the gap to where they can be effectively valuable for their limited volunteer time.

But a wiki article is built for a human to read top to bottom. What Noveletta needs is a different animal entirely: every fact as a row carrying its proof stamped with a chapter for every single chapter so the spoiler cutoff actually holds instead of politely hoping. Same love. Wildly different labor, exponentially more.

For scale: the series that started this whole project is past 13 million words. That's roughly twenty-two War and Peace novels back to back in one connected world. As a dyslexic person, I have been reading this nonstop for 4 years and never been within 25% of the most recent chapter of the author's current releases.

Now imagine hand-ledgering it. The Wandering Inn is like if all of Brandon Sanderson's Cosmere combined with all Sarah J Maas's series into a single magnificently woven massive world with over 3000 named characters with lines...THAT'S HOW LONG IT IS! Now imagine trying to catalogue all of that and keep your 64 year old mother from forgetting characters or getting spoiled.

Grab the slider. I've been generous to the humans capabilities and it's still a jarring comparison.

10obsessed volunteers, five hours a week each, no burnout, no drama
375,000
rows to write, one at a time, by hand
25,000 hrs
of careful human labor, cited line by line
9.6 years
just to catch up to today
+1,000
new chapters published while you worked

A dedicated handful. You'd still be years behind on your first day, and the serial gains ground on you every week you show up. Sisyphus, but with citation formatting.

Argue with my assumptions, please: ~1,500 chapters, ~250 ledger rows each, four minutes per row to find it, phrase it, and cite the line. And the serial keeps publishing while you work, because Pirateaba is unstoppable.

The sheer volume of text to data is simultaneously intoxicating and nauseating to me as a data and fantasy nerd. So we can try to assemble an army of moderators for each series or use my LLM pipeline to seed the data and let them spend their time reading their cherished series aloud to their kids. 

A model doing the first pass is relentlessly consistent, works at 3am, and never gets bored on chapter 812 which is precisely what a first pass should be. Then us lovely fleshy human shows up, argues with the 2% it got wrong, and fix it in seconds instead of years.

That's the real reason AI is in this pipeline at all. Not because it's clever. Because the alternative isn't a slower Noveletta, it's no Noveletta because I have no interest in building a 7 nation army of moderators stolen away from reading time with their kids. 

Job two: writing code, and I am extremely unromantic about it 🔧

The other place I use LLMs around here is my editor and command line. 

Context: I was building neural networks back in the pre-GPT world, when you stacked the thing up layer by layer, hand-tuned it like a carburetor, and threw a small party if it could reliably tell a handwritten 4 from a 9. (It couldn't. They look the same. This is a documented grudge of the entire field.) I build predictive nutraceutical neural networks for doctors to prescribe nutrient regimes to athletes off of their blood biomarkers? Pretty neat! (Sorry self brag)

That era left me with a nose for where this technology is genuinely novel, where it's a very fast intern with no memory and unearned confidence, where it is actively harmful, and where it's completely unnecessary. Now we're flooded with a sea of AI products where AI is doing everything from stealing artists' work to solving cancer, and the bombardment of them makes it hard to perceive what's actually valuable vs what's a crock.

Tirade about the industry aside, what it is doing for software development is truly mind-boggling. Even a year ago, I could only trust it with about 70% of tasks and needed to review everything painstakingly; now it's 98% accurate, and catching the missing 2% is foolproof. 

What it is, for me, is leverage. I have a full-time job while also keeping Outway alive, my land conservation software (yes, the company a Canadian sock brand once bought the .com out from under me😭). Noveletta happens in the seams between those as an effort for me to break free of the VC rat race and build something for the people and space I cherish that can stay 100% employee owned.

Handing Claude the mechanical programming while I design the system is the only reason those seams add up to a product instead of a staying on the idea napkin.

It is not, however, my co-founder. Here's the actual division of labor as I see it.

Take it, it’s yours

Mechanical, verifiable, boring. If a senior engineer sighs before typing it, the robot can keep it.

migrationsCRUD scaffoldingtest fixturestype definitionsmechanical refactorsaccessibility passesone-off scriptslog spelunking
Only with me driving

It can draft, argue, and catch my mistakes. I hold the wheel and I understand every line that lands.

the ledger schemaextraction promptschapter-cutoff logicquery performancedata model changesanything touching author terms
Absolutely not

Judgment, taste, design, security and accountability. Outsourcing these outright dangerous.

purpose and peoplesecurity guardrailsauthors understandcanon judgment callslegal protectionthese blog posts

Noveletta needs AI to code and import stories but that is all

That's it, you now have all the information you need to make an informed choice on how you feel about how Noveletta views and uses AI. This is built for people, by a person, and the LLMs are only invited where they unlock something that is otherwise infeasible. If that's still past your comfort line, I respect it, and I'm glad you heard the reasoning before deciding.

If you've been wronged by AI and its mistreatment of creatives, take a look at my other article because how you feel is completely justified, and I don't shy away from that conflict. 

If you want the ethics half of thisSword, Pen, or AI — is a tool ever the villain?The guardrails, why they're structural instead of vibes, and the one that makes the others mean anything.
Prefer to read by candlelight?

Noveletta · a spoiler-safe knowledge base for web serials · built solo, mostly at night.

Follow my workshop log

Here’s a running journal of my craft as I build Noveletta. The good, the bad, and the ugly of all the little unique literary lessons, design decisions, deep dives, technical challenges, and tiny victories.

Feedback