7 formula dialects transpiled · 36 locales · self-hostable

The work runs on top. The database is yours underneath.

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

docker compose up
Live chart engine

Not a screenshot — drawn on this page by the chart renderer the product ships, from sample data.

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

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.

Every view. Every chart. Every plan.

We don't meter your dashboards.

Records

Grid List Gallery

Planning

Kanban Calendar Timeline Workload

Structure

Tree Graph Map

Analysis

Chart Pivot

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

47
Page elements
24
Dashboard widgets
25
Chart types
12
View types
42
Templates
36
Languages

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})
  • ClickUp
    DATE_DIFF(field("End"), field("Start"))Appdor (translated)DATETIME_DIFF({End}, {Start})
  • 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")
  • Google AppSheet
    USEREMAIL()Appdor (translated)USERID()

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.

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 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.

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.

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.

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.

Ready to own your data?

Appdor

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

Don't have an account? Sign Up