Every feature, improvement, and fix shipped to OmniAssist โ in reverse chronological order.
Projects & Pro Workspaces: guided task starters, source-backed research, document comparison, editable outputs, and original visual creation.
Signed-in users can now keep related conversations, documents, research briefs, editable outputs, and visual assets together in a personal Project. Start a new chat from a Project to keep the work connected.
Pro and Enterprise users can provide up to three direct public source URLs and receive a research brief that links claims to the supplied sources, includes available publication dates, and explains evidence limits. Healthcare, Legal, and Finance research carries clear general-information boundaries.
Pro and Enterprise users can add PDF, DOCX, text, CSV, JSON, and Markdown documents to a Project, ask source-aware questions, and compare selected documents with document-labelled citations.
Turn the latest chat answer or research brief into a saved executive brief, checklist, report, or action plan. Deliverables remain editable inside the Project workspace.
Pro and Enterprise users can generate original visual assets from Business and Creative & Marketing chats and keep the result in a selected Project.
Every specialist now presents its quick starts as guided professional tasks. Mobile task starters and the chat composer remain clear of the first-visit cookie control, while account-only workspaces retain no-index protection.
French & Spanish Guest Support: choose a language, start with a natural first message, and use key free-chat screens in the language that fits you.
Guests can now use the high-traffic homepage and free-chat experience in English, French, or Spanish, including the hero, reassurance, example questions, starter guide, composer guidance, and free-message messages.
A clear English / Franรงais / Espaรฑol selector is available on the homepage and in the chat header. The selected language is remembered on the device for the next visit.
When a guest begins in French or Spanish without choosing a language first, OmniAssist automatically aligns the chat interface and assistant response language with that opening message.
Starter tasks, high-stakes information boundaries, send guidance, keyboard hints, and guest-limit messages are now presented in the selected guest language for a clearer first chat.
Trust & Transparency: a labelled product demonstration, clearer answer-handling guidance, high-stakes boundaries, and a direct support path.
The homepage now shows an example conversation from question to a practical next step, with a direct link to the OmniAssist product walkthrough.
A new Trust & Transparency section explains how a question is matched to a specialist experience, what OmniAssist can help structure, and when important information should be verified before acting.
Healthcare, Legal, and Finance chats now open with a concise reminder that OmniAssist provides general information rather than diagnosis, representation, or financial decision-making.
Visitors can now reach the Help Centre or contact the OmniAssist team directly from the homepage trust section when they need assistance beyond the chat.
Faster Free Chat Entry: direct specialist chat, an explicit send-next step, and complete first-reply funnel visibility.
Choosing Chat free on any specialist card now opens that selected assistant immediately. Visitors no longer need to return to the homepage question box before starting a free chat.
Selecting a suggested first question now reveals a clear Send question action beside the composer, making it easier to turn a useful idea into the first chat message.
The owner dashboard now measures the free-chat path from card click and chat open through starter selection, send action, first message, and first assistant replyโso the first-use experience can be improved with evidence.
SEO, video, and reliability upgrades: a public video hub, stronger indexing controls, an editorial calendar, and clearer guest-chat behaviour.
A new /videos page gives visitors a dedicated place to watch OmniAssistโs product film. The page includes structured video metadata to help search engines understand the video and its watch-page context.
Sitemap modification dates are now page-specific, private and utility routes use explicit no-index controls, and a public content calendar outlines planned specialist guides across all eight domains.
The guest counter now clearly states how many free messages remain. The PWA install prompt no longer appears after someone only previews an example answer, reducing distraction before a chat begins.
The footer now uses an automatic copyright year and has been simplified to focus on OmniAssistโs own product, legal, and resource links.
Free Chat & Conversion Experience: no-account guest chat, guided question examples, answer previews, and tailored specialist onboarding.
Visitors can now start with three free guest messages per day across all eight specialist domains. A clear message counter and a focused registration path appear only when it is relevant.
The homepage now offers real question examples that match visitors to the right specialist and show a concise answer preview before they continue into a free chat.
Each specialist chat opens with a focused starter guide and relevant first tasks, helping visitors move from a blank input to a useful first question more quickly.
The admin dashboard now measures the path from hero view through input focus, examples, previews, chat opens, and first guest messages, making it easier to improve the first-use experience.
Hero input auto-send via ?q= URL param and a guest-to-signup conversion funnel tracker in the admin dashboard.
Navigating to /chat/:domain?q=your+question now pre-fills the input and fires the first message automatically โ no extra tap required. This enables deep-link campaigns, email CTAs, and social share links that drop users straight into a live conversation.
A new guest_conversions table records every guest session start (on the first message sent) and every sign-up CTA click (header badge and 'Create free account' button). The admin dashboard Overview tab now shows a GUEST CONVERSION FUNNEL panel with a 14-day summary of guest starts, sign-ups, and daily conversion rate.
New user conversion improvements: updated login wall with benefit bullets and 'Create free account' CTA, stronger secondary button, 'Start chatting free' hero CTA, and a pre-login teaser strip on the homepage.
The login wall shown to unauthenticated users now says 'Try [Domain] AI free' and features a full-width 'Create free account' button. A secondary 'Already have an account? Sign in' link is shown below for returning users. The top nav button also reads 'Sign up free' instead of 'Sign in'.
Three benefit bullets now appear on the login wall card before the sign-up button: 'Free to start โ no credit card required', '50 messages per day included', and 'Access all 8 AI domains instantly'. These give undecided visitors a concrete reason to complete the sign-up.
The primary CTA button on the homepage hero changed from 'Select a Domain' (a navigation instruction) to 'Start chatting free' (a benefit-led call to action).
The 'Sign in free' secondary button on the homepage hero is now rendered with a gold border (border-2, 60% opacity) and gold text, matching the primary button's colour family. Previously it used a faint blue outline that was easy to miss.
A new 'What happens after you sign up' strip appears between the How It Works section and the domain grid for unauthenticated visitors. It shows three numbered steps (Pick a domain โ Ask a question โ Get an answer) and a 'Create free account โ' CTA. Hidden for signed-in users.
Dedicated Cookie Preferences page at /cookies with granular category toggles for Strictly Necessary, Analytics, and Marketing cookies.
A full Cookie Preferences page is now available at /cookies. It lists three cookie categories โ Strictly Necessary (always on), Analytics (Umami, toggleable), and Marketing (none currently, listed for transparency) โ with expandable cookie detail tables showing name, purpose, and duration for each cookie. Users can save granular preferences, accept all, or decline optional cookies.
The COOKIES link in the footer now navigates to /cookies instead of reopening the consent banner, giving users a proper preferences page rather than a binary accept/decline prompt.
The cookie consent banner now includes a 'Manage preferences' link pointing to /cookies, so first-time visitors can review granular options before making a choice.
Stop generating button โ red โ Stop replaces the send button during streaming and aborts the SSE stream cleanly, keeping the partial response.
During streaming, the gold โถ send button is replaced by a red โ Stop button. Clicking it calls AbortController.abort() on the active SSE fetch. The partial response already received is kept and marked as complete โ nothing is discarded. When streaming finishes or is stopped, the send button returns automatically.
โบ Regenerate button below the last assistant message โ re-runs the previous prompt with a fresh response.
A small pill-shaped โบ Regenerate button appears below the last completed assistant message. Clicking it removes the previous response, shows the three-dot typing indicator, and re-streams a fresh answer to the same question. Hidden during streaming and only shown to authenticated users on the most recent reply.
Three-dot typing indicator appears in the assistant bubble while waiting for the first token to stream in.
When the assistant message bubble is created but content is still empty (waiting for the first token from the server), three animated dots bounce in sequence with staggered delays (0ms, 150ms, 300ms). Once the first token arrives, the dots are replaced by the streaming text and the existing cursor blink takes over seamlessly.
Chat message micro-animations โ user messages slide in from the right, assistant messages from the left.
User messages now slide in from the right with a zoom-in-95 scale pulse on the bubble content (150ms). Assistant messages slide in from the left (200ms). Both use Tailwind animate-in utilities for a snappy, polished feel that gives immediate visual confirmation without being distracting.
Bug fix โ first message dropped on login. Stale closure in handleSend resolved with inputRef.
Fixed a React stale closure bug where handleSend captured the input state value at the previous render. When a user typed and pressed Enter in the same render cycle, React batched the state update and handleSend read the previous (empty) value โ silently doing nothing. The fix adds an inputRef that is updated synchronously on every keystroke, bypassing the stale closure entirely.
Bug fix โ quick action cards overflowing into the chat input bar on smaller screens.
Fixed a layout overflow where quick action cards in the empty chat state could visually overlap the input bar. Root cause was a -mb-12 negative margin on the gradient overlay element pulling the input bar up. Fixed by removing the negative margin and adding pb-32 to the messages scroll container, ensuring 128px clearance above the input bar regardless of screen size.
Updated /help command to document all slash commands including /translate, and added a dedicated /help translate reference page.
The /help command now includes a 'Slash Commands' section listing all available commands: /help, /help billing, /help shortcuts, /help workspace, and the new /translate command with usage examples.
Type /help translate in any chat to get a full translation guide covering: URL chip usage, /translate slash command syntax, the Translate this text quick action, the Copy Translation button, and the full list of 15 supported languages.
/translate slash command and 'Copy Translation' button for translated chat responses.
Type `/translate <url>` or `/translate <url> to French` directly in the chat input to instantly fetch and translate any webpage. Supports an optional 'to [Language]' suffix to override the default language. Typing `/translate` without a URL shows usage instructions with examples.
Translation results now show a cyan 'โ COPY TRANSLATION' button in the message action bar. Clicking it copies the full translated text to the clipboard with markdown stripped for clean pasting into documents, emails, or reports. Turns green with a checkmark for 2 seconds after copying.
Inline website translation: paste any URL into the chat and a 'Translate page' chip appears with a language selector. Also added domain-specific 'Translate this text' quick actions to all 8 domains.
When a URL is pasted into the chat input, a suggestion chip appears above the input bar showing the detected URL, a language dropdown (15 languages), and a 'Translate page' button. The server fetches the page, extracts readable text with Cheerio, and streams the translation inline in the chat.
Each domain now includes a domain-aware 'Translate this text' quick action that pre-fills the chat with a domain-specific translation prompt (e.g. 'Translate this legal document', 'Translate this medical report'). Available in Healthcare, Legal, Finance, Education, Tech Support, Business, Marketing, and Science.
The server-side translation procedure passes the active domain's system prompt to the LLM, ensuring professional register is preserved for domain-specific content (legal clauses, clinical terminology, technical documentation, etc.).
Refreshed OG social share images for all 5 original /for/ pages (Healthcare, Legal, Finance, Education, Marketing) to match the new consistent visual style.
New branded 2560ร1440 OG image: glowing medical cross and stethoscope with healthcare icons (heart rate, pill, DNA, clipboard) in rose/pink and purple tones, matching the new style.
New branded 2560ร1440 OG image: glowing scales of justice and gavel with legal icons (document, shield, paragraph, courthouse) in amber and purple tones, matching the new style.
New branded 2560ร1440 OG image: glowing rising stock chart and coin stack with finance icons (dollar, pie chart, candlestick, percentage) in emerald green and purple tones, matching the new style.
New branded 2560ร1440 OG image: glowing graduation cap and open book with education icons (lightbulb, pencil, brain) in blue/indigo and purple tones, matching the new style.
New branded 2560ร1440 OG image: glowing megaphone and social media feed with marketing icons (like, trending arrow, ad banner) in orange/coral and purple tones. Previously had no OG image.
OG social share images for Tech Support, Business, and Science /for/ pages; new 'Dedicated guides' pill strip below the homepage domain grid.
Branded 2560ร1440 OG image showing 'OmniAssist for Tech Support / AI-Powered Developer Assistant' with a glowing laptop, code editor, and tech icons in electric cyan and purple. Used for social shares and link previews.
Branded 2560ร1440 OG image showing 'OmniAssist for Business / AI-Powered Business Intelligence' with a glowing briefcase, upward bar chart, and business icons in gold and purple. Used for social shares and link previews.
Branded 2560ร1440 OG image showing 'OmniAssist for Science / AI-Powered Research Assistant' with a glowing microscope, DNA helix, and science icons in emerald green and purple. Used for social shares and link previews.
Added a horizontal pill-link strip below the 8 domain cards on the homepage. Each pill links to the corresponding /for/ landing page (Healthcare, Legal, Finance, Education, Tech Support, Business, Marketing, Science), making the landing pages discoverable to all homepage visitors.
Internal links from /for/ pages to related blog posts, 'Learn more' links on homepage domain cards, and all 8 /for/ pages now listed in the footer.
Each of the 8 domain cards on the homepage now shows a 'Learn more' link on hover that navigates to the corresponding /for/ landing page. The card body still navigates to the chat on click.
The footer Domains row now includes all 8 domain landing pages: Healthcare, Legal, Finance, Education, Tech Support, Business, Marketing, and Science. A new Resources row groups Blog, Help, and Pricing.
The Related Articles section on /for/ landing pages now correctly labels Tech, Business, and Science posts (previously fell back to the raw tag string).
Three new SEO landing pages (/for/tech-support, /for/business, /for/science), 4 new blog posts, and Tech/Business/Science blog tag filters added.
New dedicated landing page at /for/tech-support for developers and IT professionals. Covers code debugging, system design, cloud/DevOps guidance, security reviews, API integration, and technical documentation. Includes 6 features, 12 use cases, 3 testimonials, and 5 FAQs.
New dedicated landing page at /for/business for founders, executives, and consultants. Covers business planning, market analysis, financial strategy, go-to-market execution, investor communications, and operations design. Includes 6 features, 12 use cases, 3 testimonials, and 5 FAQs.
New dedicated landing page at /for/science for researchers, academics, and science communicators. Covers research paper analysis, experiment design, statistical guidance, literature review, scientific writing, and science communication. Includes 6 features, 12 use cases, 3 testimonials, and 5 FAQs.
Published 'How to Use AI to Study Smarter, Not Harder' โ a practical guide for students covering personalised study plans, practice question generation, concept explanation, essay feedback, and exam strategy.
Published '5 Ways AI Makes Developers More Productive' โ covering faster debugging, pre-submission code reviews, system design conversations, API integration, and technical documentation.
Published 'How to Write a Business Plan with AI' โ a section-by-section guide for founders covering executive summary, market analysis, competitive analysis, financial projections, go-to-market strategy, and the ask.
Published 'How Researchers Are Using AI to Accelerate Scientific Discovery' โ covering literature review, experiment design, statistical analysis, scientific writing, and science communication.
Added Tech (sky), Business (green), and Science (rose) tag filters to the blog index page. All three new blog posts are correctly tagged and filterable.
Fixed the sitemap entry from /for/tech to /for/tech-support to match the actual route.
Quick actions expanded across Legal, Education, Tech Support, and Science โ all 8 domains now have 7โ8 quick actions each.
New quick action that explains key employment contract clauses (non-compete, at-will, IP assignment, severance), flags red flags, and identifies which terms are typically negotiable.
New quick action that explains data subject rights under GDPR (or equivalent law by country), including the right to access, erasure, portability, and objection, with practical steps to exercise them.
New quick action that outlines legal rights in landlord-tenant disputes (deposit, repairs, eviction, lease break), recommended steps, and documentation to keep.
New quick action that generates a week-by-week study schedule for an upcoming exam or deadline, factoring in available hours per day and prioritising topics by importance.
New quick action that provides a targeted preparation strategy for specific exams (SAT, IELTS, bar exam, USMLE, university finals), covering high-weight topics, effective study techniques, and common mistakes to avoid.
New quick action that walks users through writing a research paper from thesis to bibliography, covering source evaluation, paper structure, and citation formatting in APA, MLA, or Chicago style.
New quick action that compares major cloud platforms (AWS, Azure, GCP, Vercel, Supabase) for a specific use case, evaluating pricing, scalability, developer experience, and managed services.
New quick action that generates a prioritised top-10 cybersecurity checklist for a chosen context (small business, web app, developer workstation, home network), with risk explanations and specialist escalation flags.
New quick action that provides a step-by-step integration guide for a named API (Stripe, Twilio, OpenAI, Google Maps, etc.) including authentication, key endpoints, a minimal code example, and common pitfalls.
New quick action that summarises a pasted research paper abstract or excerpt, covering the research question, methodology, key findings, limitations, and significance to the field.
New quick action that helps design a rigorous experiment for a stated hypothesis, specifying variables, controls, sample size, measurement methods, confounders, and statistical analysis plan.
New quick action that recommends appropriate statistical tests for a described dataset and research question, explains test assumptions, and guides interpretation of results.
Creative & Marketing quick actions expanded and Business domain competitor analysis added.
New quick action that generates a compelling Facebook ad with 3 primary text variations, 3 headline options, and a strong CTA. Prompts for product/service, target audience, key benefit, and optimisation goal (awareness/traffic/conversions).
New quick action that generates 10 landing page headline + subheadline pairs across benefit-led, problem-focused, and social proof styles. Prompts for product, audience, and desired emotion (trust/excitement/urgency/curiosity).
New quick action that creates a 7-day content calendar for Instagram, LinkedIn, or X. Each day includes platform, post format (reel/carousel/static/thread), caption, hashtags, and best time to post.
New quick action that transforms any pasted text into a chosen tone (professional, casual, urgent, friendly, authoritative, playful) and provides a second variation in a different tone for comparison.
New quick action that conducts a structured competitor analysis against up to 3 named competitors. Covers strengths, weaknesses, pricing, target audience, and key differentiators for each, then identifies exploitable gaps and recommends 3 strategic moves.
Creative & Marketing domain expansion and new /for/marketing landing page.
The Creative domain has been expanded into 'Creative & Marketing' with a new system prompt covering both creative work and marketing disciplines. The AI now handles ad copywriting (Google, Meta, LinkedIn), email marketing, SEO content strategy, campaign planning, brand strategy, and conversion optimisation โ in addition to all existing creative capabilities like writing, storytelling, and design direction.
Five new quick actions replace the previous Creative set: Write ad copy (3 platform variants with headlines, descriptions, and CTAs), Brand name ideas (with rationale), Email subject lines (10 variants with open-rate optimisation), SEO blog outline (H1/H2/H3 structure with meta description), and Campaign brief (full structured brief with objective, audience, channels, and KPIs).
A new dedicated landing page at /for/marketing targets marketers, copywriters, and performance marketing teams. Features six capability sections (Ad Copywriting, Email Marketing, SEO Content Strategy, Campaign Planning, Brand & Creative Direction, Analytics & Reporting), twelve use case examples, three testimonials, and five FAQs. Includes full SEO metadata, canonical tag, and is indexed in the sitemap.
Homepage clarity improvements, SEO fixes, and UX polish.
An animated mock chat widget now appears in the hero section below the CTAs. It cycles through three domain conversations (Healthcare, Legal, Finance) every 4 seconds with a smooth fade transition. Each Q&A pair shows a domain badge above the user bubble, an AI response, and three dot indicators. Includes a 'Try it free โ' link to /chat. CSS-only animations with prefers-reduced-motion support and aria-hidden for screen readers.
Two copy improvements for first-time visitors: (1) The hero badge now reads '8 specialised AI assistants ยท Free to start' instead of the returning-user-focused welcome message. (2) A new hook line 'Ask an AI expert in your field โ not a generic chatbot' appears above the main headline to immediately communicate the product's differentiator.
The What's New modal no longer auto-opens when a new visitor lands on the homepage for the first time. It will still appear for returning users when a new release ships since their last acknowledged version. The changelog remains accessible via the star icon in the top navigation and the /changelog page.
A static sitemap.xml in client/public/ was overriding the dynamic server-generated sitemap, causing blog posts and 4 domain pages to be excluded. The static file has been removed and the dynamic sitemapRoute.ts updated with all missing routes and lastmod dates.
Privacy Policy, Terms of Service, and Accessibility Statement pages were missing explicit canonical link tags. Canonical tags have been added to all three pages via the SEOMeta component.
Organization and WebSite JSON-LD structured data blocks are now embedded statically in index.html so Google's crawler can read them without executing JavaScript. Enables Google to display the OmniAssist logo in search results.
All favicon assets replaced with a new O+A monogram icon in warm gold (#C9A84C) on deep dark navy (#080810) with rounded corners. All six required sizes regenerated: favicon.ico (multi-size: 16/32/48/64/128/256 px), favicon-16x16.png, favicon-32x32.png, apple-touch-icon.png (180ร180), android-chrome-192x192.png, and android-chrome-512x512.png. The new icon is clean, geometric, and readable at every size from browser tab to iOS home screen.
A new 1200ร630 OG social preview card has been generated and deployed. The card shows the OmniAssist wordmark in warm gold on a deep dark background with a radial glow, six domain pill badges (Healthcare, Legal, Finance, Education, Tech, Business), and the tagline. Updated in both index.html (static fallback for crawlers) and SEOMeta.tsx (dynamic Helmet tags for all routes). Links shared on LinkedIn, X/Twitter, Slack, and iMessage now render the new card.
site.webmanifest updated to complete the Premium Dark brand refresh for installable PWA users. theme_color changed to warm gold #C9A84C (tints the Android browser chrome), background_color set to #080810 (shown during splash screen), full app name updated to 'OmniAssist โ Virtual Assistant for Any Field', description updated to match the new brand voice, icons now include purpose: 'any maskable' for adaptive icon support, and orientation, scope, categories (productivity/utilities/business), and lang fields added.
The v1.51 Accessibility WCAG audit entry previously stated '1 design-intent exception (neon-pink brand elements)'. Updated to accurately reflect the current state: 0 remaining violations after the Premium Dark redesign replaced all low-contrast accent colours with warm gold (OKLCH 0.72 0.15 75, ~3.8:1 contrast ratio).
Two new share controls added to every blog post alongside the existing X, LinkedIn, and Facebook buttons. The Copy link button copies the article URL to the clipboard and shows a green Copied! confirmation for 2 seconds. On mobile browsers that support the Web Share API, a Share button opens the native device share sheet; on desktop it falls back to copy-link behaviour.
Pressing M on the home page (outside any input field) toggles the More navigation dropdown open and closed. Consistent with the existing keyboard shortcut pattern used throughout the chat interface. The shortcut is ignored when focus is inside an input, textarea, or contenteditable element.
The page now reads "Last reviewed: July 2026". The Known Limitations section has been updated to reflect the Premium Dark redesign: the neon-pink exception has been replaced with an accurate warm gold accent entry (OKLCH 0.72 0.15 75, ~3.8:1 contrast ratio). The WCAG 2.1 conformance table has been updated to match.
Welcome to the completely redesigned OmniAssist. This release replaces the original cyberpunk aesthetic with a refined Premium Dark identity โ warm gold accents, glass-morphism surfaces, and clean Geist typography across every page. The platform looks and feels noticeably more polished while preserving everything you already know.
All neon and cyberpunk styling removed across every page. Accent palette shifted to warm gold/amber (oklch 0.72 0.15 75), glass-morphism cards with subtle borders, and Geist typography throughout. Zero remaining neon pattern occurrences confirmed across the full codebase.
The What's New modal now uses clean sentence-case headings, rounded pill badges (New / Improved / Fix / Security) in four distinct muted tones, and Geist body text. Monospace and uppercase tracking removed entirely.
The eight domain accent colours have been shifted from saturated neon hues to muted, sophisticated tones: deep teal (Healthcare), muted violet (Legal), warm amber (Education), sage green (Business), slate blue (Tech), warm gold (Finance), dusty rose (Creative), and terracotta (Science).
The landing page hero now features a faint warm-gold radial gradient ellipse centred on the CTA, replacing the flat dark surface. The glow fades in cinematically over 1.2 seconds via a heroGlowIn keyframe animation on page load.
The Changelog page is fully retyped to match the What's New modal: sentence-case headings, rounded pill badges per change category, clean body text, and a Latest pill badge on the newest release. Monospace and uppercase tracking removed.
Each domain emoji on the homepage grid now shows a polished tooltip with the domain tagline (e.g. Medical Intelligence, Legal Intelligence) on hover, helping new users understand each option before clicking.
Blog index cards now reveal a hover-only read-time badge (e.g. 5 min read) with a Clock icon in the tag row, covering both the main grid and search results. Helps users prioritise content without clicking through.
Blog and Changelog are now grouped under a clean More dropdown in the top navigation bar, with a chevron indicator and a version pill badge on the Changelog entry. The mobile drawer also includes Changelog. Reduces top-bar clutter.
A 2 px gold gradient bar is fixed at the very top of the viewport on the home page. It fills left-to-right as the user scrolls, with a subtle warm glow, giving a cinematic sense of orientation on the long-scroll landing page.
A bookmark button on every AI message lets users save responses for later. Bookmarked messages are accessible at /saved โ a dedicated page with search, remove-bookmark, and a link back to the source conversation. The SAVED link appears in the desktop nav and mobile drawer.
A delete button on every message (user and assistant) lets users remove individual messages from a conversation. A two-step inline confirmation prompt prevents accidental deletion. Deleting a bookmarked message also removes its saved entry automatically.
Pressing Ctrl+F (or Cmd+F) on the Chat page opens a slim search bar below the header. Matching messages are highlighted with a cyan ring; the active match scrolls into view. Enter advances to the next match, Shift+Enter goes back, Escape closes. No extra network calls โ operates entirely on the loaded message array.
Users can create, rename, and delete colour-coded folders from a sidebar on the History page. Any conversation can be assigned to a folder via a dropdown on its card. Selecting a folder filters the conversation list to show only that folder's conversations.
A ? button in the Chat input toolbar opens the Keyboard Shortcuts reference modal. The same modal can be toggled with Cmd+/ (Ctrl+/ on Windows/Linux) from anywhere on the page. The shortcut is listed as the first entry in the GLOBAL section of the modal.
The /for/healthcare, /for/legal, /for/finance, and /for/education landing pages now each have a unique 1200ร630 Open Graph banner image. All inner pages were also upgraded to use the summary_large_image Twitter card format.
A dedicated /for/education landing page with violet accent, 6 feature highlights, 12 use cases, 3 testimonials, and 5 FAQs. Linked from the homepage footer and included in the sitemap at priority 0.9.
Comprehensive axe-core audit across all major pages. Six violation categories resolved: meta-viewport pinch-zoom re-enabled, decorative logo alt corrected, scrollable regions made keyboard-focusable, underlines added to in-text links, muted text lightness raised to OKLCH 0.62, and landmark regions added to all affected pages. Fully resolved โ 0 remaining violations after the Premium Dark redesign replaced all low-contrast accent colours with warm gold (OKLCH 0.72 0.15 75, ~3.8:1 contrast ratio).
A comprehensive /accessibility page documents OmniAssist's WCAG 2.1 AA conformance status across 15 criteria, known limitations, technical approach, assistive technology compatibility, feedback/contact details, and enforcement procedure. Linked from the footer and cross-referenced in the Privacy Policy and Terms of Service.
A single pnpm ci:notify command runs both the TypeScript check and the full Vitest suite in sequence, sending two separate owner notifications and printing a CI SUMMARY table. Exit code is non-zero if either check fails, making it safe for pre-commit hooks.
Both /for/education and /accessibility are now present in the static sitemap.xml and the dynamic sitemapRoute.ts, ensuring search engines index all public pages.
Pressing P anywhere on the Chat page (outside an input field) toggles the desktop pinned-domains bar on and off. The shortcut is listed in the Keyboard Shortcuts reference modal under the GLOBAL section.
When the pinned-domains bar is hidden, a subtle โญ [P] PINS pill appears in the Chat header between HISTORY and the user/theme divider. Clicking it restores the bar without needing to remember the keyboard shortcut. The pill is invisible when the bar is already showing or when no domains are pinned.
A CLEAR link now appears next to the Recent label in the Chat mobile domain switcher. Tapping it instantly wipes the recently visited domains list from both state and localStorage, hiding the row until new domains are visited.
The Pinned Domains card on the Profile Overview tab now includes a RECENT HISTORY row with a 1โ5 selector. The chosen number is saved to localStorage and immediately respected by the Chat mobile domain switcher when recording and displaying recent visits. Default is 3.
The Chat mobile overflow menu now includes a Switch Domain section โ a compact 2-column grid of all 8 domains with emoji icons. The active domain is highlighted in cyan. Tapping any domain navigates instantly and closes the menu.
The footer links are now split into two clearly labelled rows separated by a subtle divider. Row 1 (Domains): HEALTHCARE, LEGAL, FINANCE, BLOG, HELP. Row 2 (Legal): PRIVACY, TERMS, SITEMAP, COOKIES, CHANGELOG. All rows use flex-wrap so nothing overflows on mobile.
A COOKIES button in the footer Legal row clears the stored consent preference and reloads the page so the cookie consent banner reappears, giving users full control over their tracking choices at any time.
A SITEMAP link in the footer Legal row opens /sitemap.xml in a new tab, making it easy for power users and search engines to discover all public pages.
All owner notifications sent via notifyOwner() now include a consistent [ OmniAssist โ Virtual Assistant ] header and footer, making every alert immediately recognisable in the Manus notification feed.
A slim โญ PINNED bar now appears below the Chat header on desktop whenever the user has pinned domains. Each pinned domain is shown as a pill; the active domain is highlighted in cyan. An EDIT PINS link on the right navigates directly to the Profile page. The bar is invisible until at least one domain is pinned.
A new โญ Pinned Domains card on the Profile Overview tab lets users star up to 3 favourite domains. Tapping a domain toggles its pinned state with optimistic updates. Attempting to pin a 4th domain shows a toast prompt to unpin one first.
The Chat mobile domain switcher now shows a โญ Pinned row at the top of the Switch Domain section, above the Recent row, for instant one-tap access to favourite domains without scrolling.
The Chat mobile domain switcher now tracks up to 3 recently visited domains (persisted in localStorage) and surfaces them as quick-tap pills above the full domain grid for faster repeat navigation.
A hamburger menu now appears on small screens, giving mobile users access to all navigation links (BLOG, HELP, TEAM, PRICING, PROFILE, HISTORY, LOGOUT) that were previously hidden. The desktop nav is completely unchanged.
A three-bar menu button in the Chat header on mobile exposes all previously hidden actions: Language, Context Window, Templates, Search, Context Pin, Badges, Summarise, Share, History, and Help.
The Chat mobile overflow menu now features a โฆ NEW CHAT button at the top, allowing users to start a fresh conversation in the same domain without navigating away.
A floating โ Back to Top button now appears on all pages after scrolling 300px. Navigating between pages also automatically scrolls to the top, fixing mid-page landings when switching routes.
Users can now permanently delete their account and all associated data from the Profile page (Overview tab, Danger Zone section). A two-step confirmation dialog prevents accidental deletion.
Section 7 now includes a detailed retention schedule covering 8 data categories, each with its retention period and the legal or operational reason behind it.
A new section covers California residents' rights under CCPA/CPRA, including a clear statement that user data is never sold or shared with third parties, a full rights list, and a data categories table.
OmniAssist now has a custom favicon โ a split navy/cyan "O" with a circuit node โ shown in browser tabs, bookmarks, iOS home screen (180ร180), and Android/PWA icons (192ร192, 512ร512).
15 new AI-generated articles published, completing the full 90-day content schedule. New topics include AI diagnostics, telemedicine, IP law, family law, risk management, investment banking, personalised learning, academic research, prompt engineering, AI hallucinations, AI ethics, team AI readiness, small business AI, multilingual AI, and AI trends for 2025 and beyond. The blog now has 34 published articles across all domains.
The /blog listing page now has a full-text search bar embedded in the hero section. Typing 2+ characters triggers a debounced search (350ms) across article titles, excerpts, content, and tags. Results are shown in a responsive card grid with a result count. Clearing the search or clicking a tag filter returns to the standard paginated view.
A new SUBSCRIBERS tab in the Admin panel (owner-only) lists all newsletter sign-ups with email, source, and subscription date. Includes one-click CSV export and per-row REMOVE button. Paginated at 50 per page.
5 additional articles published across HR, real estate, and technology domains, bringing the total to 19 published articles on the blog.
Every blog article now has a 'Was this helpful?' reaction bar with three emoji buttons: ๐ Helpful, ๐ก Insightful, and โค๏ธ Love it. Reactions are anonymous โ stored via a visitor ID in localStorage โ so no account is required. Counts are shown on each button and update instantly on click. Readers can toggle their reaction on or off.
Five new AI-generated articles published, expanding coverage across HR, real estate, and technology domains. The blog now has 19 published articles in total.
Visitors can subscribe to the OmniAssist newsletter from the /blog listing page and the homepage footer. Subscribers are stored in the database and the owner receives an instant notification on each new sign-up. Duplicate emails are handled gracefully.
A thin gradient progress bar (violet to indigo) is fixed at the top of every article page (/blog/:slug). It fills as the reader scrolls through the article, providing a clear visual indicator of progress.
Every article page now includes one-click share buttons for X (Twitter) and LinkedIn, placed below the article metadata and at the bottom of the article. Clicking opens a pre-filled share dialog with the article title and URL.
Ten AI-generated articles published across all domains: General (3), Healthcare (2), Legal (2), Finance (2), and Education (1). Each article is 900โ1,050 words with full SEO metadata.
Full-featured public blog at /blog with tag filtering (Healthcare, Legal, Finance, Education, General), pagination, and SEO-optimized article pages at /blog/:slug. Each article includes reading time, Open Graph meta, JSON-LD Article schema, and professional disclaimers for regulated domains.
New BLOG CMS tab in the admin panel with full CRUD โ create, edit, publish/unpublish, and delete articles. Includes an AI Draft Generator that writes a full article from a title and optional keywords using the built-in LLM.
The homepage now features a 'Latest Insights' section showing the 3 most recent published articles. Automatically hidden when no articles are published.
The /for/healthcare, /for/legal, and /for/finance landing pages now display related blog articles filtered by domain tag, with a link to the full blog.
The /sitemap.xml now dynamically includes all published blog post URLs at priority 0.7, keeping search engines up to date as new articles are published.
Four initial articles published: an introduction to the OmniAssist blog, and domain-specific guides for healthcare, legal, and finance professionals.
Dedicated /for/healthcare page with keyword-rich SEO copy targeting 'AI assistant for doctors/nurses/healthcare professionals'. Features, use cases, testimonials, and FAQ sections. Linked from the home page footer and included in sitemap.xml at priority 0.9.
Dedicated /for/legal page targeting 'AI assistant for lawyers/paralegals/legal professionals'. Covers contract drafting, clause analysis, multi-jurisdiction research, and legal memo generation. Linked from footer and sitemap.
Dedicated /for/finance page targeting 'AI assistant for finance professionals/analysts'. Covers DCF analysis, earnings summaries, regulatory compliance, and investor report drafting. Linked from footer and sitemap.
Every public page now has a unique <title>, <meta description>, and canonical URL managed by react-helmet-async. Private pages (chat, history, admin, billing, profile) are marked noindex to keep search results clean.
All pages include og:title, og:description, og:image, og:url, and Twitter Card meta tags so links shared on social platforms render with a rich preview using the OmniAssist logo and page-specific copy.
The landing page now includes a SoftwareApplication schema.org JSON-LD block. This enables Google rich results and improves discoverability in AI-powered search engines.
A dynamic /sitemap.xml is now served listing all public pages (home, pricing, changelog, help) with lastmod, changefreq, and priority. Submit it to Google Search Console to accelerate indexing.
A robots.txt file now allows all crawlers on public pages while disallowing private routes (/chat, /history, /admin, /billing, /profile, /api). The sitemap URL is referenced for crawler discovery.
Filter the Admin SECURITY EVENTS log by event type (e.g. ip_not_allowed) and source IP using the new filter bar. Results update instantly as you type. A CLEAR button resets both filters.
Click the HEATMAP button on any API key row to reveal a 7-day ร 24-hour usage grid. Each cell shows request volume for that hour, colour-coded from dark (zero) to bright teal (peak). Hover any cell for the exact count. A legend shows the scale.
Failed webhook deliveries in the delivery history drawer now show a RETRY button. Clicking it immediately re-fires the delivery to the webhook URL, records a new attempt row with retryOf set to the original delivery ID, and shows a success or failure toast.
When an API key IP allowlist blocks a request (403 ip_not_allowed), the project owner is immediately notified with the source IP, key prefix, and allowed IPs list. Alerts are sent via the built-in owner notification channel โ no configuration required.
API key rows now show a โก badge when a per-key rate limit override is active, displaying the custom limit (e.g. โก 500/day override) so admins can see at a glance which keys have non-default limits without opening the edit modal.
Configure a retention policy for the security events log directly from the Admin SECURITY EVENTS tab. Choose 30d, 60d, 90d, or FOREVER. Selecting a duration immediately purges older events and applies the policy going forward, preventing unbounded table growth in production.
Download the full IP allowlist audit log as a CSV file from the IP AUDIT LOG tab in Admin. The export includes all entries up to 10,000 rows with entity type, action, old/new values, and timestamps โ ready for compliance reporting.
Every request blocked by an API key IP allowlist (403 ip_not_allowed) is now recorded in a security_events table. The Admin panel has a new SECURITY EVENTS tab showing the timestamp, event type, source IP, key prefix, and allowed IPs. A badge count appears on the tab when events are present. Use CLEAR ALL to reset.
Set a custom daily message limit on individual API keys, overriding the plan-level default. Configure the override when creating a key or editing an existing one via the DAILY RATE LIMIT OVERRIDE field. Leave blank to fall back to the plan default. The override is enforced server-side on every API call.
Click the new EDIT IPs button on any webhook row to open an inline editor for the source IP allowlist. Enter comma-separated IPs or CIDR ranges and click SAVE โ no need to delete and re-register the webhook.
Every time an API key is used, the originating IP address is recorded and displayed in the key row below the last-used date. Hover the IP to see the full tooltip. Useful for auditing where keys are being called from.
A new IP AUDIT LOG tab in the Admin panel records every creation, update, or clearing of an IP allowlist on API keys and webhooks. Each entry shows the timestamp, entity type, action, and the old and new IP values for full compliance traceability.
Edit any active API key in-place โ update its name, scope (all/chat/read), expiry date, and IP allowlist without revoking and re-creating it. Click the new EDIT button on any key row to open the modal. Changes take effect immediately.
Hovering the lock badge on a key row now opens a popover listing every configured IP address or CIDR range inline, so you can verify the allowlist without opening the edit modal.
Your current public IP address is shown below the page title. Click it to copy it to the clipboard โ handy for pasting directly into the IP allowlist when creating or editing a key.
Restrict webhook deliveries to payloads originating from trusted source IPs or CIDR ranges. Configure the allowlist when registering a webhook. Deliveries from unlisted IPs are silently skipped and logged. Existing webhooks without an allowlist are unaffected.
Restrict each API key to specific IP addresses or CIDR ranges. Add one or more IPv4/IPv6 addresses or CIDR blocks (e.g. 192.168.1.0/24) when creating a key. Requests from unlisted IPs receive a 403 ip_not_allowed error. Keys with an allowlist show a lock badge with the IP count on the keys table.
Select multiple API keys with checkboxes and revoke them all at once using the Revoke Selected toolbar button. Includes a Select All checkbox for quick bulk operations.
Download all active API keys as a CSV file from the API Keys page. The export includes key name, prefix, scope, allowed IPs, expiry date, last used timestamp, and creation date.
Each key row now has a checkbox for bulk selection. The bulk action toolbar appears when one or more keys are selected, showing the count and Revoke Selected button.
Set optional expiry dates on API keys (NEVER / 30d / 90d / 365d or a custom date). Expired keys are automatically rejected in /api/v1/chat with a 401 key_expired error. Active keys show a countdown badge โ amber warning at 7 days remaining, red when expired.
Pause any active webhook without deleting it โ useful for maintenance windows or temporary suspension. Paused webhooks show an amber PAUSED badge and a yellow status dot. Click RESUME to re-enable delivery. Retries are also cancelled for paused webhooks.
The webhook status dot now has three states: cyan (active), amber (paused), and grey (disabled), making it easy to distinguish paused from fully disabled webhooks at a glance.
Failed webhook deliveries are automatically retried up to 3 times with exponential back-off (5 s, 30 s, 5 min). Each retry attempt is recorded in the delivery log with a RETRY #N badge and a chain reference to the original delivery.
The webhook delivery history drawer now shows retry entries indented with a yellow left border, attempt number (RETRY #1 / #2 / #3), and an 'attempt X/4' chain label so you can trace the full retry sequence at a glance.
Each outgoing webhook request now includes an X-OmniAssist-Attempt header indicating the attempt number, making it easy for receiving servers to detect and deduplicate retries.
Assign a scope to each API key (all, chat, or read-only) at creation time. The /api/v1/chat endpoint enforces the scope and returns a 403 if a read-only key attempts to send a message.
A new Analytics tab on the API Keys page shows aggregate request counts (today, 7-day, 30-day) and per-key 14-day sparklines sourced from the api_key_usage table.
Every outgoing webhook attempt is now recorded in a webhook_deliveries table. Click HISTORY on any webhook in the Admin panel to open a side drawer showing status, HTTP code, response time, and timestamp for each delivery.
Each key row now displays a colour-coded scope badge (ALL / CHAT / READ) so you can see permissions at a glance.
Each API key now shows a 14-day sparkline chart, today's request count, all-time total, and a configurable per-key daily rate limit โ all visible inline in the API Keys settings page.
Customise the embedded chat widget's button and bubble colour with a hex colour picker, and set a personalised greeting message โ both reflected live in the generated snippet.
Every programmatic /api/v1/chat call now fires an api.message.created webhook event, letting external integrations react to API-sourced messages in real time.
The snippet generator now shows a live preview of the full widget URL (including colour and greeting params) before you copy the snippet.
Call OmniAssist from any app via POST /api/v1/chat โ authenticate with your API key as a Bearer token, pass a domain and message, and receive AI replies programmatically.
Generate a one-line <script> snippet from the API Keys page to embed a floating OmniAssist chat bubble on any external website.
Purchase one-time message packs (Starter 500 msgs/$5, Boost 1500/$12, Power 5000/$35) via Stripe Checkout from the Billing page to extend your daily quota.
Domain selector and API key input on the API Keys settings page auto-generate a ready-to-paste iframe widget snippet with a copy button.
Click the edit icon on any sent message to modify it and regenerate the AI response from that point, replacing all subsequent messages.
Pro/Enterprise users can generate, name, and revoke personal API keys at /settings/api-keys to call OmniAssist programmatically.
API Keys shortcut added to the Profile page quick links section.
Export any conversation as a formatted Markdown file or print-ready PDF from the chat header export menu.
Attach a document to chat; AI extracts text and answers questions about its content instantly
Drag any file onto the chat window to attach it โ a drop overlay confirms the action
Paste any email, contract, or article into a large text area; AI uses it as context for your next question
Microphone button transcribes speech via Whisper; speak instead of type
Shows character count and highlights in cyan when document text was successfully parsed
React to AI messages with ๐ โ ๐ก ๐ฅ โค๏ธ โ hover any reply to react
Type your question on the home page and get an instant domain recommendation
Admins can attach private internal notes to any user record in the Users table
Confetti animation + modal at 10, 50, 100, 250, and 500 conversations
Real-time notification centre accessible from any page via the floating bell
Click your avatar on the Profile page to upload a custom image (max 2 MB)
Share your personal invite link and earn 50 bonus messages per successful referral
Chronological feed of conversations, badges earned, and plan changes on the Profile page
Previously used tags are suggested as you type in the History tag editor
Preview the Sunday digest in Admin Broadcast before it fires automatically
Per-domain message bar chart for the last 30 days added to the Profile page
When adding tags to a conversation in History, a suggestions dropdown now appears showing your previously used tags that match the current input. Click any suggestion to apply it instantly.
Admins can now preview the weekly digest notification before it fires. The Broadcast tab shows a live data card with messages, conversations, new users, and total users for the past 7 days.
Your Profile page now includes a Domain Activity chart showing messages sent per domain over the last 30 days, with colour-coded bar indicators for each domain.
A SUMMARISE button in the chat header calls the AI to produce a 3-5 sentence summary of the current conversation. The result appears in a modal with a one-click copy button.
The Admin Analytics tab now has CSV and PDF export buttons. CSV downloads messages-per-day and domain distribution data; PDF opens a print-ready report in a new browser tab.
The Domain Personas settings page now shows a stats grid displaying the conversation count per domain over all time, using the persona's custom name when one is set.
Pro and Enterprise users can now set a custom name, avatar, and system-prompt prefix for each domain. The Chat header displays the persona name (and avatar thumbnail) when active. Manage personas at Settings โ Domain Personas.
Select multiple users in the Admin USERS table with a select-all checkbox, then bulk-reset their daily quota or change their role in one click.
Every assistant message now has a โ COPY button that flips to โ COPIED for 2 seconds, making it easy to grab AI responses.
Pin important conversations to the top of your History list. Pinned conversations float above unpinned ones and display a pin icon.
OmniAssist now has full social-preview support โ og:title, og:description, og:image, and twitter:card tags are set in index.html.
New OA favicon in 16/32/48px ICO, PNG variants, Apple touch icon (180 px), and PWA manifest icons (192/512 px).
Admins can now check 'Opted-in only' when sending broadcasts to target only users who have enabled broadcast notifications.
The Profile data-export now bundles notification preference settings alongside conversation history and profile data.
New users see a 4-item checklist (log in, start a chat, explore domains, set up workspace) with a progress bar that auto-checks completed steps.
New /settings/notifications page with 4 toggleable categories: quota warnings, admin broadcasts, workspace invites, and weekly digest.
The Admin FEEDBACK tab now shows a per-domain breakdown of thumbs-up/down ratings with percentage bars.
A red notification dot appears on the FEEDBACK nav tab whenever new unresolved down-votes are present.
Users can rate any assistant message with thumbs up or thumbs down. Ratings are stored in the feedbacks table and surfaced in the Admin panel.
A theme toggle button is now present in all navigation bars, persisting the user's preference across sessions.
Tag conversations with custom labels for easier organisation. Tags appear on History cards and can be filtered.
Home page gains a particle background and per-domain card glows. Chat gets domain-coloured message borders, a typing animation, input gradient fade, and send-button scale effect. History cards show domain border-left and last-message preview. Pricing highlights the Pro card with a RECOMMENDED badge.
The Help Centre now has a scroll-spy sticky sidebar and smooth accordion open/close transitions.
Type /help (or /help billing, /help shortcuts, /help workspace) in any chat to get an instant formatted help summary without calling the AI.
The Help Centre now has a live search bar that filters sections, auto-expands matching items, and highlights matching text.
A HELP link was added to the Chat page header next to HISTORY for quick access.
New /help page with 5 accordion sections (Getting Started, Chat Features, Plans & Billing, Team Workspace, Keyboard Shortcuts), a HELP nav link, and a Replay Tour button.
A 6-step driver.js tour (cyberpunk-styled) auto-triggers on the first authenticated visit, guiding new users through key features.
A scheduled job fires every Sunday at 00:00 UTC and sends the owner a digest of all changelog entries from the past week via notifyOwner.
All workspace events (member joined/left, ownership transferred, settings changed) are now logged and visible in the workspace activity feed.
When a user's daily quota is exceeded, the warning banner now includes a direct 'BUY MORE MESSAGES' button linking to the message pack purchase flow.
A dismissible warning banner appears in the Chat header when any message pack is within 7 days of expiry.
Workspace owners can transfer ownership to another member via a DANGER ZONE section in workspace settings.
A pulsing dot badge appears on the Changelog nav link on the Home page whenever a new entry has been added since the user's last visit.
The Profile page now shows a GitHub-style activity heatmap calendar and a daily streak counter with flame icon.
After each AI response, up to 3 contextual follow-up suggestion chips appear below the message for one-click continuation.
The Admin USERS table now has a search bar (name/email), role filter dropdown, and sort-order selector.
Message pack expiry warnings (7-day notification), workspace member quota display with usage bars, and automated changelog entry script.
Press Shift+? anywhere in the app to open a full shortcut reference. A ? button also appears in the chat interface for quick access.
This page โ a running history of every feature, improvement, and fix shipped to OmniAssist.
Message pack purchases are now credited automatically via the payment_intent.succeeded webhook event, even if the user closes the tab before the redirect.
Workspace members now receive a fair share of the owner's daily quota (owner limit รท active seat count). Owners retain their full plan limit.
A 'BUILT FOR TEAMS' section on the Pricing page explains workspace benefits with seat counts and a context-aware CTA.
Buy one-time message packs (Starter 500 msgs/$5, Boost 1500/$12, Power 5000/$35) via Stripe Checkout. Pack balance shown in Billing under the new MESSAGE PACKS tab.
Create a workspace, invite colleagues by email, and share your plan quota across up to 5 seats (Pro) or 50 seats (Enterprise). Invite links auto-join on acceptance.
Authenticated users now see a TEAM link in the top navigation leading to the workspace management page.
Earn a badge mid-conversation? A slide-up toast fires automatically after the AI response, showing the badge icon, name, and description. Auto-dismisses after 4 seconds.
Image attachments in chat now render as inline thumbnails. Click any thumbnail to open a full-screen lightbox with Escape-to-close and filename/size in the footer.
A /profile page showing your stats (messages sent, conversations, streaks), earned badges grid, subscription plan card, and quick-nav links.
A modal collects optional cancellation reasons before opening the Stripe Customer Portal, helping understand churn.
Pricing page now offers monthly and annual billing intervals with a 2-months-free annual discount.
Redesigned /billing with tabbed layout: Invoice History and Message Packs side by side.
Earn badges for milestones (first message, 7-day streak, 100 messages, domain explorer, and more). Daily streaks tracked and displayed on the Profile page.
Pin important messages in a conversation so the AI always references them, regardless of context window size.
Browse, like, and reuse community prompt templates. Create your own private templates and share them publicly.
Upload PDFs, images, and documents directly in chat. Files are stored in S3 and sent to the AI as context.
Generate a public share link for any conversation. Recipients can read the full exchange without logging in.
Admins can send platform-wide announcements that appear as system messages in all users' chat feeds.
Admins can upload domain-specific knowledge documents. The AI automatically references them when answering questions in the matching domain.
Full searchable conversation history at /history with domain filters, tags, and export to Markdown.
AI responses now stream token-by-token via SSE for a faster, more interactive feel.
Free, Pro ($19/mo), and Enterprise ($49/mo) plans with daily message quotas. Stripe Checkout and Customer Portal fully integrated.
Chat header now shows a live daily message count and quota bar with a top-up prompt when the limit is near.
Role-based admin panel with user management, quota overrides, and platform analytics.
Chat with a domain-specific AI persona across 8+ professional fields: Healthcare, Legal, Finance, Education, Creative, Tech, HR, and General.
Secure login via Manus OAuth with session cookies. No passwords to manage.
Cyberpunk-inspired dark interface with neon accents, monospace typography, and animated corner brackets.
OmniAssist is under active development. New features ship regularly.