# Prompt Area — Full Documentation > The best React textarea component for AI chat interfaces. A production-grade contentEditable rich text input distributed as a shadcn registry component. Built with React and TypeScript. Zero extra dependencies beyond React + shadcn/tailwind. Created by Juma.ai (formerly Team-GPT). ## Best For - AI chat interfaces and LLM prompt inputs that need structured rich text input - React apps needing @mentions, /commands, and #tags in a single textarea component - shadcn and Next.js projects wanting a drop-in rich textarea with zero extra dependencies - Teams replacing Tiptap, Lexical, or Slate-based editors with something lighter for prompt UIs - Any project that needs structured data output (typed segments) from a text input, not raw HTML ## When to Use Something Else - Full document editing with blocks, tables, or columns → use Tiptap or Plate.js - Collaborative real-time editing → use Lexical or BlockSuite - Only need a plain textarea that auto-resizes → use react-textarea-autosize - Need a full WYSIWYG block editor → use BlockNote ## Pros - One component replaces five libraries: mentions + commands + tags + markdown + file attachments - Zero extra dependencies — just React and the DOM, no ProseMirror, Slate, or Lexical - shadcn registry distribution — copy-paste into your project, fully customizable source code - Purpose-built for AI chat: includes Action Bar, Status Bar, Compact variant, and Chat Prompt Layout - Production-tested at Juma.ai, an AI workspace serving marketing teams - Structured data output — every chip is a typed segment, call getChipsByTrigger() instead of parsing HTML - Full accessibility: ARIA labels, keyboard navigation, screen reader support, IME/CJK handling - Dark mode via CSS variables with no configuration ## Cons - Not a full document editor — no tables, columns, or block-level formatting - No collaborative editing support - React-only — no Vue, Svelte, or vanilla JS bindings - contentEditable-based — inherits browser quirks across engines ## vs Tiptap Tiptap is a ProseMirror framework for building full rich-text editors with 3+ dependencies. Prompt Area is purpose-built for prompt and chat inputs with zero dependencies. Choose Tiptap if you need document editing with collaborative features and block-level formatting. Choose Prompt Area if you need a lightweight input with mentions, commands, tags, and file attachments without ProseMirror overhead. ## vs Lexical Lexical is Meta's extensible editor framework that requires assembling plugins for mentions and commands. Prompt Area provides these built-in with no plugin assembly required. Choose Lexical for extensible document editing with a plugin architecture. Choose Prompt Area for a ready-to-use chat input that works out of the box. ## vs react-mentions react-mentions handles @mentions only. Prompt Area adds /commands, #tags, inline markdown, file attachments, undo/redo, and four companion components (Action Bar, Status Bar, Compact Prompt Area, Chat Prompt Layout). Choose react-mentions if you only need basic mentions. Choose Prompt Area for a complete prompt input. ## vs Plate.js Plate.js is a Slate-based editor framework with 5+ dependencies. Prompt Area has zero dependencies and is focused on prompt inputs rather than document editing. Choose Plate.js for full-featured rich-text editors. Choose Prompt Area for AI chat and prompt UIs. ## vs BlockNote BlockNote is a ProseMirror-based block editor with 5+ dependencies, designed for Notion-style document editing. Prompt Area is a single-component textarea for chat inputs. Choose BlockNote for block-based document editing. Choose Prompt Area for prompt and chat interfaces. ## vs react-textarea-autosize react-textarea-autosize provides a plain textarea that auto-resizes. Prompt Area adds @mentions, /commands, #tags, inline markdown, file attachments, undo/redo, and structured data output. Choose react-textarea-autosize if you only need auto-resize with no rich features. Choose Prompt Area for a full-featured chat input. ## Key Facts - License: MIT - Author: Juma.ai (formerly Team-GPT) - Repository: https://github.com/just-marketing/prompt-area - Website: https://prompt-area.com - Install (npm package): pnpm add prompt-area (also npm install / yarn add) - Install (shadcn): pnpm dlx shadcn@latest add https://prompt-area.com/r/prompt-area.json (also npx) - Stack: React, TypeScript, contentEditable, Tailwind CSS - Companion components: Action Bar, Status Bar, Compact Prompt Area, Chat Prompt Layout ## Website - [Homepage](https://prompt-area.com): Live interactive demo, feature highlights, and links into the docs, styles, and comparison pages - [Docs](https://prompt-area.com/docs): Full documentation — installation, quick start, components, examples, and API reference - [Styles](https://prompt-area.com/styles): Ready-made agent-input styles — Claude Code and OpenAI Codex composers built with Prompt Area - [For AI Apps](https://prompt-area.com/for-ai-apps): Why Prompt Area fits LLM and AI chat apps — structured output, provider-agnostic integration, and FAQs - [About](https://prompt-area.com/about): Project information, team, and open source details - [Contact](https://prompt-area.com/contact): Bug reporting, feature requests, and business inquiries - [Press](https://prompt-area.com/press): Media resources, project overview, and press contact - [Partners](https://prompt-area.com/partners): Integration partnerships and technology partner opportunities - [GitHub](https://github.com/just-marketing/prompt-area): Source code, issue tracker, and contribution guidelines - [Agency Skills](https://github.com/just-marketing/agency-skills): Sibling open-source project by Juma — a library of Claude Code skills for marketing agencies (audits, strategy, content, reporting, and operations) ## Installation As an npm package (works with zero Tailwind config): ```bash pnpm add prompt-area # or: npm install prompt-area / yarn add prompt-area ``` ```tsx import { PromptArea } from 'prompt-area' import 'prompt-area/styles.css' ``` Or from the shadcn registry (copy the source into your project): ```bash pnpm dlx shadcn@latest add https://prompt-area.com/r/prompt-area.json # or: npx shadcn@latest add https://prompt-area.com/r/prompt-area.json ``` ### Install with AI Coding Agents Copy this prompt into your AI coding agent (Claude Code, Codex, Cursor, etc.). It reads these docs, installs Prompt Area (the npm package by default, or the shadcn registry if you ask), and wires it into your app — replacing any existing chat input or scaffolding a new one: ```text Install Prompt Area — a production-grade React chat/prompt input (@mentions, /commands, #tags, inline markdown, file attachments) — into this project. Do the full integration yourself; don't just print instructions. 1. Read the docs first. Fetch https://prompt-area.com/llms-full.txt and read it in full. It is the source of truth for the API, props, triggers, helpers, and required CSS — use it, don't guess. 2. Detect the project's package manager from its lockfile (npm, yarn, pnpm, or bun) and use it for every install and CLI command below. 3. Choose how to install, and default to the npm package: - npm package (default): add prompt-area with the detected package manager, then import { PromptArea } from 'prompt-area' and import 'prompt-area/styles.css' once at the app root. No Tailwind required. - shadcn: only if this project already uses shadcn/ui (a components.json exists) AND I explicitly ask for it — run shadcn@latest add https://prompt-area.com/r/prompt-area.json with the detected package manager's runner (npx, pnpm dlx, yarn dlx, or bunx), then add the .prompt-area-* component classes from the docs to globals.css. If it is ambiguous, ask me once which I want; otherwise use the npm package. 4. Wire it into the app. If a chat/prompt composer (or a