← Index 05AlfyAI CV  ·  Contact
01Shipped work· Case

AlfyAI

A private AI assistant that I designed, run on my own hardware and use every day.

Role
Product, design and operations
Code
AI-written, directed by me
Year
2026
Built with
SvelteKit, Svelte 5, SQLite, vLLM
Links
Source code ↗
ai.alfydesign.com
The AlfyAI home screen
Screens
01

Why it exists

AlfyAI is the AI assistant I use every day, and it runs on my own hardware. Its model is dumber but faster, less intelligent but private, and less knowledgeable but more moldable than the big ones.

So it works next to ChatGPT. It takes the jobs where peak intelligence makes little difference: anything private, anything I want to shape to my own way of working, and the small tasks I repeat every week.

Dumber but faster. Less intelligent but private.

02

What it does

It started as a chat window and grew out of my own daily use. Around the conversation it keeps a memory, a knowledge base, projects and about 18 tools the model can call: web research, maps and routing, making files, running Python, image search and connected accounts.

The screens above are the welcome tour every new account sees, shown here with Hungarian sample content.

2.1

It makes things, and keeps them

Documents, files, small apps and canvases appear beside the chat, and every chat lists what it made.

Detail · What one chat made
2.2

You decide what changes

When Alfy rewrites a document, the change is marked and waits for you to keep or undo it. Every version stays in the history, listed by day.

Detail · Version history
2.3

A memory you can read

A judge checks every memory before it is saved. The memory profile then shows what Alfy keeps, in plain sentences you can edit or delete.

Detail · Memory profile
2.4

Your own accounts, connected

Connections link Nextcloud, Immich, email, Google, iCloud, Plex, OwnTracks, GitHub, OneDrive and any CalDAV calendar, so Alfy can work with what is already yours.

Detail · Connections
2.5

Built from daily use

Drag chats into project folders, queue a message while a reply is still streaming, edit a sent message, or stop a reply halfway.

2.6

One + for the extras

Files, skills, long research reports with sources and the thinking switch all sit behind the + in the message box.

The + menu: attach file, skills, Atlas report, thinking
03

The conversation

For the conversation itself I used Erika Hall’s model: a goal, an action, a response and a reaction. When I read her book, I found I had already been designing that way.

Consistency was the quality I cared about most.

  1. 3.1Thinking blocks collapse on their own.
  2. 3.2Tool calls are shown in plain words, so you can see what Alfy did.
  3. 3.3An evidence tab shows what an answer is based on.
  4. 3.4The logo animates while a reply is being written, for a little personality.
  5. 3.5The interface is built with accessibility in mind.
04

Under the hood

SvelteKitSvelte 5TypeScriptTailwind 4SQLite and DrizzleVercel AI SDKvLLMMinerUOpenRouteServicePlaywrightVitest
  1. 4.1Every change goes to a staging copy first.
  2. 4.2Each release builds into its own folder, goes live with one atomic symlink flip, and rolls back by itself if the health check fails.
  3. 4.3Architecture decisions are written down as ADRs in the repository.
  4. 4.4Memory runs locally, with no outside memory service.
  5. 4.5Uploads are read by MinerU, which also handles OCR.
  6. 4.6I researched KV-cache offloading, quantization and the VRAM needed for two to four people at once.
~18Tools the model can call
~25Smoke tests, in about half a minute
8.5Minutes for every release check, down from 51
Read the code ↗github.com/LVT53/alfyai Where it runs →My personal server
05

How it was made

AI wrote every line of the code. I directed it: the product scope, the UX flows, the architecture, the server, the choice of models and the order of the work.

  1. 5.1Test-driven work with agents kept the output clean: a failing test, then the code that passes it, then a cleanup, again and again.
  2. 5.2Feature creep nearly sank it. I chose a smaller, more refined product over one twice the size.
  3. 5.3Talking it through with others showed me what AI is bad at, and what not to build.
  4. 5.4For my father, who speaks Hungarian, I built a translation pipeline around the model: detect, translate to English, answer, translate back. Small models broke down under load, which showed me where model size and hardware set the limits.