Hatchik help → Limits

Limits

The actual numbers, so nobody has to guess.

Money and time

Website Free, no time limit, no card
App with a database $29 a month
Free trial on an app 14 days, no card needed
A paused project is held for 21 days, then permanently deleted
Reminders while paused Email on day 7, 14 and 20
Switching an app down to a free website 7 days, live site stays up throughout

Space

App files 10 GB
App records (its database) 5 GB
Website files 2 GB
Memory and processing, app 1.5 GB and 1.5 cores, plus 512 MB and 1 core for its database
Memory and processing, website 512 MB and half a core

Nothing here needs asking for. Those amounts are what a project has from the day it is made — not a starting point somebody grows into by requesting more. There is no form, no approval and no waiting.

You are told before it matters: Hatchik measures every project once a night and emails the owner when one is around three-quarters full, and again when it is nearly full. A project growing fast enough to fill within a week is told sooner than that. Each of those is sent once, not nightly, and is sent again if the project fills up a second time.

If a project does fill up, it carries on showing everything it already has but can save nothing new, and hatchik_diagnose says so in as many words, with how much room it is using — it does not leave you to work it out from a save that failed. The first thing worth checking is what filled it: old uploads, or something the app writes and never clears, are the usual answers.

Past those amounts there is more room available, and that part will be paid for: a fixed monthly amount for a fixed amount of extra room, never metered and never applied to anyone automatically. You would see the price and agree to it on a Hatchik page first. Buying it is not switched on yet, and no price for it is published anywhere until it is. Until then, a project that genuinely outgrows its allowance has the room added for it, at no charge.

Being clear about how that happens, because it is the one place on Hatchik where something is not automatic: the nightly measurement notices and reports it — it emails you, and it tells Hatchik the same night — but it does not raise the amount by itself. Somebody puts the extra room on the machine. There is nothing for you to send and nowhere to send it; the alarm goes off on its own and you will already have been told your project is filling up.

If an app exceeds its memory it is stopped and restarted, and hatchik_diagnose names that as the cause.

Publishing and importing

One packaged publish 100 MB
A publish written through the chat 50 MB total, in pieces of up to 1 MB
Importing an existing website 60 pages, 600 files, 250 MB, 80 MB per file, 45 seconds

An import that runs out of pages, files, bytes or time still publishes what it reached and names what it did not.

Versions and downloads

Saved versions you can go back to The last 10 published versions
Stored files included in a version While they total 250 MB or less
Download link validity 24 hours, and you can ask for a fresh one any time
Logs you can read at once The last 200 lines

Once an app's stored files pass 250 MB, new versions hold its code and its database only. Nothing announces that at the time; it is said when someone restores such a version, which reports that the files uploaded since were left as they are.

A download built while a project is paused contains the files but not the database, because the database is switched off with the rest of the project. The download says so in its own list of problems.

Contact forms

Submissions per visitor per project 10 an hour, then turned away
Messages one site can be sent 60 an hour, 200 a day
One submission 20,000 characters across up to 40 fields, 5,000 per field
Submissions readable back at once The most recent 200

The per-visitor limit counts every attempt, because a sender who is refused ten times is still one sender making a nuisance of themselves. The whole-site ceiling counts only the messages that actually reached you: junk Hatchik already turned away — a robot tripping the hidden field, a post from somebody else's page — never uses up your day. It is there to protect your own email allowance, and only a delivered message spends any of that.

Email your app sends

How many you can send Whatever your own email company's plan allows
What Hatchik charges for it Nothing
The same message to the same person 20 an hour, then held back

The email goes out on your own account with your own email company, so the allowance is theirs, not Hatchik's — Resend's free tier is 3,000 a month and Brevo's is 300 a day. The one number Hatchik sets is the last row, and it is there to catch an app stuck in a loop before it burns your whole free allowance in ten minutes. Anything else to that person still goes out normally.

Not limited at all

Visitors, page views, bandwidth, how often you publish, how many free websites an account keeps, and how many custom domains a project has. None of these is counted or billed anywhere.

Apps with a database are the one exception, and it is not a per-account limit: Hatchik adds them a few at a time while apps are free. If it cannot take another one at the moment it says so plainly, says a website is free and available now, and says when to try again.

Addresses

An app gets dev.<name>.hatchik.com for its draft and <name>.hatchik.com for its live site. A free website has no permanent draft address: publishing to the draft builds a locked preview on its own link, one at a time, which expires after 24 hours. Like an app's draft, it opens from your project page and shows a "this draft is private" page to anybody else. You can add as many of your own web addresses as you like, at no extra cost, on either. HTTPS is included and renewed for you.

Recovery

A recovery link works once and expires after an hour. You can request at most five in an hour.

What runs an app

One web container and one Postgres database per draft, and one of each per live site. The database is reachable only from inside your own app — not from the public internet, and not from your computer. Anything that touches the database has to run inside the app, which is why migrations and seeding happen when the app starts.

The same page as plain text, for an AI or anything else that prefers it: /docs/limits.md

All help pages