hello
ai-assistant-nova is a personal AI assistant web application. Its product intent is to give one person â its own creator â a small, self-built assistant named NOVA that they can open, talk to, and tinker with. NOVA presents itself as a helpful, intelligent, friendly, and professional personal assistant that helps with programming, learning, brainstorming, problem-solving, and everyday questions.
The audience is a single hobbyist user at home: curious, playful, and forgiving of the fact that NOVA's "AI brain" is a small set of canned keyword replies rather than a real language model. The product's honest truth is that it is a toy with personality, and the experience is designed around that truth â a tactile, kinetic chat stage where the interface itself responds to the cursor and where NOVA's replies physically arrive rather than simply appear.
The application is delivered as a single first-party web surface, the Landing page, which contains both the anonymous first impression of NOVA and the session chat experience. No account, sign-in, or identity establishment is required to use it.
NOVA is a browser-delivered chat application with one page. The page opens on a dark, full-viewport stage: NOVA's oversized kinetic wordmark anchors the top-left, a single quiet line of the assistant's personality description runs beneath it, and the conversation occupies a centred column. The chat input is a full-width bar docked to the bottom edge of the viewport and never scrolls away.
The single active human actor is the AI Assistant User. They open the assistant, read its identity and personality, type messages into the chat input, and read NOVA's replies in the conversation view. Conversation memory is kept for the session: every prior user and assistant message is stored and re-displayed in the chat, and the interface refreshes after each exchange so the new messages appear.
NOVA's replies are produced by a keyword-matching response function, not by language-model inference. It recognizes greetings, questions about its own name, the word "python", and questions about who created it; anything else receives a default fallback reply stating that it is still learning and that its creator will upgrade its AI brain soon. Conversation memory is session-scoped only â no cross-session persistence is specified or provided.
Actors
Ownership and exclusions
NOVA is delivered as one first-party web page that a person opens directly in a browser. There is no gate in front of it: the page is anonymously reachable, and the chat experience lives on that same page rather than behind a separate entry step. Because conversation memory is session-scoped and no durable, actor-specific state must be privately owned or resumed across visits, no application-owned identity is established and no protected destination exists.
The current delivery horizon covers exactly what the source defines: the NOVA identity and personality presentation, the session chat with keyword-based replies, session-scoped conversation memory, and the interface refresh after each exchange. The fallback reply's statement that "my creator will upgrade my AI brain soon" is a message NOVA says to the user â it is not itself a current capability, and no upgrade, model integration, or training feature is in scope now.
The authoritative content source is the user-supplied Streamlit script defining the NOVA personal AI assistant. Its verified product facts are preserved below.
Assistant identity
NOVAMy AI Assistant\xf0\x9f\xa4\x96Your personal AI assistantSystem personality text (displayed verbatim in the interface)
You are NOVA, a personal AI assistant. You are helpful, intelligent, friendly, and professional. You help with programming, learning, brainstorming, problem-solving, and everyday questions.
Keyword response rules (evaluated against the lowercased user input, in order)
| Trigger | Reply |
|---|---|
"hello" or "hi" contained in the input | Hello! I'm NOVA. How can I help you? |
"your name" contained in the input | My name is NOVA, your personal AI assistant. |
"python" contained in the input | Python is a programming language used in AI, automation, and software development. |
"who created you" contained in the input | You are developing me as your own personal AI project! |
| Anything else (default fallback) | That's interesting! I'm still learning how to respond to more questions. My creator will upgrade my AI brain soon. |
Chat input placeholder: Message your AI...
Session memory record shape: each stored message is a record with a role (user or assistant) and a content string.
The single page of the product. It is anonymously reachable and contains both the first impression of NOVA and the complete session chat experience. There is no separate entry step, no protected state, and no navigation away.
Information and state
Your personal AI assistant.role and content.Message your AI....Ask me about Python, or just say hello.Primary actions
Supporting actions
Domain entities
role (user or assistant) and content.NOVA, the caption, and the personality description text.Component responsibilities
Message your AI... and the solid acid send block.States
Ask me about Python, or just say hello.hello or hi; NOVA replies Hello! I'm NOVA. How can I help you?your name; NOVA replies My name is NOVA, your personal AI assistant.python; NOVA replies Python is a programming language used in AI, automation, and software development.who created you; NOVA replies You are developing me as your own personal AI project!That's interesting! I'm still learning how to respond to more questions. My creator will upgrade my AI brain soon.FR-1 â Open the NOVA assistant As an AI Assistant User, I should open the assistant and immediately see NOVA presented as my own personal AI assistant, so that I know what I am talking to.
Your personal AI assistant, and the personality description text.FR-2 â See NOVA's identity and personality As an AI Assistant User, I should see NOVA's name, its robot icon, the caption describing it as my personal AI assistant, and its personality description, so that I understand what it is for.
NOVA with the robot icon \xf0\x9f\xa4\x96, the caption Your personal AI assistant, and the personality text stating that NOVA is helpful, intelligent, friendly, and professional and helps with programming, learning, brainstorming, problem-solving, and everyday questions.FR-3 â Send a chat message As an AI Assistant User, I should type a message into the chat input and send it, so that I can talk to NOVA.
Message your AI..., and submits. The submitted text is stored as a message with role user and the typed content.FR-4 â Receive a greeting reply As an AI Assistant User, I should get a greeting reply when I say hello or hi, so that the conversation starts naturally.
hello or hi. NOVA replies Hello! I'm NOVA. How can I help you?, stored as a message with role assistant.FR-5 â Ask NOVA its name As an AI Assistant User, I should be able to ask NOVA its name and get its name back, so that I can confirm who I am talking to.
your name. NOVA replies My name is NOVA, your personal AI assistant.FR-6 â Ask about Python As an AI Assistant User, I should be able to ask about Python and get an explanation, so that NOVA helps with programming topics.
python. NOVA replies Python is a programming language used in AI, automation, and software development.FR-7 â Ask who created NOVA As an AI Assistant User, I should be able to ask who created NOVA and get an answer, so that the assistant acknowledges that I am building it.
who created you. NOVA replies You are developing me as your own personal AI project!FR-8 â Receive the fallback reply for unrecognized input As an AI Assistant User, I should get a clear, in-character reply when NOVA does not recognize my message, so that the conversation continues instead of failing.
That's interesting! I'm still learning how to respond to more questions. My creator will upgrade my AI brain soon.FR-9 â Keep conversation memory for the session As an AI Assistant User, I should see my earlier messages and NOVA's earlier replies still in the conversation, so that the exchange reads as one continuous conversation.
FR-10 â Refresh the interface after each exchange As an AI Assistant User, I should see the new messages appear immediately after I send, so that the conversation stays current.
FR-11 â Read the conversation as two distinct voices As an AI Assistant User, I should be able to tell my messages apart from NOVA's at a glance, so that I can follow the conversation.
user / assistant) in stored records and renders each under its own role.Product context. This is the single active human in the product, and the person the assistant belongs to. They are building NOVA as their own personal AI project and use it at home, on their own, in a browser. They know it is a keyword chatbot rather than a frontier model, and they are comfortable with that â the pleasure is in having made it and in watching it respond.
Primary goal. Hold a conversation with NOVA about programming, learning, brainstorming, problem-solving, or everyday questions, and receive a relevant reply while the conversation history stays visible for the session.
Distinct accepted responsibilities.
Relevant inputs and decisions.
Message your AI....Interactions with other accepted participants. The AI Assistant User's only counterparty is NOVA itself, which answers through the keyword response engine. There is no other human participant, no administrator, and no external service the user interacts with.
Observable success. The user's message appears in the conversation, NOVA's reply appears beneath it, and the full exchange remains visible in the conversation column for the rest of the session.
Constraints carried from the source. The user's experience is bounded by the fact that NOVA's replies are canned keyword matches, not inference, and that conversation memory lasts only for the session.
Your personal AI assistant sits with it, and the personality description runs as a single quiet line beneath, followed by a hairline rule.Ask me about Python, or just say hello.Message your AI... and a solid acid send block on the right.user, and the user's message appears in the conversation column immediately, marked with a coral-red left rule.assistant and appears in the conversation column, sliding up 24px and fading in over 420ms.hello or hi, the phrase your name, the word python, or the phrase who created you.Hello! I'm NOVA. How can I help you?My name is NOVA, your personal AI assistant.Python is a programming language used in AI, automation, and software development.You are developing me as your own personal AI project!That's interesting! I'm still learning how to respond to more questions. My creator will upgrade my AI brain soon.The creative direction is authoritative for this section. Its muse is Yugo Nakamura, and its headline idea is interaction as delight â NOVA answers the cursor, not a template. The interface itself is the playground: a dark full-viewport stage where motion carries the personality, and where the honest limitation of a keyword bot becomes the point rather than something to disguise.
Color tokens (dark mode)
| Role | Hex | Use |
|---|---|---|
| Background | #0E0E11 | Stark near-black ground for the full-viewport stage |
| Surface | #1A1A1F | Barely-lifted charcoal panels |
| Hairline | #2A2A31 | 1px borders and rules |
| Text | #F4F4F0 | Warm off-white body and heading text â never pure white |
| Primary | #F2F24B | Hot acid-yellow: NOVA's wordmark, the send affordance, the cursor-following highlight |
| Accent | #FF4D3D | Coral-red: the user's own messages and the one moment of error/fallback |
| Muted | #7A7A85 | The personality line and micro-labels |
Proportion: roughly 85% dark ground, 10% acid, 5% coral.
Typography
-0.03em tracking. Display sizes are intentionally oversized so the name reads as kinetic type rather than a page title.clamp(56px, 12vw, 128px). Chat body: 17px. Micro-labels: 12px uppercase with 0.14em tracking.Shape language
Minimal chrome on a full-viewport playground. Message blocks are hard-edged rectangles with no large radii â the motion carries the softness. 1px hairlines and a thin 2px acid underline are the only ornament. The single soft element is the cursor-following highlight blob, which is a blurred radial, not a card style.
Layout
One full-viewport stage. NOVA's wordmark sits top-left as the anchor; the personality line runs as a single quiet line beneath it; the conversation occupies a centred column of max-width 720px. The chat input is pinned to the bottom of the viewport as a full-width bar â the last line of the page, never scrolling away. No sidebar, no settings panel, no dashboard tiles.
Imagery
No photography, no illustration, no 3D props. The only imagery is generative: a faint field of short vertical strokes on the dark ground, drawn with CSS repeating-linear-gradient, that subtly parallaxes against the cursor. The interface is the image.
Explicitly avoided: centred headline + subtext + blue button heroes; gradient-blob backgrounds and glassmorphism cards; Bootstrap blue or indigo (#0057FF, #2563EB, #6366F1) anywhere; Inter, Roboto, Arial, Poppins, or system-ui for any text; a rounded floating chat pill in the middle of the screen; sidebars, settings panels, or dashboard tiles; stock photography, character illustration, or 3D props; bouncy spring easing or particles that obscure text.
Readability constraint. Headlines, the wordmark, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no other element covering any part of them. Decoration and motion may bleed, crop, or overlap freely as the direction asks, provided they cover no readable text or control.
The stage, not the page. The first screen is a dark full-viewport stage rather than a centred SaaS hero. NOVA is set as oversized kinetic type at clamp(56px, 12vw, 128px), flush left at the top of the stage, with the acid-yellow wordmark bleeding slightly past the left margin so it reads as a poster rather than a page title. At 1280px it bleeds; at 375px the clamp keeps it fully inside the viewport.
Beneath the wordmark, a single 17px line of the personality description runs in muted grey, followed by a hairline rule. The centre of the stage holds the empty conversation state: a small acid-yellow caret blinking inside the 720px column, with the line Ask me about Python, or just say hello. The chat input bar is docked to the bottom edge, full-width, with the send action as a solid acid block on the right. A faint vertical-stroke field sits behind everything and drifts a few pixels with the cursor.
The concept recomposes only accepted content and controls: NOVA's name, the caption, the personality line, the empty-conversation prompt, the message list, and the chat input. It introduces no new behavior, page, or destination.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief
cubic-bezier(0.16, 1, 0.3, 1) for NOVA's replies â elastic, not bouncy; a staggered 2â4px letter ripple on the wordmark; a typing indicator of three dots that compress and stretch rather than pulse; user messages arriving instantly with a coral-red left rule.#0E0E11 ground; the acid wordmark bleeding slightly past the left margin; the muted personality line and hairline rule beneath it; the blinking acid caret and Ask me about Python, or just say hello. in the centre column; the full-width input bar docked at the bottom with its solid acid send block.NFR-1 â Keyword response behavior (explicit). NOVA's replies are produced by keyword matching against the lowercased user input, not by language-model inference. The rules are evaluated in order: greeting, name, python, creator, then the default fallback. Rationale: this is an explicit hard constraint in the authoritative source.
NFR-2 â Session-scoped memory only (explicit). Conversation memory lives for the session only. No cross-session persistence, storage, or restoration is specified or provided. Rationale: explicit hard constraint in the authoritative source.
NFR-3 â Anonymous access (explicit). The Landing page is reachable without an account, sign-in, or any identity step. No protected state exists. Rationale: the accepted access requirement for the single page is none, and no durable actor-specific state requires ownership.
NFR-4 â Single-page delivery (explicit). The product is delivered as one first-party page containing both the first impression and the chat experience. No additional navigable destinations, sidebars, or settings panels exist. Rationale: the accepted page contract contains exactly one page.
NFR-5 â Readability across viewports (explicit). Readable text and controls remain whole and inside the viewport and their container at 375px, 768px, and 1280px. The wordmark uses clamp(56px, 12vw, 128px) so it bleeds at wide viewports while staying fully inside at narrow ones. Rationale: explicit creative-direction constraint.
NFR-6 â Reduced-motion support (explicit). All motion respects prefers-reduced-motion by becoming a simple fade, leaving a fully usable static arrangement. Rationale: explicit creative-direction constraint.
NFR-7 â No external AI provider (explicit). No external model provider, API key, or inference service is used. Rationale: the source defines a self-contained keyword function and states the AI brain will be upgraded later; no provider integration is accepted now.
docker-compose.yml running the frontend and the backend as the runnable services.No Kubernetes deployment is required for the current scope.
Assumptions
\xf0\x9f\xa4\x96 accompanies the NOVA name in the interface, as the source sets it as the page icon and title prefix.Constraints
role (user or assistant) and a content string.That's interesting! I'm still learning how to respond to more questions. My creator will upgrade my AI brain soon.
Your personal AI assistant
You are NOVA, a personal AI assistant. You are helpful, intelligent, friendly, and professional. You help with programming, learning, brainstorming, problem-solving, and everyday questions.
hello
Hello! I'm NOVA. How can I help you?
what is python?
Python is a programming language used in AI, automation, and software development.

Your personal AI assistant
You are NOVA, a personal AI assistant. You are helpful, intelligent, friendly, and professional. You help with programming, learning, brainstorming, problem-solving, and everyday questions.
hello
Hello! I'm NOVA. How can I help you?
what is python?
Python is a programming language used in AI, automation, and software development.
No comments yet. Be the first!