rratl.dev

An AI product lab

6 AI-native products, built end to end and self-hosted.

Benchmark the commercial leaders in a category, rebuild to feature parity on proven designs, then differentiate with AI.

products in production
6
AI capabilities shipped
33
years, 2024 → today
2
VM behind Cloudflare
1

Products

Each with its primary use and the thing that makes it different. Status is checked live from your browser.

  1. Product · since 2024

    DataPilot

    ask, query, govern and automate enterprise data

    Demo on request14 scenes on film
    Scene 1 of 14. Ask in plain words. The router picks an engine, finds the right tables, answers with a table and a chart · 4:45, filmed on the demo

    One analyst's afternoon on the demo: a question becomes a grounded answer with a table and a chart, the same question as SQL with its profile and plan, quality rules on the invoices table and a run that scores it and lists the failing rows, the assistant's assumptions vetted by a person, the knowledge graph behind it, a Weave flow quarantining bad rows, an agent pausing for approval, a coordinator investigating with SQL tools, faceted search, a narrated data story, and the access matrix that governs it all.

    The 14 scenes, in order

    Primary use. One platform to ask, query, govern and automate enterprise data. Chat streams answers over WebSocket through four engines — plain LLM, agentic (live tool calls), RAG (knowledge-graph-grounded SQL) and an auto-router that picks the engine per turn and shows why — with voice in/out, attachments, inline tables and charts, and per-response cost. A multi-tab SQL workbench (schema-aware autocomplete, database navigator, cache-backed grid) with analysis tabs for AI-to-SQL, pivot, profiling, execution plan and data-quality rules. A three-layer semantic catalog (physical → logical → canonical) with a schema graph. Weave: a visual data-flow builder — CSV/Parquet/Trino sources, joins, transforms, quality nodes, SQL/stored-procedure/API call-outs — run as scheduled tasks with parameters, variable sets, retries and notifications. Orchestrate: agentic workflows on the same canvas — manual, chat, cron or webhook triggers; LLM prompt, intent router and field extraction; SQL, HTTP, Slack and Weave steps; branching, loops and merges. A Monitor over every flow, task and workflow run; Projects and masked variable sets; Facets (faceted-search dashboards), data Stories, Notebooks and a control-room Home with KPIs, run feed and next scheduled runs. Connects 30+ database engines, REST APIs and files, plus a Trino data-lake admin. Ships as an 11-container Docker Compose stack.

    Differentiator.Grounded, not guessing — every connection carries its own knowledge graph (abbreviations, discovered relationships, golden question→SQL pairs) that RAG retrieves before writing SQL, and the assistant clarifies instead of guessing when a question is ambiguous.

    DataPilot: databases, warehouses, the lakehouse, files, APIs and a spoken or typed question become grounded, read-only SQL with its assumptions scored; chat, a workbench, Weave flows and Orchestrate agents; a person vets and approves Postgres, MySQL, SQL Server and Oracle, Snowflake, BigQuery and Databricks, Trino over a parquet lakehouse on S3, CSV, Parquet, Excel and JSON files, REST APIs and a typed or spoken question come in; 43 source types in all. DataPilot grounds the question in the connection's own knowledge graph of tables, keys and abbreviations, routes it to an engine, writes SQL that a read-only safety gate checks, and answers with a table, a chart and its assumptions scored with a confidence. The team gets chat with charts that says which engine and which tables answered, a SQL workbench with profile, plan and quality rules and an assistant that shows its work, Weave flows with quality checks and a quarantine branch, and Orchestrate agents that use SQL and flows as tools, fan out to workers and pause for approval. A person vets the assumptions and approves the gated steps, under per-connection roles and access levels, before a refresh runs. WHAT COMES IN Databases Postgres, MySQL, SQL Server, Oracle Warehouses Snowflake, BigQuery, Databricks Trino and the lakehouse 14 catalogs, parquet on S3 Files CSV, Parquet, Excel, JSON REST APIs FX rates, webhooks, any endpoint A question typed or spoken; 43 source types in all Ground it the connection's own knowledge graph ROUTE · SQL · VERIFY which vendors have unpaid invoices over $100K? auto-router RAG Agentic Compare Normal SELECT v.vendor_name, SUM(i.amount_remaining) FROM invoices i JOIN vendors v ON … WHERE i.payment_status = 'UNPAID' … read-only gate assumptions · 60% Based on P2P Demo · invoices, vendors an engine per question · read-only SQL · assumptions scored WHAT THE TEAM GETS Chat with charts which engine, which tables unpaid invoices over $100K? Auto → Agentic · database · 10 rows based on invoices, vendors SQL workbench quality rules scored on every result SELECT v.vendor_name, COUNT(*) FROM invoices i JOIN vendors v GROUP BY 1 HAVING unpaid > 100000 96 rows · 4 ms profile · plan · 40 quality rule types · score 95 Weave flows quality checks, a quarantine branch 1,241 clean → parquet on S3 259 quarantined SQL · REST · checks · joins · 57 nodes Orchestrate agents that pause for a person ask check approve? run answer worker worker agents use SQL and flows as tools · 31 steps AI drafts SQL, answers, refreshes Answer with its assumptions confidence scored; SQL is read-only A person vets and approves roles × access levels; approval steps only then the refresh runs RUNS ON FastAPI Postgres + pgvector Trino Polars OpenSearch Claude OpenAI Ollama SSO 655 routes · 57 nodes · 648 tests
    How it is put together. DataPilot: databases, warehouses, the lakehouse, files, APIs and a spoken or typed question become grounded, read-only SQL with its assumptions scored; chat, a workbench, Weave flows and Orchestrate agents; a person vets and approves

    Agents that do work, with a human in the loop: a Coordinator Agent spins up dynamic sub-agents, delegates or fans out to other workflows, streams its run live, and pauses at a Wait for Approval step (suspend/resume) before anything consequential; any workflow can be exposed as an agent inside Chat. Governance built in: roles are data behind an auditable permission switchboard; every route declares its authorization check and coverage tests fail the build when one doesn't; object-level data access, per-role tool permissions (run / export / AI / share / DQ), SSO via Keycloak or Entra ID with ID-token verification, PKCE, back-channel logout and session revocation. External systems are chat tools over MCP — Jira/Confluence, GitHub, SharePoint (with RAG indexing) and any connected database as read-only SQL — each toggled per conversation.

    Governance. Built in, not bolted on. Auditable role permissions, object-level data access, coverage tests that fail the build when a route lacks an authorization check, and SSO via Keycloak or Entra ID.

    • Python
    • Quart (async Python)
    • SQLAlchemy
    • Next.js
    • React
    • TypeScript
    Ask about it
  2. Product · since 2025

    IDIA

    cross-system discovery, lineage, governance and operations for the enterprise data estate

    Demo on request11 scenes on film
    Scene 1 of 11. Ask across systems: what breaks if the vendor master changes? · 1:55, filmed on the demo

    Walking the demo estate: ask what a change breaks, find anything across four systems, trace lineage, read a Power BI report and hop into its semantic model and back, check health, work out run order, govern, and draft a mapping for a person to review.

    The 11 scenes, in order

    Primary use. One place to find, understand, govern and run the data estate — a discovery and intelligence layer over Dynamics 365, Microsoft Fabric, Oracle EBS, Informatica IDMC, SharePoint and Azure DevOps. Automated metadata and end-to-end, column-level lineage extracted into a queryable knowledge graph; faceted search across enterprise systems (Meilisearch) by domain, owner, tag, tier, certification and quality; navigate an object's relationships, where its data comes from, what depends on it and what a change would affect; Fabric and D365 exploration; data-quality rules, incidents and escalating alerts; dependency-driven orchestration that derives run order from what each job reads and writes, then runs, holds and resumes it under policies — parallelism caps, retries, timeouts from the history, blackout windows, a freshness skip and a side-effect gate — with estimates and notifications; AI-drafted Informatica mapping specs as validated proposals, pushed through IDMC's own import API once reviewed; and conversational discovery backed by search, embeddings, RAG and graph relationships. Built after evaluating the platforms' own tools and finding none that gave cross-system discovery, navigation and dependency visibility.

    Differentiator.Ask questions across systems and databases as if they were one — federated, natural-language querying that spans sources never integrated into the data warehouse, using the knowledge graph to resolve where the data lives and how it joins.

    IDIA: six systems extracted into one estate graph, which answers search, impact, quality and run order; a person approves before anything is written back Dynamics 365, Microsoft Fabric, Oracle EBS, SharePoint, Azure DevOps and Informatica IDMC are extracted, metadata and column-level lineage, into one estate graph of objects, edges, columns and runs. The graph answers faceted search across systems, change-impact analysis over everything downstream, data-quality rules bound to the asset the data lands in, and run order derived from what each job reads and writes. A change the app drafts becomes a validated proposal that a person approves before it reaches Informatica IDMC through its import API. SIX SOURCE SYSTEMS Dynamics 365 OData and metadata Microsoft Fabric lakehouse and items Oracle EBS ERP tables SharePoint documents via Graph Azure DevOps work items infa Informatica IDMC mappings and taskflows Extract metadata and column-level lineage ESTATE GRAPH objects · edges · columns · runs WHAT THE GRAPH ANSWERS Search and answers ask across systems as one Impact analysis what breaks if this changes Quality rules run where the data lands Run order from what each job reads and writes 1 2 3 4 AI drafts a change Proposal validated, linted, not applied A person approves no AI identity can write only then IDMC import API RUNS ON Kuzu graph LanceDB embeddings Meilisearch DuckDB Ollama Foundry Local on-premises · no metadata leaves the environment
    How it is put together. IDIA: six systems extracted into one estate graph, which answers search, impact, quality and run order; a person approves before anything is written back

    Turns lineage into living knowledge: documentation generated from the graph — full lineage, a data dictionary, flow diagrams, dependencies and plain-language explanations — with impact analysis (what feeds what, who depends on it, what breaks if it changes). Enough to hand over an unfamiliar estate without a meeting: the documentation is generated from the graph rather than maintained by hand, so a team can trace what feeds what and what breaks if it changes by reading it. Discovery, governance, quality and operations in one app under one permission model: single sign-on through Entra or Keycloak, role-based and object-level access, every action in an audit log. AI drafts, humans commit — drafted mappings are proposals, the administration agent holds writes as pending actions, and in demo mode writes are refused outright. Can run fully on-premises with local inference (Foundry Local / Ollama), local embeddings and a QLoRA fine-tuning pipeline, so no data need leave the environment.

    Governance. Owners, tiers and classifications; a glossary with hierarchy and an approval workflow; domains and subdomains; data products with contracts and health checks; certified business metrics with their inputs; and automations that apply or propose changes for a steward to review. Requests and an activity feed keep changes auditable. A governance dashboard tracks ownership, documentation and quality coverage across the estate rather than per system, and change-impact analysis shows every downstream report and pipeline before a source is altered. Quality is enforced rather than asserted: rules bind to assets, run against the table a pipeline writes to, and keep their result history, with incidents and escalating alerts when they fail.

    • Python
    • Quart (async Python)
    • React
    • TypeScript
    • Informatica IDMC
    • Microsoft Fabric
    Ask about it
  3. Product · since 2024

    Aata

    AI-assisted testing platform for non-coder QA teams, built agent-first

    CheckingOpen honeyguide.ratl.dev14 scenes on film
    Scene 1 of 14. A test starts as a sentence. Describe the scenario; the AI proposes the cases · 2:29, filmed on the demo

    One QA lead's arc through the demo: a test starts as a sentence, runs for real with evidence per step, catches a visual change for a person to judge, runs on a phone, then goes beyond the screen into APIs, the database, accessibility, security, an authorized pentest and load, while the platform learns and answers questions from its own data.

    The 14 scenes, in order

    Primary use. Enterprise QA platform for non-coder testers, positioned against Katalon, Applitools, Xray and Azure Test Plans: a recorder (wraps Playwright codegen) whose click-stream an AI turns into a readable Test Spec with hardened selectors, suggested assertions and named cases; scenario-to-spec generation from plain English; suites that run identically from the dashboard or the CLI; visual regression with a human approve/reject queue; exploratory sessions (charter + timebox, or an automated crawl that records screenshots, console errors, failed requests and an accessibility pass); API discovery (incl. from HAR) that also reports which endpoints have no tests, with coverage kept per scan; database testing at Great Expectations / dbt / Soda parity, read-only; mobile on physical Android devices via Appium with a device agent that polls out through corporate NAT (the UiPath Robot pattern); security (ZAP-baseline passive scan and an authorized pentest runner with benign proof payloads), accessibility (axe-core) and performance (k6-style single-node load, p50/p95/p99); a report engine that turns any module's findings into an AI executive summary and a self-contained HTML deliverable. 272 API routes, 30 modules, 545 tests; OIDC SSO; deployed on Azure Arc-managed servers and at honeyguide.ratl.dev.

    Differentiator.Agents with explicit autonomy policy, not features with an AI button.

    Aata: a URL, a scenario, a recording, an API, a database or a phone becomes one spec that runs in a real browser and heals its own locators; a person reviews before it counts The app under test, a plain-English scenario, a Playwright recording, an OpenAPI or HAR file, a database connection or an Android device come in. Aata turns each into one spec of cases, steps and assertions, grounded by a knowledge base the app builds from use, and runs it in a real browser, on Appium or over HTTP, healing broken locators with DOM fingerprints and visual verification and refusing to heal when unsure. The team gets a screenshot and call log per step, visual regression with an approval queue, accessibility, security, API-coverage and load scans with an AI executive summary, and a tool-using assistant that answers from the data and can run a suite. The AI proposes scenarios and specs; a person reviews and approves before anything counts. WHAT COMES IN The app under test any URL, in a real browser A plain-English scenario describe it; the AI writes the spec A recording Playwright codegen click-stream APIs OpenAPI, HAR, or the source code Databases SQLite, Postgres, MySQL, Trino Phones Appium, polling out through NAT One spec cases, steps, assertions; grounded by the app's KB RUNS IN A REAL BROWSER Approve locator healed · 0.93 open sign in search open fill approve assert shot self-healing locators · refuses when unsure WHAT THE TEAM GETS Evidence per step a screenshot and the call log 16 steps · 6 screenshots · 1 assertion failed, with the call log Visual regression with an approval queue baseline candidate diff approve reject Scans and reports a11y, security, API, load accessibility · axe security · passive scan API coverage · 535 untested load · p95 under target AI summary Assistant answers from the data, runs suites which suite fails most? query_database · 3 rows · chart run_suite · as a tool AI proposes scenarios and specs Proposed spec linted: no test that cannot fail A person reviews approves specs and visual changes only then it runs and counts RUNS ON FastAPI Playwright Appium OpenCV Kuzu graph OpenSearch Claude OpenAI Ollama SSO 272 API routes · 30 modules · 545 tests
    How it is put together. Aata: a URL, a scenario, a recording, an API, a database or a phone becomes one spec that runs in a real browser and heals its own locators; a person reviews before it counts

    Every AI output is checked before it counts: generated specs are linted for tests that cannot fail; self-healing locators score DOM fingerprints with Similo-weighted similarity (ACM TOSEM '23), verify the candidate visually with OpenCV, fall back to coordinates only as a last resort, and refuse to heal when unsure — the same fingerprint model on web and Android. A tool-using assistant (streaming, Anthropic or any OpenAI-compatible model) answers from the page's own context and can query the database or run a suite as tools; a per-app Knowledge Base accumulates from every recording, passing run, healed locator and crawl — nothing hand-authored — and a GraphRAG index grounds the assistant. Phoenix, the module through which the product changes itself: feedback → scan → backlog → stories, governed by ITIL-style risk tiers — low-risk changes are planned, coded on a branch and opened as a PR autonomously; medium waits for approval before the PR; high plans only; no tier can merge, touch control paths or exceed its file/line budget, and tests must pass. Prior art first: the recorder wraps codegen, healing follows Healenium/Similo/Applitools research, DQ checks are the industry parity set — parity is built before novelty.

    Governance. Treats data quality as a testable control. Rules written as Great Expectations, dbt and Soda-style checks run as repeatable suites against the database, and AI drafts new checks from the schema knowledge base, so quality requirements are verified with evidence on every run instead of asserted.

  4. Product · since 2026

    HawkDeck

    self-hosted infrastructure control plane with an AI operator

    CheckingOpen hawkdeck.ratl.dev14 scenes on film
    Scene 1 of 14. Every device, its health and what needs a decision, worst first; capacity and risk below · 2:47, filmed on the demo

    One operator's morning on a real estate: the overview says what needs a decision, the fleet is hypervisors, Linux, Raspberry Pis, a firewall, identity, two tailnets and the edge in one console, a machine is watched live down to its sensors, its containers and its security audit are a click away, alerts are one cause per device, exposure shows who is knocking from outside, the assistant answers from the stored observations, and every action waits for a person.

    The 14 scenes, in order

    Primary use. One console to observe and act on a mixed fleet — Linux, Windows, Proxmox guests (noVNC console relayed through the backend), Redfish BMCs, SNMP switches and OPNsense firewalls — with health, services, processes, storage, Docker, terminal, file explorer, security audits and patching; a Cockpit-class control plane for multi-vendor infrastructure.

    Differentiator.An evidence-based infrastructure knowledge model (entities, relationships, collection runs, evidence, memories) that the AI assistant reasons over to propose actions — humans approve; AI identities can never approve, operate files or open terminals.

    Pluggable inference providers (Anthropic, OpenAI, Gemini, Ollama, custom) with Fernet-encrypted credentials.

    Governance. Least privilege and accountability by default. Devices are read-only until access is granted, OIDC SSO maps role claims to permissions, and every action leaves an audit record. Forensic snapshots and file-integrity checks preserve evidence, and the approval step is reserved for humans.

  5. Product · since 2026

    Kite

    browser-based remote-access gateway (gateway + client)

    Kite: Catalog — every machine you can reach
    Catalog — every machine you can reach

    Primary use. One authenticated browser tab reaches every machine over RDP/SSH/VNC and every remote file store — replacing mstsc + PuTTY + WinSCP + a jump host; multi-session tabs, ⌘K catalog, SSO (Keycloak/Entra) + TOTP, RBAC, Guacamole-compatible import/export; embeddable via iframe + postMessage bridge (runs inside HawkDeck at /kite/).

    Differentiator.Built AI-first — the gateway sees every session, so AI providers, session summaries and command-risk rules are modelled in the server for a context-aware assistant that answers against the active surface (open file/grid/query, terminal scrollback, desktop screen) and a command-risk guard that holds destructive commands for approval (in progress).

    Governance. One controlled entry point to every machine and file store. Access is authenticated through SSO with TOTP and scoped by RBAC, and credentials and network reach never leave the server, so users work on remote systems without ever holding the secrets to them.

  6. Product · since 2026

    Vitai

    the AI-assisted resume product this page runs on

    Vitai: The public page — one record, rendered
    The public page — one record, rendered

    Primary use. A professional's history as structured facts with lineage, published as a living page: one record renders the resume, a 60-second Career Story, an Insights dashboard and a Beyond Resume view, with a grounded assistant that answers recruiters' questions from the record and shows its sources. The owner maintains it from a workspace — import the Word resume and review an AI-proposed, path-level diff before it becomes a revision; a knowledge base from documents; layout designer; visitor feedback and call scheduling (email or Microsoft sign-in verification, Teams links). Any candidate publishes at /u/<slug>.

    Differentiator.Not a document and not a network — every claim traces to a product, role or artifact, and everything generated (stories, answers, proposals) cites the record it came from; the assistant answers only from the record and says when it can't.

    Model-agnostic by the owner's choice: Anthropic, an OpenAI-compatible endpoint, or a local model via Ollama, configured in Settings — the import and assistant run fully on-premises on a 3B model. Voice in and out (Piper / Whisper) baked into the API image; built and shipped as a multi-tenant product, with the maker's own resume as the first tenant.

    Governance. Every claim traces to a product, role or artifact. Generated stories, answers and edit proposals cite the record they came from, the assistant answers only from the record and says when it cannot, and every change to the record is a revision with its reason. Runs fully on-premises on a local model when required.

Platform

Everything above runs on one 8-vCPU VM: Docker Compose per app, Caddy in front, a Cloudflare tunnel to the edge, local models on CPU where a key is not worth it.