All posts

Five paid tools, one VM, the year of cost

Notion, Zapier, Make, and Airtable list $743.88 for one seat for a year. PostHog stays at $0. An 8 GB guest idled the replacements at 1,633.6 MiB.

Written by NodeRings Inc.

NodeRings Inc. writes these notes. The company runs the marketplace and the agent that stays on the provider’s side of the hypervisor.

Notion Plus at $10 per member per month, Zapier Professional at 750 tasks billed annually, Make's cheapest paid annual figure, and Airtable Team billed annually come to $743.88 for one seat for a year. PostHog's free allowance puts the fifth invoice at $0. The guest that ran the replacements was qemu -m 8192 -smp 2, MemTotal 8,132,488 kB, swap off. Six docker stats readings, 40 seconds apart, summed to a median of 1,633.6 MiB.

InvoiceListed rateYear
Notion Plus, one member$10 per member / month$120
Zapier Professional, 750 tasks, annual$19.99 / month, billed yearly$239.88
Make, cheapest paid plan, 10,000 credits, annual$12 / month$144
Airtable Team, one editor, annual$20 / user / month$240
PostHog, inside the free allowance$0$0
Total$743.88

Ashen Thilakarathna's piece is the logo list this started from. The responses asked what the machine costs. His Notion slot names Docmost, Plane, and Strapi. Zapier and Make go to n8n. Airtable goes to NocoDB. Amplitude and PostHog go to Postgres plus Grafana. This guest ran Docmost, n8n, NocoDB, and Grafana with two Postgres instances and Redis. Plane and Strapi stayed off.

Monthly billing, where a page prints it, moves two of the five. Zapier Professional at the same 750 tasks is $29.99 a month, $359.88 over twelve months. Make's cheapest paid plan is $16 a month on the monthly column, $192 over twelve months. Added in place of the annual lines, those two changes take the five-invoice year from $743.88 to $911.88. Notion's page shows a single $10, and its billing FAQ talks about monthly and annual cycles without a second price. Airtable's FAQ gives Team as $20/user/month when billed annually, and that page gave me no month-to-month Team price.

What do the five pricing pages list?

Notion shows Free at $0, Plus at $10 per member / month, Business at $20, Enterprise custom. One Plus member for twelve months at the listed rate is $120. Custom Agents are a separate meter, $10 per 1,000 monthly Notion credits, and they are outside the $120. Guests are free. Members are the paid seats.

Zapier puts Free at 100 tasks a month. The 750-task tier exists on Professional only. Annual billing is the per-month figure times 12, charged once for the year: $19.99 becomes $239.88. Monthly billing at that tier is $29.99, and twelve of those bills are $359.88. Team starts at 2,000 tasks, at $69 a month on the annual column, so it is a larger plan than the one in the table.

Make's pricing page explains credits and names Core, Pro, and Teams. The dollar amounts come from the price request that page loads for country code US. Free is $0 at 1,000 credits, which matches the FAQ on the page. The next three plans, at 10,000 credits, are $12, $21, and $38 a month on the annual column, and $16, $28, and $51 a month on the monthly column. The payload identifies plans by id. Core, Pro, and Teams are the names on the page, and the year uses the smallest annual figure in the payload, $12 a month, $144.

Airtable's pricing FAQ says Team is $20/user/month billed annually, $240 for one editor, and Business is $45/user/month billed annually, $540. Edit permission is what gets billed. Read-only collaborators, form submissions, and share links stay off the seat count. A free plan exists for lighter use. One editor is the line in the table because the article is one person.

PostHog says the free allowance renews every month. Analytics includes the first 1M events free. The free plan takes no card, allows one project, keeps data for a year, and stops at the allowance, so a quiet project has a $0 year. Pay-as-you-go keeps that same free tier and then meters usage. The calculator on the page, for the products it had selected, showed $0 on every line. Above 1M events, the text I retrieved names no per-event price. One meter sits outside the $0: logs kept past the 14-day default are $0.05 per GB for each month you keep them. This guest stored no PostHog logs. PostHog also offers an MIT build. The article's stand-in, and the one this guest ran, is Grafana in front of an empty database.

What ran on the guest?

Ubuntu 24.04.5, kernel 6.8.0-147-generic, Docker 29.1.3, Compose 2.40.3. The Compose file pinned the images below, published four ports on 127.0.0.1, and kept Postgres and Redis off the host. Secrets were generated on the guest and stay there. N8N_SECURE_COOKIE was false so the editor would load on http://127.0.0.1. How that file should look on a public VPS is the subject of Docker Compose on a VPS: the production checklist. The boot itself was qemu. The euro lines further down are published plans of a similar size.

docmost/docmost:latest          127.0.0.1:3000
postgres:18                     Docmost's database
redis:8                         Docmost's Redis
n8nio/n8n:2.45.7                127.0.0.1:5678
nocodb/nocodb:latest            127.0.0.1:8080
grafana/grafana:11.6.0          127.0.0.1:3001
postgres:16-alpine              events database, unpublished

Every container was still running at the end, restart count 0. dmesg had 0 out-of-memory lines.

Docmost's package version inside docmost/docmost:latest was 0.97.0, image digest 40c454d74ffd. Postgres 18 reported 18.6, digest 3a4264520e12. Redis 8 reported 8.10.3, digest de1068af6f55. The page on port 3000 was the create-workspace form.

Docmost 0.97.0 create-workspace form, with fields for workspace name, your name, email, and password.
Docmost on port 3000. The form was still waiting for a workspace. No pages were created.

n8n was n8nio/n8n:2.45.7, digest sha256:9a8d8dcea75667496695d7810d7e1fe018a65efb36cc499d347f3931b3957b5d. That is the image in n8n self-hosted: 1 GB finished 20 workflows, where n8n alone idled at a median memory.current of 471.8 MiB. The log here said the editor processed 0 draft workflows and 0 published workflows. The page was still "Set up owner account."

n8n 2.45.7 owner setup, with email, first name, last name, and password, and a Next button.
n8n on port 5678. No owner account, so the workflow list stayed empty.

NocoDB's package version inside nocodb/nocodb:latest was 2026.10.1, build fef6081c70ba9602edc19b482a46941657b85670, image digest 8c2dd06896d9. The log said no license key was found and the process was in CE mode. Port 8080 was the signup form. The deals grid on the left of that page ships with the signup screen.

NocoDB 2026.10.1 signup form beside a sample deals grid labeled Sales CRM.
NocoDB on port 8080. The grid is the page's own sample. No base was created on this guest.

Grafana was grafana/grafana:11.6.0, digest 62d2b9d20a19. A request to / returned 302 to /login. The login footer reads Grafana v11.6.0 (d2fdff9ee4) and says a new version is available. The second Postgres, postgres:16-alpine, reported 16.15, digest 0cefaabd882e, database name events, port left unpublished. No dashboard was imported and no rows were inserted.

Grafana 11.6.0 login, footer showing v11.6.0 and build d2fdff9ee4.
Grafana on port 3001. Login only. The events database behind it was empty.

How much RAM did the seven containers use?

What fits on a 2 GB VPS measured apps one at a time. This window is the seven containers together, after Docmost, n8n, and NocoDB were already returning HTTP 200 and Grafana was already redirecting to /login. Six readings, 40 seconds apart.

sudo docker stats --no-stream --format '{{.Name}} {{.MemUsage}}'

The median of the six sums was 1,633.6 MiB in docker stats and 1,792.0 MiB in cgroup memory.current. Median MemAvailable was 5,727.2 MiB against MemTotal 7,941.9 MiB. Docker printed that total as 7.756 GiB.

Containerdocker stats medianmemory.current median
NocoDB623.3 MiB627.4 MiB
Docmost445.4 MiB445.9 MiB
n8n396.8 MiB450.3 MiB
Grafana79.61 MiB110.6 MiB
Postgres 1857.45 MiB80.8 MiB
Postgres 1624.4 MiB70.6 MiB
Redis7.68 MiB7.7 MiB
Sum, median of the six totals1,633.6 MiB1,792.0 MiB

The bottom row is the median of the six sums, which is a different operation from adding the rows above it. The two land within about a mebibyte. Cgroup sits above docker stats on Grafana and both Postgres containers, which is the page-cache gap those tools have shown before.

Six docker stats readings, 40 seconds apart. NocoDB starts at 853.1 MiB and the later readings sit near 620. The six sums run from 1,863.2 MiB down to about 1,620.
The six readings behind the medians. NocoDB's first sample is the tall one. Sum is docker stats, in MiB.

NocoDB's first stats reading was 853.1 MiB. The next five sat between 618.2 and 628.3. A later reading, after the six, had NocoDB at 642.8 MiB, n8n at 371.4 MiB, and Docmost at 446.9 MiB. The median belongs to the gap from the first reading to the sixth. The one-app measurements waited out a longer quiet period than that.

The processes were waiting on setup forms. A Notion import, a running Zap, or a filled NocoDB base would be a different number. This boot stopped at the forms.

Image layers were 6.396 GB and volumes were 141.8 MB. The root filesystem was 9.1G used of 38G.

What does the VM plus a backup disk cost?

The guest had 2 vCPU and 8 GB of RAM. The 8 GB plans I could pair with a price are both 4 vCPU.

CPX32 on the regular-performance page is 4 AMD vCPU, 8 GB, 160 GB NVMe, €35.99 a month excl. VAT, €0.0577 an hour. The price API returns that euro figure for FSN1, NBG1, and HEL1. SIN1 on the same response is €49.49 a month. The page caps the bill at the monthly price, so a server that stays up for twelve months in the EU locations is €431.88.

CX33 on the cost-optimized page is 4 Intel or AMD vCPU, 8 GB, 80 GB NVMe, with 20 TB of traffic named on the row. The HTML marks that row not available, and it marks the other rows on the same table the same way. The price API still returns €8.99 a month and €0.0144 an hour for FSN1, NBG1, and HEL1, and it marks those locations active. Twelve months at that cap is €107.88. A row the page marks not available stays out of the "what you can order" line. It stays in the chart because the API has a number and the label says unavailable.

BX11 is the backup disk. The page's offer markup lists €3.20, and the price API lists €3.20 a month and €0.0051 an hour for FSN1 and HEL1. Twelve months is €38.40. BX11 received nothing from this guest. The restore writeup is Restic to a storage box, with a real restore test.

PlanMonthYear at the cap
CPX32, FSN1 / NBG1 / HEL1, excl. VAT€35.99€431.88
BX11, FSN1 / HEL1€3.20€38.40
CPX32 + BX11€470.28
CX33, price API, row marked not available€8.99€107.88
CX33 + BX11€146.28

CX23 on the cost-optimized page is the 2 vCPU shape, with 4 GB and 40 GB, closer to this guest's core count and smaller than its RAM. The price API lists it at €5.99 a month and €0.0096 an hour, and the page marks that row not available too. A 4 GB boot was a different experiment. This one was 8 GB, and the chart uses the 8 GB plans.

Two groups of bars. Dollar bars for one seat: Airtable $240, Zapier $239.88, Make $144, Notion $120, PostHog $0. Euro bars: CPX32 plus BX11 at €470.28, and CX33 plus BX11 at €146.28 with the row marked unavailable.
Left scale ends at $260. Right scale ends at €500. PostHog is a $0 label. CX33 is the price-API year for a row the cost-optimized page marks not available. Dollars and euros stay on their own scales.

The same price API prints a dollar column, $42.59 a month for CPX32 in the EU locations and $4.00 a month for BX11. Those dollars stay off the $743.88. The euro is the figure printed with excl. VAT on the CPX32 page. A NodeRings marketplace plan would be a third list. The marketplace docs describe where that price would come from, and this total leaves it out.

Cloudflare's registrar API docs include a sample .com at $8.57 to register and $8.57 to renew. A live Check call is what returns the price for a real name. The sample stays out of both year totals.

FAQ

Is $743.88 a company bill?

It is one member or one editor on the smallest paid tier, times twelve, plus PostHog at $0 while you stay inside the free allowance. Seats and task tiers move the other four. Ten Airtable editors on Team at the annual rate are $2,400 before Notion, Zapier, and Make. The pages already explain that multiplication. The table above stays at one seat.

Do the screenshots replace the products?

They show the processes up. Docmost was a blank workspace form. n8n had zero workflows. NocoDB was a signup form whose sample deals grid is part of the page. Grafana was a login in front of an empty database. The €470.28 figure is CPX32 plus BX11 for a year at the published caps. It is the machine those setup screens were sitting on, sized up to 4 vCPU and 160 GB because that is the 8 GB plan the regular-performance page prices.

What failed?

The boot stayed up. Restart count was 0 on all seven containers, and dmesg had 0 out-of-memory lines. The gap is the measurement I skipped: no Notion import, no week of samples, no Plane, no Strapi, no backup run to BX11. n8n with real workflows, on a 1 GB guest, is the other post, and that one has the 471.8 MiB idle.

Which page does each number come from?

Notion, Zapier, Airtable, and PostHog are the pricing pages linked above. Make's dollars are the US price payload the Make pricing page requests. Hetzner's euros are the plan page plus website-price-api.hetzner.com for the product key on that row: CPX32 is CLOUD_126+CLOUD_21, CX33 is CLOUD_133+CLOUD_21, CX23 is CLOUD_132+CLOUD_21, BX11 is ROBOT_1333. The mebibytes are this guest.