Kila is Kontroll's logistics platform for international freight, where forwarders manage shipments, purchase orders and quotes. In eight days, WebMinds, an AI and software development company based in Atlanta, Georgia, built Kila DocGen AI: a freight document automation module with AI where forwarders design their own Bills of Lading, Packing Lists and Arrival Notices on a visual canvas, fill them with live shipment data and export branded PDFs, while a Gemini-powered assistant drafts templates and dashboards from plain language. Kontroll's engineers then integrated the module into their platform.
Key facts
- 8 days from first commit to delivery-ready: March 25 to April 1, 2026.
- 162 live data fields per tenant: 108 shipment fields and 54 purchase-order fields.
- 10 ready-made trade document templates (including HBL, HAWB and delivery orders) and 6 KPI dashboard templates.
- 7 of 7 feedback items closed as 8 pull requests in 3 days, directly in Kontroll's codebase.
- 5 Gemini flows, each with structured output, and a builder that works fully with the AI switched off.
Context: trade documents still rebuilt by hand
In international freight, a single shipment generates a stack of documents: the Bill of Lading (or House Bill of Lading and House Air Waybill for consolidated cargo), the Packing List, the Arrival Notice, the delivery order and more. They share most of their data, but each forwarder wants them in its own layout and with its own brand. In much of the industry, email is still where those documents travel.
Kila already centralized shipments, purchase orders and quotes. But the documents that data feeds were still assembled by hand in Word or Excel and sent by email. Every Kontroll customer wanted the same data in a different layout, and there was no way to compare operations visually over time.
The challenges:
- Trade documents rebuilt by hand for every shipment: the same data retyped from the platform into Word, then emailed.
- About 160 fields per operation, and every forwarder wants a different subset, layout and brand on the same document.
- Multi-tenant Firestore data with nested parties, containers, line items and charges, not flat rows ready to print.
- Operational data was there, but users had no way to build their own KPIs without asking engineering.
Why a standard template tool or reporting add-on wasn't enough
Mail-merge tools and generic PDF generators work when the data is flat and the layout is fixed. Kila's data is neither. A Bill of Lading pulls parties stored as objects, arrays of objects, sub-collections and multi-container shipments, and every tenant wants a different arrangement of the same fields. A Bill of Lading also has a recognizable grid structure that a simple word-processor template doesn't reproduce well.
On the analytics side, a generic BI add-on would have meant exporting data out of the platform and asking each customer to learn a new tool. Kontroll needed something that lived inside Kila, respected its tenant system and let each company define its own metrics safely. And it had to be delivered as a module that Kontroll's own team could integrate, not as a separate product to maintain.
What we built: freight document automation with AI, in one Vue module
We delivered six systems as one self-contained Vue module that Kontroll's engineers integrated into their platform, followed by a post-feedback round written directly in their codebase. The project draws on our AI and automation, web and app development and integrations practices.
Template Builder: what you see is what prints
A drag-and-drop canvas with a 12-column Bill of Lading grid, live tables, autosave and pixel parity between the editor and the PDF. Getting parity right took real work: the HTML canvas and jsPDF measure differently (pixels against points), so fonts initially came out 33% larger in the PDF. We unified scale and grid widths so the editor and the document match.
Live data layer: any data shape, turned into a document
162 per-tenant fields across shipments, purchase orders and quotes, with nested parties, containers, line items and charges resolved automatically. Everything goes through one generic resolver. Metrics are also discovered from the real data, because the field catalog did not cover quotes or every custom field.
PDF engine
Branded, paginated PDFs with the tenant's logo, dynamic row heights, an automatic landscape suggestion and footer variables.
Inside the operation
Users generate a document from a template inside the shipment or purchase order itself. A coverage check runs before the PDF exists, so missing data is flagged first, and the generated file is saved back into the operation's documents.
Dashboard Builder with custom KPI formulas
Ten widget types, the ten logistics KPIs Kila asked for (such as OTIF, on-time rate and lead time by stage) and custom formulas per company. Users write spreadsheet-style formulas; a hand-written parser turns them into an abstract syntax tree and evaluates it per group, with live validation and error positions. No arbitrary code ever runs, and there is no eval() underneath. This is the same data and analytics principle we apply elsewhere: let users ask their own questions without opening a door to unsafe code.
Kila AI: the AI proposes, people approve
A Gemini 2.5 assistant drafts document templates and dashboard layouts from plain language, applied only with a click, plus an admin panel to tune it without code. Gemini receives the tenant's real catalog of fields, widgets and metrics, so it cannot invent fields. Truncated JSON is repaired and normalized before anything is built, nothing lands on a document without a click, and the builder works fully with the AI switched off.
Under the hood
This is not just a pretty editor. It is a multi-tenant data layer over Firestore, a document rendering engine, an aggregation engine with logistics KPIs, a formula language of its own and an AI with guardrails. The engines run in the browser on top of Kontroll's existing architecture and make up roughly 60% of the code. The MVP had about 10,000 lines of TypeScript and Vue across 18 domain modules (5 added after feedback), 72 commits in the first eight days, and 6 logistics metrics computed from shipment milestones.
The post-feedback round was written directly in Kontroll's repository, adapting to their versions of Tailwind, Pinia and the router, their routes, their conventions and their tenant system.
We built it with Hybrid AI Coding: senior WebMinds engineering directing AI coding agents (Claude Code), with independent QA on every change. Architecture, judgment and every decision with the client stayed human. That is how a six-system module went from first commit to delivery-ready in eight days.
If your platform still exports data so someone can retype it into Word, get a free assessment and we will scope a document engine for it.
Timeline
- March 25, 2026: first commit of the DocGen AI MVP.
- March 26–27, 2026: connected to Kila's real data, with a dynamic field catalog, operations, sub-collections, conversational Kila AI and the first KPI dashboard.
- March 30, 2026: Bill of Lading-style Grid Builder, full Dashboard Builder, AI for dashboards, the 10 requested KPIs and the map.
- April 1, 2026: feature-complete, with template protection, settings management and handoff documentation.
- April 12–15, 2026: Kontroll's team integrates the module into its platform; formal delivery and acceptance.
- April 22–24, 2026: feedback session with 7 items, closed in 3 days as 8 pull requests in Kontroll's codebase.
Results
Documents that fill themselves
A Bill of Lading used to mean retyping a shipment into Word. Now a forwarder picks the operation, the template fills from live data and the PDF is filed back into the shipment, coverage-checked before it is generated.
Every client, their own document
Same 162 fields, endless layouts. Each Kontroll customer designs its own formats, brands and KPIs, including formulas of its own, without opening an engineering ticket.
A module, not a side project
Kila DocGen AI was delivered as a self-contained Vue module that Kontroll's engineers integrated into their platform in days. Feedback rounds land as pull requests in their codebase, under their conventions. The screens (dashboards shown with sample data) are in the Kila case study.
FAQ
What is freight document automation?
It is generating trade documents such as Bills of Lading, Packing Lists and Arrival Notices directly from the shipment data already in your system, instead of retyping that data into Word or Excel. In Kila, a forwarder picks an operation and a template, and a branded PDF is generated and saved back into the shipment.
Can each forwarder keep its own Bill of Lading layout?
Yes. Each tenant designs its own templates on a 12-column Bill of Lading grid, with its own logo and its own choice from 162 live fields. The editor and the PDF have pixel parity, so what you design is what prints.
Does the AI create documents on its own?
No. Kila AI proposes a template or dashboard layout from plain language, using only the tenant's real fields, and nothing is applied until a person clicks. The builder works fully with the AI switched off.
Can users build their own logistics KPIs safely?
Yes. Users write spreadsheet-style formulas that a dedicated parser turns into a syntax tree and evaluates per group, with live validation. No arbitrary code ever runs, and there is no eval() underneath.
Can you build a module like this inside our existing platform?
That is exactly how Kila was delivered: a self-contained module integrated by the client's own engineers, with later changes written as pull requests in their codebase. For more logistics work, see the ANT Mobility freight marketplace and the Loski coffee traceability platform.
Give your platform a document engine
Kila DocGen AI turned retyped trade documents into templates that fill themselves, in eight days. Read the full Kila DocGen AI case study for the screens and architecture.
Get your free assessment or book a call with our team.