Skip to main content

I rebuilt Page Designer as a native Interface Extension — using Claude Code

  • April 4, 2026
  • 9 replies
  • 250 views

Vadim Ciobanu
Forum|alt.badge.img+1

Hey community! Long-time lurker, first-time builder posting here.

Like many of you, I've been frustrated with Page Designer living in base extensions while all my users are interface-only. Every time someone in the community asked "can I use Page Designer in interfaces?" the answer was always not yet. So I decided to just build it myself.

What I built

A full drag-and-drop page layout designer that lives directly inside an Interface page as a custom element. It looks and feels like Page Designer, but it's a first-class interface citizen.

Here's what it supports so far:

  • 📄 Page size presets — A4, Letter, Business Card, custom dimensions
  • 🖱️ Drag-and-drop canvas — absolute positioning, resize handles, rotation, layer ordering (front/back)
  • 🔤 Static text elements with {Field Name} interpolation
  • 🖼️ Static image elements (via URL)
  • 📊 Any field from your table — text, numbers, dates, select fields, attachments
  • 🔗 Linked record fields in Table mode — displays related records as a mini-grid, with configurable columns, column widths, and headings (this is what you see in the screenshot — an invoice with a live task table pulled from a linked table)
  • 🎨 Full styling sidebar — font, size, weight, line height, alignment, text color, background fill, padding, borders, border-radius
  • 📋 Record navigation — prev/next/go-to-record
  • 🖨️ Print / PDF export — triggers the browser print dialog with proper @page CSS, one record per page
  • 💾 Persistent layouts — saved as JSON in a config table, survives reloads and is shared across users

How I built it

I used Claude Code with the Airtable Interface Extensions SDK (@airtable/blocks, interface-alpha). The whole thing is React + the SDK hooks (useRecords, useBase, etc.), with a custom drag-and-drop canvas (~120 lines of pointer event handling — no heavy libraries).

The workflow was roughly:

  1. I had Claude research the original Page Designer in depth — every feature, every known limitation, every community complaint
  2. I had it produce a full technical spec (data model, state shape, rendering pipeline, print CSS strategy)
  3. Then I used Claude Code in a tight loop to build and iterate — it could read the SDK docs, write the component, test layout edge cases, and fix issues as they came up

The most interesting part was the linked record table mode — pulling data from a related table and rendering it as a styled grid inside the page layout. The original Page Designer does this, and replicating it with the SDK's selectLinkedRecordsFromCellAsync was actually quite clean.

 

Happy to share more

If there's interest I can write up the architecture in more detail, or share the approach for the print rendering. Would also love to hear what features you'd want in something like this — especially if you've been hitting the walls of the original Page Designer.

Has anyone else been building things with the Interface Extensions SDK? Would love to compare notes.

 

 

9 replies

ScottWorld
Forum|alt.badge.img+35
  • Genius
  • April 4, 2026

@Vadim Ciobanu 

Wow, this is super cool! 🤩🥂🎉

Congratulations on achieving what many people have wanted for a while now! 😎🙌

Are you planning on selling this or distributing it in some way? Sorry, I’m not too familiar with custom extensions, so I don’t know what the mechanism is for moving custom extensions from one base to another.

Also, I’m curious: Does your implementation support printing Avery labels? (Essentially, a grid of records laid out into columns & rows on a page?) My consulting clients don’t actually have a need for this, but I recall that a few people in the community were looking for that functionality over the last few months.

Fantastic job creating this! 🤠👍🌟

- ScottWorld, Expert Airtable Consultant


Vadim Ciobanu
Forum|alt.badge.img+1
  • Author
  • New Participant
  • April 4, 2026

Wow, this is super cool! 🤩🥂🎉

Congratulations on achieving what so many people have wanted for so long! 😎🙌

Are you planning on selling this or distributing it in some way? Sorry, I’m not too familiar with custom extensions yet, so I don’t know what the mechanism is for moving custom extensions from one base to another.

Also, I’m curious: Does your implementation support printing Avery labels? (Essentially, a grid of records laid out into columns & rows on a page?) My consulting clients don’t actually have a need for this, but I recall that a few people in the community were looking for that functionality over the last few months.

Fantastic job creating this! 🤠👍

- ScottWorld, Expert Airtable Consultant

I’m working on making it to support multi-page, page margins, automatic table extension to another page if the table does not fit on the single page. I’m not sure about selling it or share it for free, it depends on how much money I will spend on Claude 😀


ScottWorld
Forum|alt.badge.img+35
  • Genius
  • April 4, 2026

@Vadim Ciobanu 

Awesome! Looking forward to seeing what you do with this! 😃

Best,
Scott


VictoriaPlummer
Forum|alt.badge.img+11

This is incredible! Thanks for sharing!


gaston
Forum|alt.badge.img+18
  • Known Participant
  • April 8, 2026

Awesome!! Thanks for sharing ​@Vadim Ciobanu !!! Please keep us updated!


Mike_AutomaticN
Forum|alt.badge.img+29

This is super cool! However, do you get to download the pdf?? If so (which would be obviously needed), this is amazing. Also, if you get to automate the download (rather than manual as page designer currently works) that would be really really nice.

Mike, Consultant @ Automatic Nation 
YouTube Channel


Vadim Ciobanu
Forum|alt.badge.img+1
  • Author
  • New Participant
  • April 10, 2026

Great news, everyone! 🎉

I've made significant progress on my Airtable interface extension and wanted to share the updates with you all since many of you showed interest in the project.

Key improvements:

Auto-expanding tables — Tables now seamlessly continue to the next page if they don't fit on the current one, giving you complete control over document flow.

Smart page margins — I've implemented customizable page margins to ensure nothing gets cut off when printing. Any printer can now handle your documents safely without losing content at the edges.

Shape & figure tools — You can now add shapes directly on the canvas: squares, ellipses, lines, and polygons. This opens up possibilities for creating more dynamic, visually rich documents within Airtable.

Easy PDF download — PDFs download instantly to your computer, and I've added bulk download capability so you can export a zip file with all records from your current view at once. Perfect for batch processing!

The interface design has also been refined to make everything more intuitive and user-friendly.

If you've been following this project, I'd love to hear your feedback. What features would you find most useful? What edge cases should I test?

Looking forward to continuing to build this with community input! 💪

 

Table expands to next page & 1inch page margins
Shapes

 


alxwlfe_airbnb
Forum|alt.badge.img+14
  • Participating Frequently
  • April 15, 2026

This is inspiring me to want to recreate other ~blocks I mean apps I mean~ extensions as interface pages now 🤓


VictoriaPlummer
Forum|alt.badge.img+11

@alxwlfe_airbnb Team Blocks all day!