Blocks and links

Your page is a stack of blocks. A block is one thing: a link, a heading, an embed, a form that takes an email address. You add blocks, you put them in an order, and the page updates while you work. There are seventeen types across four groups, and all but four of them are on the free plan.

The Studio

Open the dashboard and pick My Page. On a wide screen the Studio gives you three columns.

The Studio: the block list on the left, a phone preview in the middle, and the design panel on the right
My Page, three columns

The block list sits on the left, with your profile block pinned above it. The profile block holds your name, bio, avatar, and social icons, and it cannot be deleted or reordered.

The stage sits in the middle and renders the real page, not a mockup of it. Two toggles above it switch between phone width and desktop width, and the desktop view draws a browser bar with your address in it. Click any block on the stage to select it.

The inspector sits on the right with two tabs: Block, for whatever you have selected, and Design, which covers the whole page. Nothing selected shows Design; selecting a block always flips you back to Block.

Press p to see your page full screen the way a visitor sees it, gates and all. Press p again to come back, or use the Preview button in the header, which reads Edit while you are in it. The shortcut is ignored while you are typing in a field.

On a phone the block list takes the full screen and the inspector opens as a sheet from the bottom.

Adding a block

Use Add block at the end of the list. The menu is grouped into Essentials, Media, Engage, and Commerce. A new block lands at the bottom of the page and opens in the inspector straight away.

Cmd+K opens a command palette that adds a link, a heading, a divider, or an embed without your hands leaving the keyboard. The same palette copies your page link, opens the invite sheet, and jumps between dashboard tabs.

A new block stays a draft until it has the one thing it cannot work without: a link needs a valid URL, a heading needs text, a poll needs two options, a countdown needs a date. Drafts read "Draft · not published" in amber in the block list and never reach your public page. Fill the field and the block publishes itself, with no further action from you.

Four block types publish the moment you add them, because they need nothing to work: divider, collapsible group, email capture, and contact form.

What you can add

Essentials

  • Link. A button to any URL. The Thumbnail control gives it a picture: Use site icon pulls the destination's own favicon, or Upload takes an image of yours.
  • Heading. A section title.
  • Text. A short paragraph.
  • Divider. A rule, or an invisible spacer if you only want the gap. The Invisible spacer switch is in the inspector.
  • Collapsible group. A container other blocks sit inside. It starts life titled "More".

Media

  • Image. A full-width picture. Upload one, or paste an image URL.
  • Embed. A player from one of the services below.
  • Gallery. A swipeable image strip. Pro to add. Five images on Free, twenty on Pro.
  • Logo strip. Up to eight logos under a title, "Seen in" by default.
  • File download. Pro. A PDF or ZIP, up to 25MB.
  • Voice intro. Pro. An MP3, M4A, WAV, or OGG, up to 25MB. The panel asks you to keep it under 30 seconds.

Engage

  • Poll. Two to six options. Visitors vote once and then see live percentages.
  • Email capture. Covered in email capture.
  • Direct chat. WhatsApp, Telegram, SMS, or iMessage, with a phone number or an @handle and an optional first message.
  • Countdown. Counts down to a date and time you set. You can also give it a title for after it arrives and a link to open then.
  • Contact form. Pro. Up to eight fields, each one text, email, long text, or a choice list. Set the message people see after sending, and turn on Show before the links to run it as a screen ahead of your page. Submissions land in Audience.

Commerce

  • Discount code. A code visitors tap to copy, with an optional link to the store.

Embeds

Add a Media block of type Embed, pick what you are embedding, and paste the URL. Seven services are supported:

  • YouTube. Regular videos and Shorts.
  • TikTok. A single video.
  • Spotify. Tracks, albums, playlists, episodes, shows, and artists.
  • SoundCloud. Single tracks and sets.
  • Tweet. One post on x.com or twitter.com.
  • Vimeo. A single video.
  • Booking. A Calendly or Cal.com page.

Nothing is fetched from those services until a visitor taps the block. Until then the block is a still frame with a play control, which keeps your page fast and keeps their scripts off it.

The URL field checks itself as you type. If a URL matches none of the patterns above, the field says so, the block stays a draft rather than embedding something urls.bio cannot render, and nothing changes on your public page. Pasting a channel or profile URL where a single video is expected is the usual cause.

Putting blocks in order

Drag a block by its handle. If you would rather use the keyboard, focus the handle and press the up and down arrows. The new order saves as soon as you drop it, and a failed write puts the previous order back.

To nest blocks, add a Collapsible group, then open any other block and set Inside group. Children indent in the block list and render inside the group on the page. Start collapsed decides whether the group opens closed or open when someone arrives.

Hiding, scheduling, and the 18+ gate

Every block has a Visible switch, in the inspector and again on its row in the block list. Turn it off and the block stays in your list, reading "Hidden", but leaves the page.

Blocks that are already published can be scheduled, dividers aside. Set a start time, an end time, or both, down to the minute in your own timezone, and leave them empty for always. An end time on or before the start is refused with "The end time must be after the start time." The block list reads "Scheduled" with the date, or "Expired", so you can see at a glance why something is missing.

Link, embed, and image blocks have an 18+ gate. Turn it on and visitors confirm their age before they see anything. If any block on your page is gated, the whole list is held behind one confirmation, and that confirmation is remembered on their device for three days. You are never gated out of your own page.

Open any link block on Pro and an Upgrades section appears with three switches. On Free they are listed with a lock, and clicking one opens the plans panel.

  • Spotlight card. Turns the link into a large featured card with an image you upload and an optional subtitle.
  • A/B test. Give a second title and URL, and half of visitors see each version. The panel shows the running count, "A: 12 clicks · B: 9 clicks", so you can call it yourself.
  • Limit clicks. The link closes after the number of clicks you set, and the panel tells you how many it has taken so far.

Each section shows an On badge once it is doing something, and a Turn off button that clears it.

Saving

There is no publish button. Text fields save half a second after you stop typing, and again when you click away. Switches and menus save on change. The pill in the header reads Saving, then Saved, and tells you "Not saved" if a write fails.

Cmd+Z undoes your last fifty changes, including deletes and reorders, and a toast confirms what came back. Deleting a block also gives you an undo directly in its toast.

Common questions

Why is my block not on the public page? Check the block list for its label. "Draft · not published" means it is still missing its required field, "Hidden" means the Visible switch is off, and "Scheduled" or "Expired" means the dates are keeping it away.

How many links can I have? There is no cap on either plan.

Can I see all of this working? urls.bio/demo is a live page with links, a YouTube embed, and the email gate turned on.

Something is not appearing at all. See troubleshooting.