> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Start building with StreamNative

> Stream with Apache Pulsar and Apache Kafka, build agents on the Agent Engine. Run it all on StreamNative Cloud.

<div
  style={{
paddingTop: '40px',
maxWidth: '1200px',
margin: '0 auto',
padding: '40px 20px 0'
}}
>
  <div
    style={{
display: 'grid',
gridTemplateColumns: 'repeat(auto-fit, minmax(420px, 1fr))',
gap: '32px',
alignItems: 'start',
marginBottom: '64px'
}}
  >
    <div>
      <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '0 0 12px 0' }}>
        StreamNative Platform
      </p>

      <h1
        style={{
fontFamily: "'Funnel Display', sans-serif",
fontSize: '3rem',
fontWeight: 500,
lineHeight: 1.1,
letterSpacing: '-0.02em',
margin: '0 0 16px 0'
}}
      >
        Start building<br />with StreamNative
      </h1>

      <p style={{ fontSize: '1.0625rem', lineHeight: 1.55, color: 'rgb(75, 85, 99)', margin: '0 0 28px 0', maxWidth: '460px' }}>
        Everything you need to stream with Apache Pulsar and Apache Kafka, and build agents on the Agent Engine. From first message to production.
      </p>

      <div style={{ display: 'flex', gap: '12px', flexWrap: 'wrap' }}>
        <a href="/cloud/get-started/quickstart-console" style={{ display: 'inline-flex', alignItems: 'center', gap: '8px', padding: '10px 18px', borderRadius: '999px', border: '1px solid rgb(229, 231, 235)', background: 'white', color: 'inherit', fontSize: '0.9375rem', textDecoration: 'none' }}>
          ▶ Quickstart
        </a>

        <a href="https://console.streamnative.cloud" style={{ display: 'inline-flex', alignItems: 'center', gap: '8px', padding: '10px 18px', borderRadius: '999px', border: '1px solid rgb(229, 231, 235)', background: 'white', color: 'inherit', fontSize: '0.9375rem', textDecoration: 'none' }}>
          <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <polyline points="4 17 10 11 4 5" />

            <line x1="12" y1="19" x2="20" y2="19" />
          </svg>

          Open Console
        </a>

        <a href="/api-references/cloudapi/cloud-api" style={{ display: 'inline-flex', alignItems: 'center', gap: '8px', padding: '10px 18px', borderRadius: '999px', border: '1px solid rgb(229, 231, 235)', background: 'white', color: 'inherit', fontSize: '0.9375rem', textDecoration: 'none' }}>
          <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <polyline points="16 18 22 12 16 6" />

            <polyline points="8 6 2 12 8 18" />
          </svg>

          API reference
        </a>
      </div>
    </div>

    <div>
      <CodeGroup>
        ```java Pulsar (Java) theme={null}
        import org.apache.pulsar.client.api.*;

        PulsarClient client = PulsarClient.builder()
          .serviceUrl("pulsar+ssl://your-cluster.streamnative.cloud:6651")
          .authentication(AuthenticationFactory.token("your-token"))
          .build();

        Producer<String> producer = client.newProducer(Schema.STRING)
          .topic("persistent://public/default/orders")
          .create();

        producer.send("Hello StreamNative!");
        ```

        ```python Pulsar (Python) theme={null}
        import pulsar

        client = pulsar.Client(
            'pulsar+ssl://your-cluster.streamnative.cloud:6651',
            authentication=pulsar.AuthenticationToken('your-token'),
        )

        producer = client.create_producer('persistent://public/default/orders')
        producer.send('Hello StreamNative!'.encode('utf-8'))

        client.close()
        ```

        ```go Pulsar (Go) theme={null}
        client, _ := pulsar.NewClient(pulsar.ClientOptions{
            URL: "pulsar+ssl://your-cluster.streamnative.cloud:6651",
            Authentication: pulsar.NewAuthenticationToken("your-token"),
        })

        producer, _ := client.CreateProducer(pulsar.ProducerOptions{
            Topic: "persistent://public/default/orders",
        })

        producer.Send(context.Background(), &pulsar.ProducerMessage{
            Payload: []byte("Hello StreamNative!"),
        })
        ```

        ```java Kafka (Java) theme={null}
        import org.apache.kafka.clients.producer.*;
        import java.util.Properties;

        Properties props = new Properties();
        props.put("bootstrap.servers", "your-cluster.streamnative.cloud:9093");
        props.put("security.protocol", "SASL_SSL");
        props.put("sasl.mechanism", "PLAIN");
        props.put("sasl.jaas.config",
          "org.apache.kafka.common.security.plain.PlainLoginModule required " +
          "username=\"$Token\" password=\"your-token\";");
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        try (Producer<String, String> producer = new KafkaProducer<>(props)) {
          producer.send(new ProducerRecord<>("orders", "Hello StreamNative!"));
        }
        ```

        ```bash Kafka (kcat) theme={null}
        kcat -P -b your-cluster.streamnative.cloud:9093 \
          -X security.protocol=SASL_SSL \
          -X sasl.mechanisms=PLAIN \
          -X sasl.username='$Token' \
          -X sasl.password='your-token' \
          -t orders <<< "Hello StreamNative!"
        ```
      </CodeGroup>
    </div>
  </div>

  <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '0 0 8px 0' }}>
    Platform
  </p>

  <h2 style={{ fontSize: '1.875rem', fontWeight: 500, fontFamily: "'Funnel Display', sans-serif", margin: '0 0 12px 0' }}>
    Choose how you stream
  </h2>

  <p style={{ fontSize: '1rem', color: 'rgb(75, 85, 99)', margin: '0 0 24px 0', maxWidth: '720px' }}>
    Pick the streaming protocol that matches your stack. StreamNative Cloud runs both natively on the same engine.
  </p>

  <CardGroup cols={2}>
    <Card title="Pulsar" icon={<img src="/images/pulsar-icon.svg" alt="Pulsar" style={{ width: '24px', height: '24px' }} />} href="/cloud/overview/cloud-overview">
      Native Apache Pulsar messaging with multi-tenancy, geo-replication, and tiered storage.

      * [Quickstart](/cloud/get-started/quickstart-console)
      * [Pulsar Clients](/clients/pulsar-clients/pulsar-clients-overview)
      * [API reference](/api-references/cloudapi/cloud-api)
    </Card>

    <Card title="Kafka" icon={<img src="/images/kafka-icon.svg" alt="Kafka" style={{ width: '24px', height: '24px' }} />} href="/kafka/overview">
      Native Kafka API on the StreamNative Ursa engine. Bring your existing Kafka clients.

      * [Quickstart](/cloud/get-started/quickstart-kafka)
      * [Kafka Clients](/clients/kafka-clients/kafka-clients-overview)
      * [API reference](/api-references/kafka-rest-api/kafka-rest-api)
    </Card>
  </CardGroup>

  <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '40px 0 8px 0' }}>
    Cluster types
  </p>

  <h2 style={{ fontSize: '1.875rem', fontWeight: 500, fontFamily: "'Funnel Display', sans-serif", margin: '0 0 12px 0' }}>
    Choose the right cluster for your workload
  </h2>

  <p style={{ fontSize: '1rem', color: 'rgb(75, 85, 99)', margin: '0 0 24px 0', maxWidth: '720px' }}>
    Pay-per-use, predictable, or in your own cloud account.
  </p>

  <CardGroup cols={3}>
    <Card title="Serverless" icon="bolt" href="/cloud/clusters/cluster-types">
      **Burstable** — pay as you go. Best for event-driven workloads with variable throughput.
    </Card>

    <Card title="Dedicated" icon="layer-group" href="/cloud/clusters/cluster-types">
      **Predictable** — reserved capacity. Best for steady production workloads at scale.
    </Card>

    <Card title="BYOC" icon="cloud-arrow-up" href="/cloud/clusters/byoc/byoc-overview">
      **Your account** — runs in your AWS/Azure/GCP/Alibaba VPC. Data never leaves your perimeter.
    </Card>
  </CardGroup>

  <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '40px 0 8px 0' }}>
    Developer journey
  </p>

  <h2 style={{ fontSize: '1.875rem', fontWeight: 500, fontFamily: "'Funnel Display', sans-serif", margin: '0 0 12px 0' }}>
    From idea to production
  </h2>

  <p style={{ fontSize: '1rem', color: 'rgb(75, 85, 99)', margin: '0 0 24px 0', maxWidth: '720px' }}>
    Follow the lifecycle or jump to what you need.
  </p>

  <Tabs>
    <Tab title="Pulsar">
      <Steps>
        <Step title="Get started">
          <CardGroup cols={3}>
            <Card title="Quickstart" icon="play" href="/cloud/get-started/quickstart-console" />

            <Card title="Choose a cluster" icon="layer-group" href="/cloud/clusters/cluster-types" />

            <Card title="Pulsar overview" icon="circle-info" href="/cloud/overview/cloud-overview" />
          </CardGroup>
        </Step>

        <Step title="Build">
          <CardGroup cols={3}>
            <Card title="Pulsar Clients" icon="code" href="/clients/pulsar-clients/pulsar-clients-overview" />

            <Card title="Topics & namespaces" icon="folder-tree" href="/cloud/manage-data-streams/data-streams-overview" />

            <Card title="Pulsar Functions" icon="bolt" href="/cloud/process/pulsar-functions/functions-overview" />
          </CardGroup>
        </Step>

        <Step title="Connect">
          <CardGroup cols={3}>
            <Card title="Pulsar IO" icon="plug" href="/cloud/connect/pulsar-io/connector-overview" />

            <Card title="Connector Hub" icon="puzzle-piece" href="/connect/overview" />
          </CardGroup>
        </Step>

        <Step title="Operate">
          <CardGroup cols={3}>
            <Card title="Service accounts" icon="key" href="/cloud/security/authentication/service-accounts/service-accounts" />

            <Card title="Networking" icon="network-wired" href="/cloud/networking/networking" />

            <Card title="Monitoring" icon="chart-line" href="/cloud/log-and-monitor/cloud-metrics-api" />
          </CardGroup>
        </Step>

        <Step title="Scale">
          <CardGroup cols={3}>
            <Card title="Autoscaling" icon="up-right-and-down-left-from-center" href="/cloud/clusters/scale-clusters/cloud-autoscaling" />

            <Card title="Resize cluster" icon="arrow-up-right-dots" href="/cloud/clusters/scale-clusters/resize-a-cluster" />

            <Card title="Geo-replication" icon="globe" href="/cloud/clusters/cloud-geo-replication" />
          </CardGroup>
        </Step>
      </Steps>
    </Tab>

    <Tab title="Kafka">
      <Steps>
        <Step title="Get started">
          <CardGroup cols={3}>
            <Card title="Quickstart" icon="play" href="/cloud/get-started/quickstart-kafka" />

            <Card title="Choose a cluster" icon="layer-group" href="/cloud/clusters/cluster-types" />

            <Card title="Kafka overview" icon="circle-info" href="/kafka/overview" />
          </CardGroup>
        </Step>

        <Step title="Build">
          <CardGroup cols={3}>
            <Card title="Kafka Clients" icon="code" href="/clients/kafka-clients/kafka-clients-overview" />

            <Card title="Schemas" icon="diagram-project" href="/cloud/governance/kafka-schemas/kafka-schema-registry" />

            <Card title="Kafka Streams" icon="bolt" href="/cloud/process/kafka-streams-and-ksql/kafka-streams-and-ksql" />
          </CardGroup>
        </Step>

        <Step title="Migrate">
          <CardGroup cols={3}>
            <Card title="Migration guide" icon="arrow-right-arrow-left" href="/kafka/kafka-migration-guide" />
          </CardGroup>
        </Step>

        <Step title="Operate">
          <CardGroup cols={3}>
            <Card title="Service accounts" icon="key" href="/cloud/security/authentication/service-accounts/service-accounts" />

            <Card title="Networking" icon="network-wired" href="/cloud/networking/networking" />

            <Card title="Monitoring" icon="chart-line" href="/cloud/log-and-monitor/cloud-metrics-api" />
          </CardGroup>
        </Step>

        <Step title="Scale">
          <CardGroup cols={3}>
            <Card title="Autoscaling" icon="up-right-and-down-left-from-center" href="/cloud/clusters/scale-clusters/cloud-autoscaling" />

            <Card title="Resize cluster" icon="arrow-up-right-dots" href="/cloud/clusters/scale-clusters/resize-a-cluster" />
          </CardGroup>
        </Step>
      </Steps>
    </Tab>
  </Tabs>

  <p style={{ fontSize: '0.875rem', fontWeight: 600, letterSpacing: '0.05em', color: 'rgb(107, 114, 128)', textTransform: 'uppercase', margin: '40px 0 8px 0' }}>
    Resources
  </p>

  <h2 style={{ fontSize: '1.875rem', fontWeight: 500, fontFamily: "'Funnel Display', sans-serif", margin: '0 0 12px 0' }}>
    Keep learning
  </h2>

  <CardGroup cols={2}>
    <Card title="Connector Hub" icon="puzzle-piece" href="/connect/overview">
      Browse the marketplace of pre-built connectors.
    </Card>

    <Card title="Release notes" icon="list-check" href="/release-notes/cloud/release-notes">
      What's new across StreamNative releases.
    </Card>
  </CardGroup>
</div>
