The short answer
Yes, you can point an AI agent at a folder and ask it to put the contents online. What you cannot do is send the folder as it is. Birta serves files to browsers, so something has to turn your notes, drafts and screenshots into a page first, and that something is the agent, not the host.
The split is worth holding on to, because everything below follows from it. Your
agent reads the folder, decides what the site should contain, writes index.html
and the assets beside it, and hands that result over through its Birta connection.
Birta checks the package, stores it, and serves it at an address. It does not build,
render, or convert anything on the way.
So the practical question is never "will Birta accept my folder". It is "what does my agent have to produce from my folder", and that has a short answer too.
What has to be true before a folder can go live
Three conditions, and only three.
There has to be an index.html at the root of the folder being published. Without
one, publication is refused outright and nothing is stored. The refusal is specific
rather than generic: if an index.html exists somewhere deeper in the tree, Birta
names that file and tells you either to move it to the root or to publish with its
folder declared as the built site. If there is no index.html anywhere, the message
says so and tells you to run the build and publish the folder that holds the result.
That sentence is the clearest statement of the boundary. The build is your side of
the line.
The files have to be web types. A folder full of .docx and .pdf is not a website,
and Birta will not make it one.
And the whole thing has to fit the space your plan gives one project. On the free plan that is 25 MB. Not 25 MB per file, 25 MB for the site.
Which of your files reach the site
This table is the part most people get wrong about their own folder.
| What is in your folder | What happens to it |
|---|---|
index.html and other .html files | Served as pages |
.css, .js, .json, .xml, .txt | Served as they are |
.png, .jpg, .webp, .avif, .gif, .svg, .ico | Served as they are |
.woff, .woff2, .ttf, .otf, .eot | Served as they are |
.md, .markdown | Not served. Your agent reads them and writes HTML from them |
.pdf | Not served. Either the agent puts the content into a page, or you link to the PDF hosted elsewhere |
.mp4, .mov, .mp3, .wav | Not served. Link to a public URL instead |
.docx, .xlsx, .pptx, .zip | Left out entirely |
.env, private keys, certificates, node_modules, .git, .DS_Store | Never uploaded at all |
Two rows deserve a second look. .txt genuinely is served, which surprises people who
assume plain text is treated like Markdown. And .svg counts as text rather than as
an image for transfer purposes, so it travels as-is.
There are two different outcomes here and they feel the same in a chat window. A file
of an unsupported type is dropped with a warning and the site publishes without it.
A missing index.html, a package over your plan's space, or a file over the size
ceiling is a refusal instead: nothing is stored, the draft stays exactly as it was,
and every blocking problem is reported at once. If your site went live but a document is
missing from it, that is the first case, and the fix is to convert the document, not
to publish again.
The last row is quieter but useful. Environment files, SSH keys, certificates and
build junk are filtered out before anything is transferred. If your folder happens to
contain a stray .env, it does not travel.
What your agent actually does
The conversion is the agent's work, and so is the quality of the result. If the page looks wrong, that is a conversation to have with the agent, not a hosting problem.
Given a folder of raw material, a competent agent does roughly this. It reads what is there. It proposes a shape, usually one page or a small handful. It writes the HTML and CSS. It resizes the photographs, because a folder of camera output will blow past 25 MB long before the text does. And it keeps your originals out of the published folder, so the site contains pages rather than a directory listing of drafts.
Your originals can still travel. If the agent writes the site into its own folder and declares that folder as the published one, everything outside it is kept alongside the version as source material. It is stored, and it counts against the same 25 MB, but it is not served. That is usually what you want: the notes stay with the project without becoming pages.
Two ways the folder gets across
Which one you get is decided by your client, not by you.
- Step 1ConvertThe agent writes the site
- Step 2Hand overFile by file, or folder at a time
- Step 3FixRead the refusal, do not guess
A client that cannot read your computer's files works through Birta's hosted connection. Claude on the web, Claude Desktop, Claude Cowork and an eligible ChatGPT workspace all fall here. The agent creates the project, opens a draft, and writes the draft file by file. Images travel base64-encoded, and that has a cost worth knowing about: every byte of a file becomes roughly 1.4 characters of message. A folder of unresized photos is expensive on this route, so ask for the resizing before the upload rather than after.
A client that works with files on your machine uses the local connection, which covers Claude Code, Codex, Cursor and ChatGPT Desktop. Here the agent does not send file contents at all. It names the project folder and the folder holding the finished site, and the connection reads both and uploads them itself.
Both routes end the same way. You get a draft at its own address, you look at it, you leave remarks on the page if something is wrong, and the agent uploads again into the same draft. Nothing is live until a separate publish call, so no edit puts anything in front of the public by accident. The full connection reference, including which client uses which route, is on the Birta MCP page.
What to say to your agent
The prompt that works is bounded. It tells the agent what to make, where to put it, and what not to touch.
Look at the files in this folder and tell me what a small website made from them would contain. Then build it: write index.html at the root of a new folder called site/, with the CSS and images next to it. Resize any photo wider than 2000 pixels. Leave my original notes, PDFs and documents outside site/. Publish site/ to a Birta draft and give me the draft address. Do not publish it live until I say so.Notice what it does not say. It does not name a framework, ask for a build step, or describe a deployment. Those are the parts this workflow removes.
When it does not work
Four failures cover almost everything.
The package has no start page
You will see a refusal naming index.html. Either the agent wrote the site into a
subfolder and published the wrong level, or it never wrote one at all. The message
tells you which, because when an index.html exists somewhere it is named in the
refusal.
A document is missing from the live site
It was dropped as an unsupported type. Markdown, PDFs, Word documents and video all behave this way. Ask the agent to move the content into a page, or to link out to the file where it already lives.
The upload is too big
The free plan gives one project 25 MB, and the refusal states the size it measured against that number. Images are almost always the cause. Resizing before the handover fixes it; so does moving large originals out of the folder you publish, though they still count if they travel as source material.
The site loads but internal links break
Birta serves files. A path ending in a slash is served the index.html inside that
directory, and an explicit .html path is served as itself, so an ordinary
multi-page static site works normally: /about/ and /about.html both resolve. What
does not work is a single-page application, meaning one index.html at the root with
routes resolved in the browser. There is no fallback for that, so every internal link
returns a 404. A path written without a trailing slash and with no matching file fails
for the same reason. If your agent produced a real application rather than a set of
pages, the fix is a static export that writes one file per route.
When the folder is not a website
Some folders should not be published here at all. If what you have needs a server you control, a database, user accounts, scheduled work, or a private key that has to stay secret at runtime, this is the wrong home for it, and no amount of converting changes that. Birta publishes static commercial sites. An application belongs on an application host.
There is a near miss worth naming too. A Notion export lands as exactly this kind of folder, pages and asset directories and no site structure, so the mechanics on this page apply. Whether you should be exporting at all is the prior question, and the Notion comparison answers it before the folder exists.
The free plan is enough for the case this page is about: 50 projects, 25 MB each, on a
birta.link address with the Birta mark left in place.
Your own domain starts on the $12 Solo
plan. If you want the finished page to collect enquiries, the free plan takes ten per
site a month, they land in the project panel, and an email digest follows roughly 15
minutes after the first one.
Point your agent at the folder
Connect the client you already use, then ask it to build the site and show you the draft before anything goes live.