ChattyChat — a scripted character chat with memory
A playful character chat with authored replies, session memory and an optional peek at the rules behind the conversation. Built with Next.js, React and JavaScript.

About ChattyChat — a scripted character chat with memory
A little memory. A lot of personality.
Lena has a job in Porto, a cat and opinions about clowns. Tell her your name and she can use it later. Mention something you like and she can remember that too, for the current conversation.
ChattyChat is my experiment in giving a scripted character a consistent voice. The chat is warm, gently teasing and sometimes flirtatious. Its personality comes from authored writing, conversation state and rules that decide what to say next.
[IMAGE: Use images/nikocodes-chattychat-cover.png as the featured image. If the page template already displays it above the description, do not insert it again here.]
Try a conversation
Introduce yourself, ask about Lena's work, tell her something you enjoy, or use one of the suggested prompts. A follow-up can refer to a remembered detail or produce a different answer to a repeated question. Selected photos are part of the scripted interaction too.
The default view keeps the conversation in focus. Open Show panel for a look at what Lena remembers, and turn on rule labels to see which matching rule produced a reply. Reset chat + memory starts a fresh conversation.
[LINK: Try ChattyChat — https://chattychat.on-forge.com/]
Written responses, chosen in JavaScript
The application uses Next.js, React and CSS. A separate JavaScript engine combines phrase matching, persona facts, authored response banks, small commands and fallback replies. Some responses include remembered details; others are constructed from templates or command results.
The current engine has 164 keyword rules. It also tracks previous interactions so that repeated questions and recurring topics can influence the next answer. Given the same input and complete conversation state, it produces the same reply and updated state.
Conversation processing happens in the browser. There is no language-model call or chat backend generating replies. The pictures are bundled assets, and the site still loads its application files and images from the host.
What the experiment shows
The interesting part is the connection between writing and behaviour: how a remembered name changes a reply, how a repeated question gets handled, and how much consistency a small set of explicit rules can give a fictional character.
The inspector makes those decisions visible. The engine and interface are separate, so the writing, reply selection and presentation can each be adjusted without treating the whole application as one block.
This is a working prototype. It uses English-language, heuristic matching and has a finite range of responses. Remembered details live only in the current page session; resetting or reloading clears them.



















