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

# Quickstart

> Create your first project, generate an image, animate it, and export — all in one sitting.

export const VideoPlayer = ({src, poster, aspectRatio = "16 / 9", title, className = ""}) => {
  const [playing, setPlaying] = useState(false);
  if (playing) {
    return <div className={`not-prose relative mx-auto my-6 w-full max-w-screen-md overflow-hidden rounded-2xl border border-gray-950/10 dark:border-white/10 ${className}`} style={{
      aspectRatio
    }}>
        <video src={src} controls autoPlay playsInline className="h-full w-full object-contain" />
      </div>;
  }
  return <button type="button" aria-label={title ? `Play video: ${title}` : "Play video"} style={{
    aspectRatio
  }} className={`not-prose group relative mx-auto my-6 block w-full max-w-screen-md cursor-pointer overflow-hidden rounded-2xl border border-gray-950/10 bg-gray-100 dark:border-white/10 dark:bg-white/5 ${className}`} onClick={() => setPlaying(true)}>
      <img src={poster} alt={title || "Video thumbnail"} className="h-full w-full cursor-pointer object-cover" />
      <div className="absolute inset-x-0 bottom-0 h-20 bg-gradient-to-t from-black/80 to-transparent sm:h-28" />
      <div className="absolute bottom-6 flex w-full items-center justify-between px-6">
        <p className="max-w-sm text-left text-lg font-semibold leading-tight text-white">
          {title}
        </p>
        <div className="rounded-full p-3 shadow-lg transition-all duration-300 group-hover:scale-110 group-active:scale-95" style={{
    backgroundColor: "#5C9987"
  }}>
          <svg width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" aria-hidden="true">
            <path d="M8 5v14l11-7L8 5z" />
          </svg>
        </div>
      </div>
    </button>;
};

This guide takes you from a fresh account to an exported video: you create a project, generate an image, animate it with a Video node, and download the result.

<VideoPlayer src="/videos/getting-started/quickstart.mp4" poster="/images/posters/getting-started/quickstart.jpg" title="Watch: your first project, from blank canvas to export" />

<Steps>
  <Step title="Create your account">
    Sign in with **Google**, **GitHub**, **Figma**, or a magic link sent to your email. If you used the magic link, verify your email when prompted and you're in.
  </Step>

  <Step title="Open your workspace">
    A [workspace](/collaboration/workspaces) holds your projects and teammates. Start in your own workspace, or accept an invite to join a team that already has one. Switch workspaces anytime from the rail on the left edge of the dashboard.
  </Step>

  <Step title="Create a project">
    From the [dashboard](/dashboard/overview), create a new project. It opens straight into the **Canvas** — the infinite node-based editor where all your work happens.
  </Step>

  <Step title="Add an Image node">
    Press the **+** button in the canvas toolbar and pick **Image**. An empty [Image node](/canvas/nodes/image) lands on the canvas, ready for a prompt.
  </Step>

  <Step title="Prompt and generate">
    Type what you want to see into the node's prompt field and generate. The result renders inside the node. Not what you pictured? Edit the prompt and generate again — every run is a fresh take.
  </Step>

  <Step title="Animate it with a Video node">
    Add a [Video node](/canvas/nodes/video), then drag a connection from the Image node's output into the Video node's input. Describe the motion you want and generate. The video uses your image as its starting frame.
  </Step>

  <Step title="Export your result">
    Open the video node's menu and choose **Download** to save the clip. When you're ready for a full edit — multiple clips, audio, effects — compose your nodes in [Studio](/studio/overview) and [export](/studio/export) from the timeline.
  </Step>
</Steps>

<Note>
  New accounts start with free credits, so you can generate right away. Generations reserve credits up front and refund them automatically if they fail — see [Credits](/billing/credits).
</Note>

<Tip>
  Want to skip the manual wiring? Describe your idea to the [AI assistant](/canvas/ai/overview) and it plans, adds, and connects the nodes for you.
</Tip>
