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

# Build Interactive Farcaster Frames with Neynar

> Learn how to build interactive Farcaster frames 100x faster using Neynar's Frame Studio, no-code templates, and comprehensive Frame APIs. Create dynamic social experiences with validation, hosting, and embedding capabilities.

Neynar supports building frames in a few different ways:

* [Neynar Frame Studio](https://neynar.com/nfs): allows building frames with no code and pre-made templates

* Frame APIs:

  * [Validating frame actions](/reference/validate-frame-action), user and cast data in one API call
  * [CRUD](/reference/publish-neynar-frame) for hosted frames
  * Embedding frames in your client and [posting actions](/reference/post-frame-action)

## Neynar Frame architecture

### Pages for a frame

A page represents the most basic unit of a frame. A frame consists of one or more pages.

We've thoughtfully crafted a JSON format for a frames' page to abstract away building on the rapidly moving foundation of Farcaster Frames. *For context, Frames were launched a few weeks before writing this and have already seen 3-to 4 spec upgrades. We don't want Neynar developers to have to worry about handling those.*

Here's an example of a single page with four buttons. You can create these in the Frame Studio with no code or quickly create frames using our REST APIs.

<CodeGroup>
  ```Text JSON theme={"system"}
  {
    "uuid": "5ec484f5-efaf-4bda-9a3f-0579232a386a",
    "image": "https://i.imgur.com/gpn83Gm.png",
    "title": "Farcaster Dev Call",
    "buttons": [
      {
        "title": "Notes",
        "next_page": {
          "redirect_url": "https://warpcast.notion.site/Feb-1st-934e190578144aba8273b2bbdc29e5ab"
        },
        "action_type": "post_redirect"
      },
      {
        "title": "Calendar",
        "next_page": {
          "redirect_url": "https://calendar.google.com/calendar/u/0/r?cid=NjA5ZWM4Y2IwMmZiMWM2ZDYyMTkzNWM1YWNkZTRlNWExN2YxOWQ2NDU3NTA3MjQwMTk3YmJlZGFjYTQ3MjZlOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t"
        },
        "action_type": "post_redirect"
      },
      {
        "title": "Zoom",
        "next_page": {
          "redirect_url": "https://zoom.us/j/98052336425?pwd=aFYyRk9ZSDhqR1h5eVJENmtGSGo4UT09#success"
        },
        "action_type": "post_redirect"
      },
      {
        "title": "Recordings",
        "next_page": {
          "redirect_url": "https://www.youtube.com/playlist?list=PL0eq1PLf6eUeZnPtyKMS6uN9I5iRIlnvq"
        },
        "action_type": "post_redirect"
      }
    ],
    "version": "vNext"
  }
  ```
</CodeGroup>

## Hosting

Neynar hosts pages on behalf of developers. We convert this JSON format into the Metatags expected by the [Farcaster Mini Apps Specification](https://miniapps.farcaster.xyz/docs/specification) and [legacy Frames specification](https://docs.farcaster.xyz/reference/frames/spec).

If you have questions/feedback, please reach out to [@rish](https://warpcast.com/rish)or [@manan](https://warpcast.com/manan) on Farcaster. We will continue improving the frames experience! <Icon icon="planet-ringed" iconType="solid" />
