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

# Launch a paid event website

> Ship a program, speakers, venue, and paid tickets from Notion.

export const Connectors = ({items}) => <div style={{
  margin: "8px 0 20px"
}}>
    <style>{`
      .connectors-list, .connectors-list * { margin-top: 0 !important; margin-bottom: 0 !important; }
      .connectors-row {
        display: flex !important;
        align-items: flex-start !important;
        gap: 10px !important;
        padding: 4px 0 !important;
        min-height: 0 !important;
        height: auto !important;
      }
      .connectors-row img {
        width: 20px !important;
        height: 20px !important;
        max-width: 20px !important;
        max-height: 20px !important;
        margin: 2px 0 0 !important;
        display: block !important;
      }
    `}</style>
    <div className="connectors-list">
      {items.map((item, i) => <div key={item.id} className="connectors-row" style={{
  borderTop: i === 0 ? "none" : "1px solid rgba(130,130,130,0.22)"
}}>
          <img src={`/images/connectors/${item.id}.svg`} alt="" width={20} height={20} />
          <div style={{
  minWidth: 0
}}>
            <div>
              <strong>{item.name}</strong>
              {item.why ? <span style={{
  opacity: 0.72
}}> · {item.why}</span> : null}
            </div>
            {item.auth === "api-key" ? <div style={{
  fontSize: "11.5px",
  lineHeight: 1.35,
  color: "#F26207",
  marginTop: "2px"
}}>
                Not a native connector. Agent will ask for your API key.
              </div> : null}
          </div>
        </div>)}
    </div>
  </div>;

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block max-w-full overflow-x-hidden font-sans !whitespace-pre-wrap !break-words" style={{
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
      <div className="pr-7" style={{
    whiteSpace: "pre-wrap",
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
        {children}
      </div>
    </CodeBlock>;
};

Create a complete paid event website with program, speakers, venue, getting there, and
ticket checkout. Save attendees in Replit Database, take payment with Stripe, send
confirmation with Resend, and export the list. Place a test order before you share the
link.

## Best for

* Event marketers who need a public page and paid tickets for a conference, meetup, or launch.
* Community leads who need the agenda editable in the app, without a separate content system.

## Connectors

<Connectors
  items={[
{
  id: "notion",
  name: "Notion",
  why: "Speakers, program, and session times",
},
{ id: "resend", name: "Resend", why: "Confirmation emails after purchase" },
{ id: "stripe", name: "Stripe", why: "Paid tickets and checkout" },
]}
/>

## Before you start

Have event name, dates, venue, ticket price, and a Notion database for speakers (name, photo,
session). Connect Notion, Resend, and Stripe. Agent builds checkout in the app.

## Prompt the agent

<AiPrompt>
  Create a complete paid event website from this Notion page \[link]: program,
  speakers, venue, getting there, and ticket checkout. Use speaker name, photo,
  title, bio, and session times from Notion. Charge \[price] per ticket with
  Stripe. Save attendees in Replit Database, send confirmation with Resend, and
  export the list.
</AiPrompt>

## What to expect

Agent builds the public site and wires checkout, payment, confirmation, and the attendee
list. Place a test order before you share the link. Use Stripe test mode and a test card,
then check that confirmation arrives, the attendee is in the list, and the export includes
them before you switch to live charges.

## Make it work for you

<AiPrompt>
  Add a speakers page from this Notion database \[link]. Use name, photo, title,
  bio, and session times. Keep the page in sync when Notion changes.
</AiPrompt>

<AiPrompt>
  Close ticket sales when we hit \[n] attendees and show a waitlist form instead.
</AiPrompt>

## Troubleshooting

* **Confirmation email never arrives:** confirm Resend is connected and the sender domain is verified. Place a test order and check the Resend dashboard to see if the email was sent.
* **Speakers or times are wrong:** point Agent at the Notion database (name, photo, title, bio, session times) and ask it to keep the page in sync when Notion changes.
* **Checkout doesn't charge:** confirm Stripe is connected and you're in test mode first. Place a test order before you share the link.

## Related

<CardGroup cols={2}>
  <Card title="Design a landing page" href="/use-cases/design-landing-page">
    Same Notion brief for a waitlist or launch page.
  </Card>

  <Card title="Create social icons and banners" href="/use-cases/create-social-kit">
    For event marketers who also need profile and cover assets.
  </Card>
</CardGroup>
