BACK

Building "AI-native business apps" on a platform with a real extension surface

Airtable positions itself as an "AI-native app platform" for building operational software on top of shared data (bases), with extensibility spanning in-product extensions, scripts, and a public Web API for external integrations.

Why Airtable's extensibility matters (business + ecosystem impact)

  • Enterprise reach creates a big surface area for third-party value. Airtable says it has enabled 500,000+ organisations, including 80% of the Fortune 100—which is exactly the kind of distribution that makes a marketplace and developer tooling strategically meaningful.
  • Extensions turn a database into a "workflow workbench." Airtable describes extensions as modular add-ons that "live on top" of bases and help teams analyse, enrich, visualise, and take action on their data.
  • Marketplace density ("hundreds") reduces churn and increases stickiness. Airtable's own materials describe the Extension/Marketplace inventory as "hundreds" of extensions and scripts (with a mix of Airtable-built and third-party/community-built tools).

Milestones and platform evolution (quick timeline)

  • Circa 2018: "Blocks" launched as in-base modular tools.
  • 2020: Airtable launched an Apps Marketplace and renamed Blocks → Apps.
  • 2022: Airtable renamed Apps → Extensions to reduce ambiguity and signal a broader future surface area (views, interfaces, etc.).
  • 2023: Airtable announced its Connected Apps Platform as a next-generation app-building direction (AI included).
  • 2025: Airtable announced a relaunch framing itself as "AI-native," emphasising AI agents and scale.

Key extensibility building blocks

  • Extensions (Blocks SDK): Build rich UI extensions that run inside Airtable. Airtable provides a review process for Marketplace submissions and a developer guide set.
  • Scripting: Lightweight JavaScript scripting for automations and workflow helpers; Airtable also introduced script templates discoverable via Marketplace.
  • Web API + OAuth: External integrations can use personal access tokens or OAuth (registered OAuth integrations) depending on the use case.
  • Monetisation model (pragmatic + flexible): Airtable's Extensions FAQ explicitly notes you can independently monetise your extension (for example, via your own channels) and have users validate using an API key—i.e., monetisation is not strictly "inside the marketplace."

Let's Build on Airtable

Airtable's most "plugin-platform-like" surface is Extensions (built with the Blocks SDK). Below is a minimal "Hello World" walkthrough that follows Airtable's official flow (CLI-driven local dev, run inside a base, then optionally submit for Marketplace review).

What we'll build

A tiny extension UI that renders:
  • a friendly Hello, \ (using the current Airtable user), and
  • the Base name it's running inside

1. Prerequisites (from Airtable's Getting Started)

  • An Airtable account + a base you can use for development
  • Node.js tooling (and the Airtable Blocks CLI)

2. Install the Blocks CLI

npm install -g @airtable/blocks-cli
You'll use this CLI to initialise, run, and deploy your extension.

3. Initialise a new extension project

Create a folder, then initialise:
mkdir airtable-hello-extension
cd airtable-hello-extension
block init
During init, the CLI will guide you to connect the project to a base and set up a remote target so the extension can run in Airtable.

4. Implement "Hello, \" + Base name

In the generated project, you'll have a React entry (commonly frontend/index.js or similar depending on the scaffold). Replace the main component with something like:
import React from "react";
import { initializeBlock, useBase, useCurrentUser } from "@airtable/blocks/ui";

function HelloExtension() {
  const base = useBase();
  const user = useCurrentUser();

  const name =
    user?.name ||
    user?.email ||
    "there";

  return (
    <div style={{ padding: 12, fontFamily: "system-ui, -apple-system, sans-serif" }}>
      <h2 style={{ margin: 0 }}>Hello, {name} 👋</h2>
      <p style={{ marginTop: 8 }}>
        You're running inside: <strong>{base.name}</strong>
      </p>
    </div>
  );
}

initializeBlock(() => <HelloExtension />);
This uses the Blocks SDK UI hooks to access runtime context (current base + user) inside Airtable.

5. Run it inside your base

Start the dev server:
block run
Then, in Airtable, open your base → ToolsExtensionsAdd an extensionBuild a custom extension (Airtable's UI flow).

6. (Optional) Prepare for Marketplace submission

If you want to publish broadly, Airtable documents an extension review process for Marketplace submissions.

Reference Documentation

Resource Link
Developer Portal https://www.airtable.com/developers
Extensions (Blocks SDK) Docs https://www.airtable.com/developers/extensions
Getting Started (Blocks SDK) https://www.airtable.com/developers/extensions/guides/getting-started
Hello World Tutorial (Blocks SDK) https://www.airtable.com/developers/extensions/guides/hello-world-tutorial
Web API Overview https://airtable.com/developers/web
OAuth Integrations Guide https://www.airtable.com/developers/web/guides/oauth-integrations
OAuth Reference https://www.airtable.com/developers/web/api/oauth-reference
Scripting Docs https://www.airtable.com/developers/scripting
Support: Extensions Overview https://support.airtable.com/docs/airtable-extensions-overview