Haij

Open source · AGPL-3.0 · By Martin Nymann Vinther

Side projects with dogmas.
Come on in.

These are my side projects. I build them in my spare time and try to stick to a few dogmas and a high standard. All the code is open, so you are welcome to join in or just get inspired.

The overview in Forretning: hours this week, unbilled, outstanding, the week so far and what needs action

The window

The tools

There are seven tools so far, and an eighth is on its way. Six of them have a demo you can try without an account. They all share the same foundation with separate workspaces in the database, an audit log, passkeys and export of all data.

The overview in Forretning: hours this week, unbilled, outstanding, the week so far and what needs action

Forretning

In use

app.haij.dk

Customers, hours and invoices in one place.

For solo consultants and small companies that want to keep track of customers, hours and invoices without buying a big system. Customers are looked up in the Danish company register, and invoices meet the Danish requirements. There are also finances, small projects, a knowledge center and an MCP server, so your AI assistant can read your numbers and write drafts, but not send anything.

I have used it every day since September 2026. There is no demo yet, but the code is open.

A project in Ajour: tasks, next milestone, obstacles, budget and a week-by-week timeline

Ajour

New

ajour.haij.dk

A plan that keeps up with reality.

For small projects with 2 to 10 people. You describe the project in your own words and get goals, milestones and tasks to start from. Every week the AI drafts a status and suggests changes to the plan. You approve the changes yourself, and they can be undone.

In use since September 2026. You can try the demo without an account or run it yourself. Let me know if you find bugs.

A Kanban board in Tavle: the columns Backlog, Ready, In progress and Done, and a WIP limit exceeded in In progress

Tavle

New

tavle.haij.dk

Kanban and Scrum, without it becoming a system.

A board for teams of two to fifteen. You can run Kanban with WIP limits that warn without blocking, or Scrum with a backlog and one sprint at a time. Burndown, velocity, throughput and cycle time are calculated from what actually happened to the cards. The AI can finish writing cards, suggest a split, summarize the sprint and make a first draft of backlog and roadmap from your own text.

New in September 2026, version 0.11. It is built, but no real team has used it yet. You can try the demo without an account or run it yourself.

A flow in Domino: bricks for loop, document, structured output and schema, with one brick's panel open showing its prompt and fields

Domino

New

domino.haij.dk

Line the bricks up. Push the first one.

A visual flow builder for AI workflows, for people who do not program. You say what you want, such as "read the two hundred applications, pull five points out of each and put them in a table", and the model lines up the bricks. You adjust it on the canvas or in the conversation, test on one example and then run all of it. A flow is one file you can export, import and keep under version control. Runs at Mistral in the EU or on your own machine with Ollama.

New in September 2026, version 0.9. It is built, but has not been used on a real task yet. You can try the demo without an account or run it yourself.

The start screen in Makker: a writing field, a role picker and a library of tasks such as answering an enquiry, a memo and a meeting invitation

Makker

New

makker.haij.dk

Someone to think out loud with.

A chat on top of language models that stay in the EU or on your own server. You can attach minutes or a draft and pick a role such as sparring partner, devil's advocate or plain-language editor. If you ask for a memo or a deck, you can download it as Word or PowerPoint. A filter in the browser stops personal data before it leaves the machine, and others in the workspace cannot see your conversations. Runs at Mistral in the EU or on your own machine with Ollama.

New in September 2026, version 0.9. It is built, but has not been used in real work yet. You can try the demo without an account or run it yourself.

Rulle in Kadence: an indoor ride with 195 watts against a target of 187, cadence and heart rate in big numbers, a landscape with the rider on the road and the day's session as an interval bar along the bottom

Kadence

New

kadence.haij.dk

Young riders at the right cadence.

Training planning for young road cyclists in U17, U19 and U23, their coaches and their parents. The coach plans training sessions in the calendar, on the bike and in the gym, and the season plan starts from Cycling Denmark's recommendations for the age class. Riders can connect their Garmin directly once they have said yes themselves. Planned bike sessions then go to the Garmin by themselves, and rides come back by themselves and land on the session they belonged to. A ride can also come in as a FIT file or a share from the phone. Training load can be worked out without a power meter, and the rider's short check-in shows the coach who needs a talk. The rider decides what the parents can see. For the indoor trainer there is Rulle, which connects over Bluetooth and holds the watts in each block. You ride real routes such as Himmelbjerget and the hills around Vejle, or your own GPX, and the ride lands on the session afterwards. If the team switches it on, the AI can propose the week, and the coach decides. Runs at Mistral in the EU or on your own machine with Ollama.

New in October 2026, version 0.9. The Garmin integration and Rulle work, and Rulle has been ridden on a real trainer. Kadence has not been through a winter with a real team yet. You can try the demo without an account or run it yourself.

A page in Facade: the plan for a summer party with a checklist, decisions and subpages, and projects, channels and people in the menu on the left

Facade

New

facade.haij.dk

The work behind the facade.

One shared place for a small team, with projects, pages you can write on at the same time and the conversation right beside them. There are channels, threads, an inbox and search across it all. Everything can be exported as Markdown, and the AI can make suggestions, but a person puts them in. You can also invite an AI agent in as a member under its own name. Runs at Mistral in the EU or on your own machine with Ollama.

New in November 2026, version 1.3. It is already running with a real project and several users. You can try the demo without an account or run it yourself.

On its way into the window

The code exists and has done real work, but it needs a clean-up, a demo and a README before I show it.

Portefølje

Coming

portefolje.haij.dk

The quarterly rhythm of a portfolio.

Ideas, initiative cards, capacity, the prioritization meeting, status reports and a decision log, and a project room with phases, decision points, risks and benefits. It does real work today and goes in the window once I have made it generic.

Seven dogmas

The rules I build by.

Every tool in the window has to follow these rules, including the ones others have built. They are written concretely enough to be checked. The Danish wording is the original.

I have tried merging some of them, but that made them harder to check.

See the checklist before the window →

  1. Real open source.

    All code is public under AGPL-3.0. Everything I run can be downloaded 1:1 and run somewhere else or locally, and there are no features that can only be had on haij.dk. Clone the repository and you get exactly what runs on haij.dk.

  2. Run it yourself.

    Every tool can run in your own environment on a single server with Docker Compose, a Postgres and a local language model through Ollama, without a single key to any cloud. Features that depend on an external service, such as company register lookups or e-invoicing, say so plainly and let the rest work instead of breaking. The test is simple: cut the internet connection, and everything essential must still work.

  3. Your data, always.

    Everything an organization owns can be taken out with one click in open formats (spreadsheet, JSON, PDF) without asking anyone, and deleted completely again. Taking your data with you must take a few clicks and no unnecessary friction, and I would rather help with the move than make it hard.

  4. EU, or your own servers.

    Where a tool runs for me, everything sits with EU-owned providers on EU soil, language models included, and every tool has a public list of who can see what. No American cloud in operations. The code lives on GitHub, which is code hosting and not user data; a mirror at a European forge comes the day it makes sense.

  5. AI assists, people decide.

    AI may suggest, draft and adjust plans, but never send anything out of the house, delete anything or commit anyone without a person saying yes. Everything AI does can be undone. Content fetched from outside is treated as data, never as instructions.

  6. Security from day one.

    Organizations' data is separated in the database, not only in the code, and there must be a test that proves it. Every change is recorded in a log that cannot be edited. Passkeys and two-step login are there from the start, there is a public way to report security holes, and there are never secrets in the code.

  7. Used for real.

    Nothing I have built myself goes in the window before it has done real work, for me or for someone I sit close to. Tools from others must have a real place of use I can point to. I do not keep tools around that have not created real value in practice.

Join in

How to join in

All the code is free. I do not offer hosting, and there is nothing to buy.

01

Build along

Report a bug, suggest an idea or send a change on GitHub. If you have a tool of your own that follows the dogmas, it is welcome here too.

02

Run it yourself

Clone the repository, run docker compose up and point it at your own Ollama. It takes one server and a Postgres, and you do not need keys to any cloud. You handle the operations yourself.

03

Get inspired

You do not have to use the tools. Read the dogmas and the checklist, look through the code and take what you can use. If you build something to the same demands, I would like to hear about it.

About

About Haij

My name is Martin Nymann Vinther, and Haij is my side project. I have worked on transformations in large organizations for twenty years, and several of the tools started as something I was missing in that work.

There are no investors and no growth plan. I build this because I enjoy it, and I try to keep the same demands on security and data that a large organization would make. That is why there are dogmas and a checklist.

The tools run on my own servers because I use them myself and the demos have to live somewhere. I do not offer hosting. The code is public, so feel free to use it, report bugs and send changes. If you have an idea, or a tool of your own that follows the dogmas, please write.