Kamali · AI · Forms
A browser inside the page, to fill funding forms
Funding applications are web forms, PDFs and Word files. I streamed a remote Chrome into Kamali so the organisation's facts can fill them, and learned what not to take from search.
A lot of an NGO's fundraising is filling in forms. Every foundation has its own: some on a website, some as a PDF, some as a Word document. Most fields ask the same things: legal name, registration number, bank details, certification, a project description, a budget.
Streaming a browser
For web forms, Kamali runs a Chrome on the server and shows it inside the page, so the form can be filled from the organisation's facts while a person watches and corrects. Getting it to feel local took two days and five versions.
WebRTC video was laggy. Full-page screenshots were too heavy. A screencast over a WebSocket was better. What works is tiles: the page is cut into 256-pixel squares, each with a fingerprint, and only new or changed tiles are sent, as PNG or JPEG depending on their colours. Scrolling back to a part you've seen costs nothing. A tile update is about 10 KB against 160 KB for a whole frame, and a still page uses about 75 kbit/s. Hover, focus and typing are drawn locally, so they feel instant.
Halfway through I wondered whether I'd just rebuilt something that already exists as open source. Partly, yes. I should have checked first. I'm keeping it anyway, because it runs on the organisation's own server and I can shape it to forms.
What never comes from search
The more interesting decision is where the answers come from. Dozens of fields recur across funding forms. Most of them must be exact: the registration number, the bank account, the certification date. Those come from a fixed organisation profile that a person has confirmed, never from a search over old documents. Search is for the free text, like a project description, and every answer shows its source.
A few small rules came from using it:
- The office phone stands in for anyone without their own number.
- No invented length limits. If the form allows 2,000 characters, the answer can use them.
- Read every field first, then decide where each answer comes from.
PDF forms and Word forms use the same profile. The rest of the file stays byte for byte as it was.