Skip to content

Personal project · Developer / Owner

Averra AI

An agentic AI platform for finishing work, from question to result. A person asks in plain language, and the platform finds the evidence in registered databases, imported documents, the open web or its own wiki.

Role
Developer / Owner
Type
Personal project
Since
September 2026
Platform
Web, Android, iOS, desktop
Stack
Kotlin and Spring Boot services, Next.js and React, Kotlin Multiplatform, Rust and WebAssembly, PostgreSQL with pgvector
Status
In development

Walkthrough

Recorded on sample data.

What it does

An answer from data
Discovers the databases it may read from a registry, reads their schemas and writes its own SQL. A parser checks every statement before it runs.
An answer from documents
Searches an imported corpus by meaning and wording together, can rerank the candidates, and cites what it used. PDFs are converted to Markdown on import.
An answer from the open web
Searches through a search instance of its own and quotes what came back.
A file, not a reply
Writes and runs code in a sandbox, then publishes a PDF, slide deck, spreadsheet, Word document, dashboard, diagram, 3D scene or video.
Tasks, projects and a schedule
Plans tasks with dependencies, busy time and reminders, gives every task one owning project, estimates the chance a task completes, and proposes changes that a person approves before they apply.
Something repeatable
Runs it as a flow: a typed graph of nodes, versioned, scheduled and notifying its author. The agent can draft a flow for a person to review.
Memory that a person controls
Extracts dated notes from conversations, flags notes that conflict, and asks the person to confirm or reject them in a weekly review. It keeps up to 5,000 notes and, at that limit, replaces the weakest with stronger evidence. An exported WakaTime history can be imported so coding time informs task estimates.
Suggestions that explain themselves
Offers follow-ups on a page of their own, grounded in notes the person has validated, and says why a suggestion was made and why one closed.
A place to keep what it knows
Keeps wiki pages with history and backlinks that people write, shared or personal, and answers from them.
Reaching other systems
Connects to MCP servers and OpenAPI services as reviewed tools, exposes its own MCP server with tools, prompts and a reader’s files and wiki pages as resources under the same permissions, and holds a linked Telegram conversation with voice messages.
A browser a person can watch
Drives a per-person Chromium that the person can watch live and take over. It is still in development.

Scale

Agent tools
142
Flow node types
41
HTTP operations
514
Database tables
170
Web pages
73
Interface languages
Indonesian and English

Counted from the repository: tools from the tool manifest, node types from the executors, operations from the OpenAPI snapshots, tables from the replayed migrations and pages from the web application.

Clients

Web application
Chat with dictation and resumable streaming, a library of files, wiki, workflow editor, task calendar, projects, memory and an admin console. A model editor offers sculpting, texture painting and rigging for 3D meshes, and a Rust module compiled to WebAssembly handles its mesh operations.
Mobile and desktop application
A Kotlin Multiplatform and Compose app for Android, iOS and desktop with more than twenty feature areas, native camera and audio, and a token refresh that follows the web client. Interface copy is generated from the web message files, so both clients say the same thing. Bringing it to parity with the web application is ongoing work.

My contribution

I develop and operate Averra AI as a personal project. The work spans four backend services (platform, agent, code runner and browser), the web frontend, the Kotlin Multiplatform app for Android, iOS and desktop, a Rust and WebAssembly module for the model editor, the build tooling that generates mobile models from the API, and the checks and documents that keep these parts consistent.

System context

  • Reader

    Conversations, files, workflows and wiki.

  • Operator

    Configuration and administration.

Averra AI

Answers, files, flows and wiki pages.

  • Model and media engines

    Configured model roles and integrations.

  • Registered databases

    Permission-gated, read-only queries.

  • MCP and OpenAPI systems

    Reviewed tools and approved writes.

  • Public web

    Search through an instance of its own.

  • Telegram Bot API

    Optional linked private conversation.

Fig. 1. System context of Averra AI.

Decisions in the design

Domain neutral by construction
Data sources, prompts, skills, node types and flows are rows that are edited through the API while the platform runs. There is no keyword table, no per-domain branch and no compiled-in business rule.
Flows as typed graphs
A flow is a directed graph of typed nodes, stored as data, versioned and run by a topological scheduler. Ports carry a closed set of types, and an edge is accepted only when the source type widens into the target type. Publishing any version doubles as a rollback. A flow with no language-model node is deterministic.
Ownership and permission checks
Registered databases are read only and permission gated. A workflow belongs to its owner, and anyone else receives a not found response. A skill the agent writes for itself stays disabled until a person enables it.
Code runs in a cage
Generated code runs in a separate service with a cleared environment, a time limit, a confined workspace and, in Kubernetes, no outbound network. The browser service resolves each host once and accepts public addresses only, so a rebinding trick cannot reach the internal network.
Search tuned by measurement
Retrieval combines vector and full-text search in Indonesian and English, and every ranking change is judged against a labelled set before it ships. The sets are small, so the results are a baseline and not a claim of accuracy.

How it is built

Contracts between parts
Service APIs are OpenAPI snapshots checked for breaking changes. gRPC schemas, the agent tool manifest, the flow graph schema and data ownership per table are checked too, and mobile models are generated from the same OpenAPI files.
Automated architecture checks
More than ninety audit checks cover database conventions, Kotlin boundaries, TypeScript rules and parity between web, mobile and the API. A coverage gate of 80 percent applies to the backend, the web client and the mobile modules.
Measured retrieval
An evaluation harness reports recall, reciprocal rank, nDCG and whether the system declines unanswerable questions, with separate development and held-out sets. It showed that the approximate vector index missed most of the exact neighbors at its default setting, so search now sets the scan depth per query.
Design before code
Changes move through research, a proposal, a design review and a decision record. The repository holds more than two hundred research notes and dozens of decision records.

Tradeoffs and limits

Keeping behavior in data rather than code makes the platform flexible without a release, but every rule then needs validation at save time and at run time. Typed ports catch wiring mistakes early at the cost of more explicit conversions between node outputs.

The mobile app has no offline mode. The 3D, workflow and memory graph editors stay on the web, and the web view that is meant to open them in the app does not load them yet. A gap audit of the web and mobile clients lists 261 differences, 51 of them reader features that are missing or not wired. The remote browser is not released.

Get in touch

Averra AI is in active development. Contact me to discuss the project or similar work.