Tilari User guide · bookkeeping in the browser

What Tilari is

Tilari is a bookkeeping program you use in the browser. You record expenses, income and transfers, attach receipts, browse the balance sheet and profit and loss, and close the year. The books live in a file or a locker that you control — not in a Tilari cloud account.

You do not need Kitsas to use Tilari. You can create a new Finnish business book in the browser and keep the books from there.

If you already use desktop Kitsas (open-source bookkeeping), this version opens and writes the same .kitsas file. You can switch a saved file between the two; that may change in a later Tilari. Tilari is not a Kitsas Oy product, and Kitsas Oy does not support it.

Start by trying it: open Tilari, create a book, post a voucher. Below is what the program does and who it is for. Ways to run it (HTML, this computer, a locker) come later on the page.

Why Tilari

  • Try it now: one HTML file — on start you create a new book.
  • Fully working in the browser — or as a normal web app.
  • Reports you can click through to a voucher; in-session change log.
  • Fiscal statement (tilinpäätös) is in. No archive yet.
  • The book in your file or your own locker (Supabase / VPS).

What Tilari adds

Tilari is full bookkeeping in the browser, not a viewer. For day-to-day use it brings things desktop programs rarely put in the same place — useful even if you have never used Kitsas.

If you already know Kitsas: these are things desktop Kitsas does not present the same way. Desktop Kitsas remains the reference for what Tilari has not copied yet (associations and housing companies, chart editor, archive). In this version the same .kitsas file works in both.

Who this is for

Tilari is useful for anyone who wants to keep Finnish double-entry books themselves: a freelancer, a sole trader, a small limited company, or a bookkeeper who wants a browser instead of a separate desktop program. You do not need a Kitsas background — a new business book is created on start.

It is especially natural if you already know Kitsas: the same file, the same posting rules, a browser UI, and Tilari’s own views (time, click-through reports, change log).

The author has tested Tilari in his own use: a Finnish osakeyhtiö (limited company) with relatively few vouchers (typical for freelancers). Large ledgers, associations, housing companies, sole traders, and other VAT setups have not been a daily test bed. Files should still open; behaviour there is not guaranteed. Say so if you use Tilari on a different kind of book — that helps prioritise.

What is in and what is not

For day-to-day books you usually need: open or create a book, post expense / income / transfer, attach a receipt, read reports, and close the year. The table is this version. There is no published schedule — ask in GitHub Discussions.

Area Status Notes
Open an existing .kitsas In
Create a new empty book In On start. Business chart: name, business id, first financial year, VAT, practice. Associations and housing companies still start in desktop Kitsas
Expense / income / transfer / other In Daily posting
Bank statement (tiliote) Partial Edit and split a line to its own voucher. No bank-file import
Attachments Partial Upload and preview. No OCR / parse, no auto-shrink
Chart of accounts (tililuettelo) Not yet Accounts are read from the file; no editor
VAT (ALV) Partial HTML declaration; no OmaVero submit
Fiscal statement (tilinpäätös) In
Archive (arkisto) Not yet
Invoicing / workflow / payroll Not yet

Request features

Tilari grows by what people actually use. If you miss a function (something familiar from Kitsas, or a new idea), open a thread in GitHub Discussions. You do not need a Kitsas background: say what day-to-day bookkeeping needs.

Things to remember

Choose a setup

The book always opens in the browser. Pick where the file lives and who uses it.

You want Use
A trial, a USB stick, no install One HTML file
Daily bookkeeping on one machine Local server and browser
The same locker at home, in the office, or on a phone, with no public URL Server on a VPN
The book in your own Supabase project Supabase locker
A .kitsas file inside Dropbox or Drive Synced folder (desktop: Chrome/Edge)
A public hostname and a login gate Your own VPS; this page does not replace the admin’s deploy

In every setup the book opens in the browser. The default engine is In this browser: posting runs on your device. On the server appears only when a Tilari server is running (not with a Supabase locker).

Two processing modes

Use Tilari as a normal web app (each action is a request to the server) or work locally in the tab and save when you choose. The UI always runs in the browser. When a Tilari Node backend is connected, opening a book asks:

Without a Node backend (one HTML file, this site, a Supabase locker) only In this browser exists. The locker (where the file sits) is not the same as the engine: you can keep a book on the server locker and still process it in the tab.

In this browser (client) On the server
Advantages The book is interpreted only in this tab. Several tabs or people can open books (locker save uses ETag conflicts). Once the file is in the tab, work can continue if the network drops. A Node restart does not wipe the working copy. A heavy book on a weak phone: SQLite moves to the host. Same posting rules as the browser. Reopening can be faster while the process still has a session.
Disadvantages A large book on a weak device can be slow. The whole book is loaded into the browser. Unsaved edits live in this tab until you save. One open book per server process. A second open replaces the first — not multi-user. Every action needs the network. A restart clears the session. The server sees the ledger. Not available with a Supabase locker.

For daily work and a shared locker, keep In this browser. On the server is for one operator on a private host when the book is too heavy for the device.

One HTML file

The same program as a single file (about 1.7 MB). On this site it is tilari.htmlopen it here. You can also save the file and open it offline.

On this URL (https)

The browser treats the page as a secure context: the working copy survives a refresh, Chrome/Edge can save in place, and optional BYO storage works if you connect your Supabase or a Tilari locker on your VPS (CORS must allow this origin). Tilari’s site does not host books: the file is never sent to any server you did not provide. There is no same-origin Node process, so no On the server processing.

A file on disk (USB, email)

  1. Save tilari.html and double-click it.
  2. Choose Valitse uusi tiedosto… and pick a .kitsas.
  3. Save with Tallenna nimellä… — the browser downloads a new file.

On file:// the working copy usually dies on refresh, in-place overwrite fails, and you should not trust encryption (Supabase). Fine for a demo. For real books use the local install or the https copy.

Server and client on this computer

This is the usual setup for one machine: the Tilari program (AppImage, Tilari.exe, Tilari.app, or a local server your admin starts) opens a browser at http://127.0.0.1:8000.

What is the advantage over a single HTML file?

One HTML file Server on this computer
Edits survive a page refresh No Yes (browser working copy)
Save into the file you opened Rarely Yes, on Chrome/Edge desktop
Books in a Tilari locker on this machine No Yes (Avaa omasta säilytyksestä…)
Heavy book: process on the server No Yes, if you pick On the server
Same book from a phone on the same Wi-Fi No Yes, if the server listens on the LAN
Install One file An application pack

How to use it

  1. Start Tilari. A browser tab opens on its own.
  2. Open a book from disk (Valitse uusi tiedosto…) or from the locker (Avaa omasta säilytyksestä…).
  3. On Chrome or Edge desktop, Tallenna writes the same .kitsas if the file is linked. In other browsers use Tallenna nimellä….

Quit desktop Kitsas before opening the same file in Tilari. Kitsas keeps an exclusive lock.

Server and client on a VPN

The same program as on your own computer, running on a machine that is on a VPN (Tailscale, WireGuard, a company VPN). Other VPN devices open that address in a browser, for example http://100.x.x.x:8000. You do not need a public website.

Tilari has no user accounts. Anyone who can reach the address can see the locker books and save to them. VPN membership is the access control. Do not share the address on open Wi-Fi.

For the person who installs it

  1. Install Tilari on a machine that stays on (NAS, home server, office PC).
  2. Join that machine to the same VPN as the people who will use it.
  3. Start the server so it listens on the VPN address (LAN bind, e.g. --lan, prints TILARI_LAN_URL=).
  4. Open that URL on the other devices. Books live in that machine’s locker; save with Tallenna säilytykseen.

If two people edit the same book at once, the second save can be rejected (“the file changed”). Then use Tallenna säilytykseen nimellä… instead of overwriting the other person’s work.

On the server processing keeps one book open for one operator. In an office keep the default In this browser and share through the locker.

Your own VPS

A public hostname and a login gate. The server keeps books in a locker. Use Tilari as a normal web app, or process the book in the browser and save to the locker. Setup is for the admin; this page does not replace that.

Which browsers save the file in place

Header Tallenna tries to write the same path you opened. That works only in some browsers, and only when the page is https:// or localhost (not a lone HTML file).

Browser Overwrite the opened file In practice
Chrome, Edge, Opera, Brave (Windows, macOS, Linux) Yes Valitse uusi tiedosto… links the file. Tallenna updates it. A Dropbox folder works if it is a real directory on disk.
Firefox No The working copy in the browser still survives. On disk, use Tallenna nimellä….
Safari (Mac, iPhone, iPad) No Same as Firefox: download a copy.
Chrome on Android Not reliably Open from Dropbox or Drive with the Android document picker. Save is a copy (Downloads or “Save to”).
iPhone / iPad, other browsers No Share or Tallenna nimellä…. A locker (VPN or Supabase) is often easier.

If the browser cannot write in place, the menu tells you to use Tallenna nimellä…. You can also Yhdistä alkuperäistiedostoon… (link to the original file) when the API exists but the book was opened without write permission.

Supabase as a locker

You can keep books in your own Supabase project. You do not need a Tilari server: open Tilari from a static host (or a local install) and connect the locker in the browser. Posting stays In this browser. On the server is not offered.

One-time setup (Supabase dashboard)

  1. Create a project at supabase.com and open Project Settings → API.
  2. Copy the Project URL and the anon public key. Never paste the service_role key into Tilari — that key is for a backend only.
  3. In Storage, create a private bucket named tilari (not a public CDN).
  4. Storage policies (RLS) on that bucket for the prefix tilari/ (anon role, select / insert / update / delete).
  5. Storage CORS: the Tilari https origin, methods GET, POST, PUT, DELETE, headers authorization, apikey, content-type, x-upsert. A file:// HTML file will not work reliably.

Example RLS policies:

create policy "tilari_locker_select"
  on storage.objects for select to anon
  using (bucket_id = 'tilari' and name like 'tilari/%');
create policy "tilari_locker_insert"
  on storage.objects for insert to anon
  with check (bucket_id = 'tilari' and name like 'tilari/%');
create policy "tilari_locker_update"
  on storage.objects for update to anon
  using (bucket_id = 'tilari' and name like 'tilari/%');
create policy "tilari_locker_delete"
  on storage.objects for delete to anon
  using (bucket_id = 'tilari' and name like 'tilari/%');

Connect in Tilari

  1. Avaa omasta säilytyksestä…Oma Supabase (BYO).
  2. Paste Project URL, anon key, bucket (default tilari), and the salaava avain (encryption secret, at least 8 characters). You can Luo a secret — copy it somewhere else immediately.
  3. Yhdistä. Books appear in the list; save to the locker as usual.

Files are encrypted in the browser before upload. The URL and anon key open the bucket; the secret opens the files. A lost secret means lost books. Settings stay in this tab only; closing the tab drops the connection.

Dropbox folder and Android (Drive / Dropbox)

Desktop: mounted Dropbox or Google Drive

Tilari has no Dropbox or Drive login. Use the folder the desktop client syncs to disk.

  1. Install Dropbox or Google Drive so the book is a real folder on the machine.
  2. Open the book with Chrome or Edge from that folder so Tallenna writes the same file.
  3. The vendor client uploads the new bytes to other devices.

Firefox and Safari download a copy: put it back in the synced folder yourself, or you will fork files. Do not leave desktop Kitsas open on the same path. If two people save at once, the cloud keeps the last write — Tilari’s locker conflict warning does not apply.

Android: open and save from Dropbox or Drive

The phone does not get the same “write this path” link as Chrome on the desktop.

If the same book moves between a phone and a PC all the time, a VPN locker or Supabase is less error-prone than the Downloads folder.