> ## Documentation Index
> Fetch the complete documentation index at: https://hoopdev-feat-new-runbook-parameters.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting Started

> Secure gateway access to your infrastructure with AI-powered security

export const HeroAnimation = () => {
  const QUERY = 'SELECT * FROM customers LIMIT 4;';
  const ROWS = [{
    id: 1001,
    name: 'J. Smith',
    ssn: '123-45-6789',
    email: 'jsmith@acme.com'
  }, {
    id: 1002,
    name: 'M. Rodriguez',
    ssn: '234-56-7890',
    email: 'mrodriguez@acme.com'
  }, {
    id: 1003,
    name: 'A. Chen',
    ssn: '345-67-8901',
    email: 'achen@acme.com'
  }, {
    id: 1004,
    name: 'S. Patel',
    ssn: '456-78-9012',
    email: 'spatel@acme.com'
  }];
  const [cycle, setCycle] = useState(0);
  const [typedLen, setTypedLen] = useState(0);
  const [visibleRows, setVisibleRows] = useState(0);
  const [phase, setPhase] = useState('typing');
  const timers = useRef([]);
  function T(fn, delay) {
    const id = setTimeout(fn, delay);
    timers.current.push(id);
  }
  useEffect(() => {
    timers.current.forEach(clearTimeout);
    timers.current = [];
    setTypedLen(0);
    setVisibleRows(0);
    setPhase('typing');
    let t = 0;
    for (let i = 1; i <= QUERY.length; i++) {
      t += 38;
      const ci = i;
      T(() => setTypedLen(ci), t);
    }
    t += 350;
    for (let r = 1; r <= ROWS.length; r++) {
      const cr = r;
      T(() => setVisibleRows(cr), t);
      t += 95;
    }
    t += 900;
    T(() => setPhase('flashing'), t);
    t += 480;
    T(() => setPhase('masked'), t);
    t += 3200;
    T(() => setPhase('resetting'), t);
    t += 550;
    T(() => setCycle(c => c + 1), t);
    return () => timers.current.forEach(clearTimeout);
  }, [cycle]);
  const isMasked = phase === 'masked';
  const isFlashing = phase === 'flashing';
  const isResetting = phase === 'resetting';
  const showRows = phase !== 'typing' && phase !== 'resetting';
  return <div className="ha-root" aria-hidden="true">
      <div className={`mock-container ha-mock${isResetting ? ' ha-fadeout' : ''}`}>

        {}
        <div className="mock-toolbar" style={{
    justifyContent: 'space-between'
  }}>
          <div style={{
    display: 'flex',
    gap: 6
  }}>
            <div className="mock-dot" />
            <div className="mock-dot" />
            <div className="mock-dot" />
          </div>
          <span className="ha-wintitle">hoop — postgres:prod</span>
          <span style={{
    width: 48
  }} />
        </div>

        {}
        <div className="ha-querybar">
          <span className="ha-prompt">psql&gt; </span>
          <span className="ha-querytext">{QUERY.slice(0, typedLen)}</span>
          {!isMasked && !isResetting && <span className="ha-cursor" />}
        </div>

        {}
        <div className="ha-tablewrap">
          <table className="ha-table">
            <thead>
              <tr>
                <th className="ha-th">id</th>
                <th className="ha-th">name</th>
                <th className="ha-th">ssn</th>
                <th className="ha-th">email</th>
              </tr>
            </thead>
            <tbody>
              {ROWS.map((row, i) => <tr key={row.id} className="ha-tr" style={{
    opacity: showRows && i < visibleRows ? 1 : 0,
    transition: 'opacity 0.2s ease'
  }}>
                  <td className="ha-td ha-dim">{row.id}</td>
                  <td className="ha-td ha-bright">{row.name}</td>
                  <td className={`ha-td ha-sensitive${isFlashing ? ' ha-flash' : ''}${isMasked ? ' ha-masked' : ''}`}>
                    {isMasked ? `***-**-${row.ssn.slice(-4)}` : row.ssn}
                  </td>
                  <td className={`ha-td ha-sensitive${isFlashing ? ' ha-flash' : ''}${isMasked ? ' ha-masked' : ''}`}>
                    {isMasked ? '****@****.com' : row.email}
                  </td>
                </tr>)}
            </tbody>
          </table>
        </div>

        {}
        <div className={`ha-notice${isMasked ? ' ha-notice-visible' : ''}`}>
          <span className="ha-notice-dot" />
          <span>2 columns masked · SSN · email</span>
        </div>

      </div>

      <style>{`
        .ha-root {
          position: relative;
          width: 100%;
          max-width: 540px;
        }

        .ha-mock {
          border-radius: 12px;
          overflow: hidden;
          transition: opacity 0.4s ease;
        }

        .ha-fadeout {
          opacity: 0;
        }

        .ha-wintitle {
          font-family: var(--mono);
          font-size: 11px;
          color: rgba(var(--sand-100-rgb), 0.2);
        }

        /* Query bar */
        .ha-querybar {
          display: flex;
          align-items: center;
          padding: 9px 16px;
          background: rgba(var(--sand-100-rgb), 0.03);
          border-top: 1px solid rgba(var(--sand-100-rgb), 0.06);
          border-bottom: 1px solid rgba(var(--sand-100-rgb), 0.06);
          min-height: 38px;
        }

        .ha-prompt {
          font-family: var(--mono);
          font-size: 12px;
          color: rgba(var(--warm-gold-rgb), 0.7);
          flex-shrink: 0;
        }

        .ha-querytext {
          font-family: var(--mono);
          font-size: 12px;
          color: rgba(var(--sand-100-rgb), 0.7);
        }

        .ha-cursor {
          display: inline-block;
          width: 6px;
          height: 13px;
          background: rgba(var(--sand-100-rgb), 0.5);
          margin-left: 1px;
          vertical-align: middle;
          animation: ha-blink 1s step-end infinite;
        }

        @keyframes ha-blink {
          0%, 100% { opacity: 1; }
          50%       { opacity: 0; }
        }

        /* Table */
        .ha-tablewrap {
          overflow-x: auto;
          padding-bottom: 4px;
        }

        .ha-table {
          width: 100%;
          border-collapse: collapse;
          font-family: var(--mono);
          font-size: 12px;
        }

        .ha-th {
          text-align: left;
          padding: 7px 16px;
          color: rgba(var(--sand-100-rgb), 0.25);
          font-size: 10px;
          font-weight: 500;
          text-transform: uppercase;
          letter-spacing: 0.06em;
          border-bottom: 1px solid rgba(var(--sand-100-rgb), 0.04);
        }

        .ha-tr:not(:last-child) td {
          border-bottom: 1px solid rgba(var(--sand-100-rgb), 0.04);
        }

        .ha-td {
          padding: 7px 16px;
          transition: color 0.25s ease, background 0.25s ease;
        }

        .ha-dim       { color: rgba(var(--sand-100-rgb), 0.3);  }
        .ha-bright    { color: rgba(var(--sand-100-rgb), 0.6);  }
        .ha-sensitive { color: rgba(var(--sand-100-rgb), 0.5);  }

        .ha-flash {
          color: var(--warm-gold) !important;
          background: rgba(var(--warm-gold-rgb), 0.1);
        }

        .ha-masked {
          color: var(--warm-gold) !important;
          font-weight: 600;
        }

        /* Masking notice */
        .ha-notice {
          display: flex;
          align-items: center;
          gap: 7px;
          padding: 8px 16px;
          border-top: 1px solid rgba(var(--sand-100-rgb), 0.06);
          font-family: var(--sans);
          font-size: 11px;
          color: rgba(var(--warm-gold-rgb), 0.75);
          opacity: 0;
          transform: translateY(4px);
          transition: opacity 0.3s ease, transform 0.3s ease;
        }

        .ha-notice-visible {
          opacity: 1;
          transform: translateY(0);
        }

        .ha-notice-dot {
          width: 6px;
          height: 6px;
          border-radius: 50%;
          background: var(--warm-gold);
          flex-shrink: 0;
        }
      `}</style>
    </div>;
};

<div style={{background: 'linear-gradient(135deg, #111111 0%, #1A1A1A 35%, #2A2A2A 70%, #3A3A3A 100%)', borderRadius: 14, overflow: 'hidden', padding: 24, height: 350}}>
  <HeroAnimation />
</div>

Hoop.dev is an access gateway for databases and servers with AI-powered automations that eliminate cumbersome access policies and break-glass workflows without compromising security. Our platform provides secure, auditable, and easy-to-manage access to your infrastructure.

## The Challenge of Infrastructure Access

Organizations face significant challenges when managing access to critical infrastructure:

* Security risks from overly permissive access policies
* Productivity bottlenecks from complex approval workflows
* Compliance headaches due to inadequate audit trails
* Visibility gaps in understanding who accessed what and when
* Sensitive data exposure risks during access sessions

Hoop.dev addresses these challenges by providing a secure gateway that sits between your users and your infrastructure, delivering zero-config security features that protect your resources while streamlining access for developers.

## Our Solutions

Hoop.dev offers a range of features to help you secure your infrastructure and streamline access for developers, including:

<CardGroup cols={2}>
  <Card title="Live Data Masking" icon="mask" href="/learn/features/live-data-masking">
    Zero-config DLP policies that automatically mask sensitive data in real-time at the protocol layer. Protect PII, credentials, and other sensitive information without requiring complex rule setup.

    <br />

    **Learn more** <Icon icon="arrow-right" />
  </Card>

  <Card title="Access Requests" icon="clock" href="/learn/features/access-requests/jit">
    Enable time-based access sessions or command-level approvals. Users request access while approvers guarantee security without sacrificing productivity.

    <br />

    **Learn more** <Icon icon="arrow-right" />
  </Card>

  <Card title="Access Control" icon="lock" href="/learn/features/access-control">
    Define granular access policies determining which users or groups can access specific connections. Integrate with your existing identity provider to maintain consistent access governance.

    <br />

    **Learn more** <Icon icon="arrow-right" />
  </Card>

  <Card title="Guardrails" icon="shield" href="/learn/features/guardrails">
    Intelligent protection layer that automatically enforces access policies and prevents risky operations in real-time. Keep your infrastructure secure with smart command filtering and context-aware access.

    <br />

    **Learn more** <Icon icon="arrow-right" />
  </Card>

  <Card title="Runbooks" icon="book" href="/learn/features/runbooks">
    Automate tasks with templated runbooks. Create, share, and execute procedures through a Git-based system, improving consistency and reducing errors.

    <br />

    **Learn more** <Icon icon="arrow-right" />
  </Card>

  <Card icon="key" title="Secrets Management" href="/learn/features/secrets-manager">
    Securely integrate with most popular secrets management tools. Dynamically expand environment variables without exposing sensitive credentials.

    <br />

    **Learn more** <Icon icon="arrow-right" />
  </Card>
</CardGroup>

## Common Use Cases

<AccordionGroup>
  <Accordion title="Database Access Management">
    Provide secure, audited access to databases while masking sensitive data. Enable developers to run queries without direct access to production credentials.
  </Accordion>

  <Accordion title="Secure Server Access Without VPN">
    Eliminate the need for VPN by providing secure, authenticated access to servers and applications through Hoop.dev's gateway.
  </Accordion>

  <Accordion title="Compliance & Auditing">
    Meet regulatory requirements with comprehensive session recordings, access logs, and data protection features that document who accessed what and when.
  </Accordion>

  <Accordion title="Developer Productivity">
    Streamline access to resources developers need while maintaining security guardrails that protect sensitive systems and data.
  </Accordion>
</AccordionGroup>

## Getting Started

Hoop.dev is currently available in managed and self-hosted modes. Choose the option that best fits your needs:

<CardGroup cols={2}>
  <Card title="Managed Service" icon="cloud" href="https://hoop.dev/start">
    Get started with our managed platform. No complex setup required - just register and begin connecting your resources to secure your infrastructure access immediately.

    <br />

    **Create free account** <Icon icon="arrow-right" />
  </Card>

  <Card title="Self-Hosted" icon="server" href="/setup/deployment/overview">
    Deploy Hoop.dev in your own infrastructure using Docker, Kubernetes, or AWS. Take full control over your environment setup with the same powerful features.

    <br />

    **Go to deployment guide** <Icon icon="arrow-right" />
  </Card>
</CardGroup>
