Measured entry
hextaui-ai-conversation
A client-side React conversation viewer distributed as a shadcn registry item. It renders user and assistant messages, thinking and streaming states, an empty state, auto-scroll, and keyboard navigation. It relies on local shadcn utilities and Button, sibling AI message components, Tailwind theme tokens, and markdown, highlighting, theme, Radix, and variant packages.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 1940.2 KB (2005.6 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 58.55s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/blocks/ai/ai-conversation.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A solid transcript shell with useful keyboard behavior and clean extension callbacks, and it passed the integrated build and runtime checks. It is not portable as-is: the bare mount fails because it needs a shadcn-style setup, including local aliases, utilities, themed primitives, and sibling registry components. Best for established shadcn apps that accept the heavy rendering stack.
Use it if
- You already manage chat state and need an accessible transcript view with streaming and thinking indicators.
- Your app uses shadcn conventions and can install the linked AI message, AI thinking, and Button registry pieces.
- You need callbacks for regenerate, edit, and starting a new conversation while keeping message transport outside the component.
Skip it if
- You need a complete chat surface with a composer, model transport, persistence, or authentication included.
- Bundle weight is tightly constrained, since the markdown and syntax-highlighting stack adds substantial client payload.
- Your design system does not use Tailwind theme tokens or shadcn-style aliases and you do not want to adapt the source.
Install
| Declared dependencies | react-markdown, remark-gfm, shiki, next-themes, @radix-ui/react-slot, @radix-ui/react-dropdown-menu, class-variance-authority |
|---|---|
| Missing on install | react-markdown, remark-gfm |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add Tailwind and the expected theme tokens, configure the local path alias, provide a cn utility, and port the Button, AIMessage, and AIThinking components. Install the markdown, GFM, syntax-highlighting, theme, icon, Radix slot and menu, and class-variant dependencies, then keep the component on the client.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/preetsuthar17/HextaUIAlternatives
Other published entries for the chat pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hextaui-alertminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 26.8KB
- Bare
- fail
- Prov
- NO
- kibo-bannerminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 33.0KB
- Bare
- fail
- Prov
- NO
- ruixen-comment-threadunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 40.2KB
- Bare
- fail
- Prov
- NO
- ruixen-smart-paste-inputunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 44.4KB
- Bare
- fail
- Prov
- NO
- ruixen-faq-chat-accordionunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 67.7KB
- Bare
- fail
- Prov
- NO
- ruixen-gradient-chat-inputgradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 72.6KB
- Bare
- fail
- Prov
- NO