> ## Documentation Index
> Fetch the complete documentation index at: https://tomee-redesign-index-page.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Mintlify is an AI-native documentation platform built for developers, with beautiful defaults, interactive API playgrounds, and smart search.

export const SETUP_AGENT_PROMPT = `Get my documentation live on a published Mintlify site. You are successfully done when you give me the live URL and confirm it loads. Tell me clearly whenever a step needs my input—do everything else yourself. If this prompt was pasted before (for example, after a restart), continue from where things left off instead of starting over. If you don't have terminal or command execution access, tell me to follow the manual steps at [mintlify.com/start](https://mintlify.com/start) instead. Everything below requires running commands and requires Node.js v20.17.0+ (LTS versions recommended).

1. Ask for my existing content that will be used for my Mintlify site. This may be a local folder or a repo. Verify the source before building: echo back exactly what you're reading and list its top-level contents so I can confirm it's right. If you can't access something I named (private repos return 404, same as nonexistent), stop and ask. Never substitute a different source.
2. Check whether \`mint\` is installed with \`mint --version\`. If it's missing, install it with \`npm i -g mint\` (or \`pnpm add -g mint\`). If it's already installed, run \`mint update\` instead of reinstalling.
3. Run \`mint status\`. If it already shows an organization, skip to step 7.
4. Needs me: If \`mint status\` shows I'm not logged in, ask me directly whether I already have a Mintlify account. Don't guess.
   - If I have one: run \`mint login\`. You need me for browser steps and to approve access.
   - If I don't: ask me for my first name, last name, company, and email if I haven't given them already—never invent these. Run \`mint signup --firstName [firstName] --lastName [lastName] --company [company] --email [email]\` as a background task since it blocks until I click a verification link that can take several minutes.
5. Needs me: I'll check my email and click the verification link. That opens a browser tab that automatically finishes the rest of account creation/logging in. I must approve the CLI, then connect a GitHub repository or let Mintlify host one. Tell me clearly this step is mine, then wait for it before continuing.
6. Run \`mint status\` again to confirm an organization and subdomain now exist. The subdomain isn't provisioned until I select or connect a repository during the step 5 browser flow — so if \`mint status\` shows my organization but no subdomain yet, that almost always means I haven't finished the repo step, not that anything is broken. Don't treat it as an error or poll blindly: wait until I confirm I've completed onboarding, then re-run \`mint status\`. Provisioning can still lag a few seconds after that, so retry a few times before concluding something is wrong.
7. Needs me: ask for the URL of the repository connected to my Mintlify project — \`mint status\` doesn't expose it, so you can't look it up yourself. Clone it once I give it to you.
8. Check what's in that repo. If I connected my own existing docs repo, my content is already there — don't overwrite it. If Mintlify created the repo, it contains starter template content — replace that with my actual docs content from step 1. Only use \`mint new [directory]\` if I want a different theme or template than what's in the repo — scaffold it locally, then use its output in place of the seeded content.
9. Preview with \`mint dev\`, which generally starts on \`http://localhost:3000\` unless that port is in use. It blocks until stopped, so run it as a background task. Verify the preview loads, then stop it before continuing.
10. Commit and push your changes. Mintlify deploys automatically on push.
11. Needs me: If I want a custom domain, run \`mint add-domain <domain>\`. It prints the DNS records I need to add with my domain provider. Tell me the DNS records, since only I can configure them at my registrar. Make it clear that this is a step I must complete.
12. Confirm my site is live: fetch \`https://<subdomain>.mintlify.site\` (find the subdomain via \`mint status\`) and confirm it loads. If I added a custom domain in step 11, also fetch that domain and confirm it loads before calling this step done—DNS propagation can lag, so retry a few times before treating a failed fetch as an error.
13. Set yourself up to keep working here: install the [Mintlify skill](https://mintlify.com/docs/ai/skillmd.md) with \`npx skills add https://mintlify.com/docs\`, then register the [admin MCP server](https://mintlify.com/docs/ai/model-context-protocol.md) at \`https://mcp.mintlify.com\` for your specific tool. For example, \`claude mcp add --transport http mintlify https://mcp.mintlify.com\` for Claude Code or fetch https://mintlify.com/docs/ai/mintlify-mcp.md for instructions for Claude, Cursor, Codex, or ChatGPT. Do this step yourself—don't ask me to run these commands.
14. Needs me: the first admin MCP tool call opens a browser window for OAuth login. Approve it there. Most tools don't load newly added MCP servers mid-session — if the Mintlify tools don't show up, tell me to restart you and we'll pick up from here.
15. If any command fails in a way not covered above, stop and tell me the exact error rather than guessing or retrying blindly. If it looks like something's wrong on Mintlify's end rather than in what you're doing, check https://status.mintlify.com or point me to https://mintlify.com/docs/contact-support.`;

export const Icon = ({children}) => {
  return <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" width="20" height="20" aria-hidden="true" focusable="false">
      {children}
    </svg>;
};

export const ArrowIcon = () => {
  return <svg className="mint-home-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round" width="16" height="16" aria-hidden="true" focusable="false">
      <path d="M5 12h14" />
      <path d="m12 5 7 7-7 7" />
    </svg>;
};

export const HomeCard = ({icon, title, description, href}) => {
  return <a className="mint-home-card group" href={href}>
      <span className="mint-home-card-icon">{icon}</span>
      <div className="mt-auto flex flex-col gap-2 pt-16 lg:pt-20">
        <h3 className="mint-home-card-title">
          {title}
          <ArrowIcon />
        </h3>
        <p className="mint-home-card-body">{description}</p>
      </div>
    </a>;
};

export const SetupPrompt = ({prompt}) => {
  const [copied, setCopied] = useState(false);
  const [expanded, setExpanded] = useState(false);
  const copy = () => {
    navigator.clipboard.writeText(prompt);
    setCopied(true);
    setTimeout(() => setCopied(false), 1600);
  };
  return <div className="mint-home-prompt" data-expanded={expanded ? "true" : undefined}>
      <div className="mint-home-prompt-head">
        <span className="mint-home-prompt-label">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" width="16" height="16" aria-hidden="true" focusable="false">
            <path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" />
            <path d="M20 3v4" />
            <path d="M22 5h-4" />
          </svg>
          Set up Mintlify with your agent
        </span>

        <div className="mint-home-prompt-actions">
          <button type="button" className="mint-home-btn mint-home-btn--primary" onClick={copy}>
            {copied ? <Icon>
                <path d="M20 6 9 17l-5-5" />
              </Icon> : <Icon>
                <rect width="14" height="14" x="8" y="8" rx="2" ry="2" />
                <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" />
              </Icon>}
            {copied ? "Copied" : "Copy prompt"}
          </button>

          <a className="mint-home-btn mint-home-btn--secondary" href={`https://cursor.com/link/prompt?text=${encodeURIComponent(prompt)}`}>
            Open in Cursor
          </a>
        </div>
      </div>

      <div className="mint-home-prompt-body" id="mint-home-setup-prompt">
        <div className="mint-home-prompt-text">{prompt}</div>
      </div>

      <button type="button" className="mint-home-prompt-toggle" onClick={() => setExpanded(!expanded)} aria-expanded={expanded} aria-controls="mint-home-setup-prompt">
        {expanded ? "Show less" : "Read the full prompt"}
        <Icon>
          <path d="m6 9 6 6 6-6" />
        </Icon>
      </button>
    </div>;
};

<div className="mint-home">
  <section className="relative overflow-hidden">
    <div className="mint-home-dots-fade pointer-events-none absolute inset-0" aria-hidden="true">
      <div className="mint-home-dots absolute inset-0" />
    </div>

    <div className="mint-home-rail relative flex flex-col items-center gap-8 px-6 pb-14 pt-16 text-center lg:pb-20 lg:pt-24">
      <div className="flex max-w-2xl flex-col items-center gap-4">
        <h1 className="mint-home-title">Documentation</h1>

        <p className="mint-home-lede max-w-xl">
          Meet the next generation of documentation. AI-native, beautiful out-of-the-box, and built for developers and teams.
        </p>
      </div>

      <SetupPrompt prompt={SETUP_AGENT_PROMPT} />
    </div>
  </section>

  <div className="mint-home-divider" />

  <section className="mint-home-rail px-6 py-12 lg:py-16">
    <div className="grid gap-4 sm:grid-cols-2">
      <HomeCard
        icon={
      <Icon>
        <path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91 0z" />
        <path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z" />
        <path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0" />
        <path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" />
      </Icon>
    }
        title="Quickstart"
        description="Deploy your first docs site in minutes with our step-by-step guide"
        href="/quickstart"
      />

      <HomeCard
        icon={
      <Icon>
        <path d="m4 17 6-6-6-6" />
        <path d="M12 19h8" />
      </Icon>
    }
        title="CLI installation"
        description="Install the CLI to preview and develop your docs locally"
        href="/installation"
      />

      <HomeCard
        icon={
      <Icon>
        <path d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
        <path d="M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z" />
      </Icon>
    }
        title="Web editor"
        description="Make quick updates and manage content with our browser-based editor"
        href="/editor/index"
      />

      <HomeCard
        icon={
      <Icon>
        <rect width="7" height="7" x="3" y="3" rx="1" />
        <rect width="7" height="7" x="14" y="3" rx="1" />
        <rect width="7" height="7" x="14" y="14" rx="1" />
        <rect width="7" height="7" x="3" y="14" rx="1" />
      </Icon>
    }
        title="Components"
        description="Build rich, interactive documentation with our ready-to-use components"
        href="/components/accordions"
      />
    </div>
  </section>
</div>
