7 formula dialects transpiled · 36 locales · self-hostable

It's your database. We just put a work OS on top.

Boards, timelines and dashboards over Postgres you can run on your own hardware: 48 page elements, 25 chart types and 24 dashboard widgets, every one of them free on every plan.

docker compose up
shift-log
Grid Kanban Timeline Chart
279 formula functions · 7 competitor dialects understood · 90 field types, 59 with format & checksum validation · 25 chart types · every view free · self-host in one command

One table, twelve ways

Switching how you look at the work never copies it, and never costs an upgrade.

Every one of these reads the same records. Gantt and timeline sit behind a paid tier elsewhere; here the same twelve are on Free and on Enterprise.

Grid

Not screenshots — each one is the drawing the product itself shows when you pick that view, and Chart is drawn here by the chart renderer Appdor ships.

Nothing is behind a plan

Every number below is on the free tier too.

Counted, not estimated. Every number below is checked against the code on each build.

25
Chart types
279
Formula functions
12
View types
42
Templates
90
Field types, 59 that validate
48
Page elements
24
Dashboard widgets
36
Languages
7
Competitor formula dialects read

Self-hosting

Your data, your servers, your call.

The full Supabase stack, RLS-enforced, EU-friendly, no phone-home.

# Every secret below is EMPTY on purpose.
#     node scripts/generate-keys.mjs
 
POSTGRES_PASSWORD=
POSTGRES_DB=postgres
 
JWT_SECRET=
ANON_KEY=
SERVICE_ROLE_KEY=
 
# Leave blank to disable AI icon suggestions gracefully.
GEMINI_API_KEY=

One container, one port, one volume — Postgres, auth, storage and the app together. It runs the free plan out of the box and keeps running it for as long as you like. Pro, Business and Enterprise features unlock with a licence you paste into the plan screen — checked against a key the image already carries, so there is still no licence server to call and no telemetry key to unset.

Formula translation

Switch in an afternoon

Appdor reads 7 competitor dialects and rewrites them into one canonical formula — field references, function names and argument order. Every pair below is real output from the transpiler that ships.

  • Airtable
    DATETIME_DIFF({End},{Start},'days')Appdor (translated)DATETIME_DIFF({End}, {Start}, "days")
  • monday.com
    WORKDAYS({End},{Start})Appdor (translated)NETWORKDAYS({Start}, {End})
  • Smartsheet
    WEEKNUMBER([Due Date])Appdor (translated)WEEKNUM({Due Date})
  • Quickbase
    var text Code = Left([SKU], 3); CodeAppdor (translated)LETS(Code, LEFT({SKU}, 3), Code)
  • Notion
    formatDate(prop("Due"), "YYYY-MM-DD")Appdor (translated)DATETIME_FORMAT({Due}, "YYYY-MM-DD")

Not everything maps cleanly, and that is reported rather than hidden: monday.com's WORKDAYS takes its two dates in the opposite order, and Smartsheet's weeks start on Monday. Appdor converts both and tells you what changed, instead of quietly returning a different number.

What's new

Three releases, newest first.

The product ships on its own cadence. These three landed on 2026-08-24, and the newest is the biggest — AI now generates the whole app.

1.30.0 2026-08-24 Newest

AI builds the whole app

Describe an app and get its tables, rows, dashboards and multi-table workflows in one generation. A rule can read the record that fired it and write to the other tables — and when generation cannot, it tells you why.

1.29.0 2026-08-24

Feedback that reaches the team

User Voice is where a bug, a request or a question goes straight to the people who build Appdor, and every item carries a status you can follow — submitted, under review, on the roadmap, done. Votes now come out of a budget each person gets, so what rises is what most people want rather than whoever clicked the most times.

1.28.0 2026-08-24

Someone answers, and nothing phones home

Feedback has an owner now, who replies officially and moves an item's status, so a report is answered rather than filed. Google Analytics loads only if you set a measurement id — a default deployment sends nothing to Google at all — and the search API stopped answering anyone without a credential.

How it behaves

Three things a screenshot cannot show you.

Every panel below runs on the rules the product runs on — the same statuses, the same transpiler, the same workflow. Nothing here is a recording, and nothing here is waiting for you to press play.

One row, every view

One row, three lanes. The card is wherever its status puts it, because a board is a way of looking at the table rather than a second copy of it — change the cell and the board has already moved.

Formulas, translated

monday.com

WORKDAYS({End},{Start}) Appdor (translated)NETWORKDAYS({Start}, {End})

Flagged on import: monday.com takes those two dates in the opposite order.

Smartsheet

NETWORKDAYS([Start],[End]) Appdor (translated)NETWORKDAYS({Start}, {End})

Converted with nothing to report.

Airtable

WORKDAY_DIFF({Start},{End}) Appdor (translated)NETWORKDAYS({Start}, {End})

Flagged on import: check how your own holidays should be handled.

Three source dialects, one output. The line on top keeps changing and the line under it never does — and where a dialect means something slightly different, that is written down instead of quietly returning a different number.

Automations that fire

This is the workflow the manufacturing template installs, not an illustration of one. Three sentences, no scripting, and it runs on the row you just watched change lanes.

The shipped catalogue

Nothing here is a plan tier.

Every element, chart and widget below is on the free plan and on the self-hosted build. The numbers on the tabs are counted from the code on each build, not typed in — and the twelve view types are in the band below.

Pick anything above and it will explain itself here.

Fields that know your industry

Twenty-two of them, and “which industry” is a published standard here rather than a list somebody wrote: the axis is NACE Rev. 2.1, the EU's classification of economic activities. Every section of it has a template that installs, and a field typed as an activity code is checked against the real code space — the gaps in it are the point.

  • AAgriculture & fishing
  • BMining
  • CManufacturing
  • DEnergy supply
  • EWater & waste
  • FConstruction
  • GWholesale & retail
  • HTransport & storage
  • IHospitality
  • JMedia & publishing
  • KIT & telecoms
  • LFinance & insurance
  • MReal estate
  • NProfessional services
  • OAdmin & support
  • PPublic administration
  • QEducation
  • RHealth & social work
  • SArts & sport
  • TOther services
  • UHouseholds
  • VInternational bodies

The same axis filters the template gallery, so picking your section is how you find the system already built for it.

And the fields underneath them check the identifier as you type — the checksum, not just the shape.

  • IBAN
  • LEI
  • ISIN
  • ISBN
  • EAN-13 / GTIN
  • Barcode
  • VIN
  • Card number
  • IMEI
  • BIC / SWIFT
  • VAT number (EU)
  • MIC (ISO 10383)
  • DUNS number
  • HS code
  • UN/LOCODE
  • Incoterm
  • ICD-10 code
  • SNOMED CT
  • LOINC code
  • NDC (drug code)
  • RxNorm CUI
  • MAC address
  • UPC-A
  • NACE activity code (Rev. 2.1)

Your key, your provider, your bill.

AI here is a billing arrangement, not a plan tier. You connect your own provider account and pay that provider directly at their list price. Appdor never sits between you and the meter.

Your key, your account

OpenAI, Anthropic, Google Gemini, Mistral, DeepSeek, Groq, xAI, OpenRouter, Together AI or Azure OpenAI — or Ollama, LM Studio and any OpenAI-compatible endpoint on hardware you own. Revoke the key and every AI feature stops.

No markup, no resale

Appdor does not buy tokens and sell them back to you. There is no margin on a model call, and no allowance folded into your seat price that you pay for whether you use it or not.

No credits to run out of

Nothing to top up mid-quarter, and no per-seat AI charge for people who never open the assistant. Cap your own spend, change provider, or switch AI off entirely — nothing else in Appdor changes.

OpenAI Anthropic Google Gemini Mistral DeepSeek Groq xAI OpenRouter Together AI Azure OpenAI Ollama LM Studio OpenAI-compatible

Thirteen providers today, read from the same registry the settings screen reads. Two of them run on hardware you own and cost nothing per call.

Model names change every few months. Whose account is billed, and where the data goes, does not.

How Appdor compares

 AppdorAirtablemonday
All views freeYesGantt paidMetered
Formula translation7 dialectsNoNo
Self-hostYesNoNo
Seat minimumsNone3-in-blocks
AI pricingYour own keyCreditsPer-seat

Start from a system that already works.

25 templates install real tables, fields, formulas and sample rows — from a three-table project tracker to a 22-table manufacturing ERP. One click, and everything in them is yours to change.

Run the work

Run the business

Run operations

Run your industry

Simple pricing. Viewers always free.

No seat minimums. The same plans apply whether we host it or you do.

Simple pricing. Viewers always free.
Your monthly total Editors Viewers Records Automations Files Adds
Free€0 5 included Unlimited, free 2,500 per base 250 / month 1 GiB per base
  • Every view and chart
  • Bring your own AI key
ProMost popular€12/editor/mo€10/editor/mo billed annually Billed per editor Unlimited, free 50,000 per base 25,000 / month 20 GiB per base
  • Admin panel
  • Backups
  • Realtime collaboration
Business€28/editor/mo€22/editor/mo billed annually Billed per editor Unlimited, free 150,000 per base 100,000 / month 100 GiB per base
  • Audit logs
  • Branded forms
  • Field permissions
  • SAML SSO
  • View permissions
EnterpriseCustomfrom €40/editor/mo Billed per editor Unlimited, free 500,000 per base 500,000 / month 1 TiB per base
  • Multiple realms
  • SCIM provisioning

Only live runs count. A dry run previews a workflow in your browser and writes nothing, so testing an automation never spends the monthly allowance.

Work out your bill

Read-only people are free on every plan, at any number. No seat minimums and no buckets — seven seats cost seven times one.

Estimates exclude any applicable tax (VAT or sales tax), which is added at checkout.

Work out what you'd save by switching

Pick the plan you pay for today and the number of people who create or edit. The same team on Appdor, and what that saves in a year.

Today

On Appdor

Ready to own your data?

Start free in the cloud, or pull the image and run it yourself. Same build either way.

Appdor

Spreadsheet-simple database apps — grids, forms, workflows and dashboards.

Don't have an account? Sign Up