Fully Managed TaxHacker
as a Service

Deploy TaxHacker as a fully managed service starting at €9/mo. Get automated backups, SSL, updates, support and monitoring included.

TaxHacker is a self-hosted accounting app for freelancers and small teams. It reads receipts, invoices, and statements with a vision model, pulls out merchant, date, amount, and tax, and files them into categories and projects you define. It gives you the convenience of a receipt-scanning service like Expensify with the control of software you host yourself.

✓Free 7-day trial  ✓99.9% Uptime SLA  ✓No credit card  ✓Cancel anytime

✓Free 7-day trial  ✓99.9% Uptime SLA
✓No credit card  ✓Cancel anytime

TaxHacker

TaxHacker

STARTING AT

€9/month
Automated Backups
Monitoring
Automated Updates
Auto SSL

USAGE

Unlimited
Human Support
Custom Domains
Terminal Access
File Manager Access
Deploy in your region — 21 locations worldwide
GermanyFinlandNetherlandsUKSwedenUnited StatesCanadaSingaporeJapanAustraliaBrazilSouth Africa+9 more →
TaxHacker Preview Image

ABOUT THE SOFTWARE

What is TaxHacker

TaxHacker is an open-source accounting tool that uses a vision model to read financial documents. You upload a photo or a PDF, it extracts the fields you care about, and it stores the original file next to the extracted row so the source is never lost.

The project is written in TypeScript on Next.js, stores its data in PostgreSQL through Prisma, and ships as a single container listening on port 7331. Vasily Zubarev, working under the handle vas3k, maintains it and released it under the MIT licence, which places no restriction on running it as a paid hosted service. The README is candid that the project is young and still changing shape.

Extraction is bring-your-own-key. TaxHacker talks to OpenAI, Google Gemini, Mistral, or any endpoint that speaks the OpenAI protocol, including a model you run yourself. PDF handling depends on Ghostscript and GraphicsMagick being present in the image. Uploaded files sit on a local path beside the database volume rather than in object storage, which makes the storage layer the thing that has to be right.

FEATURES

What TaxHacker does

TaxHacker's work happens in three moves: get the document in, get structured fields out of it, and get a filtered export back out at the end of the quarter. Everything below serves one of those three. None of it is a DANIAN feature; it is what the software itself does.

Vision extraction from any document

Upload a photo, a scan, or a PDF and a vision model returns merchant, date, total, tax, and line items. Handwritten and foreign-language receipts are in scope.

Bring your own model key

Point it at OpenAI, Google Gemini, Mistral, or any OpenAI-compatible endpoint, including a local model. You supply the key, so you decide who sees the documents.

Custom fields with their own prompts

Add fields the way you would add spreadsheet columns, and give each one an instruction telling the model how to fill it. The schema follows your bookkeeping, not the app's.

Categories and projects

Group transactions by client, event, or storefront. Categories and projects are promptable too, so the model assigns them on the way in rather than after the fact.

Multi-currency at dated rates

Currency is detected from the document and converted to your base currency at the rate on the transaction date. Around 170 currencies and fourteen crypto assets are covered.

Income, expense, and per-project profit

Both sides of the ledger live in one place, with profit and loss broken out per project, and invoices can be split into their individual line items.

Filtered export with the originals

Filter by date, project, category, amount, or any custom field, then export the rows as CSV with every attached original bundled alongside for your accountant.

Bulk intake and an unsorted queue

Drop a year of documents in at once and work the queue down. CSV import brings existing transactions across, and an invoice generator produces PDFs from saved templates.

WHAT'S ALWAYS INCLUDED

Every app. Fully managed.
Nothing extra to pay for.

Every app on DANIAN ships with the same operational baseline. You do not choose a backup add-on or a monitoring tier. Hosting, patching, backups, SSL, and support are part of the €9, and they apply to TaxHacker the same way they apply to everything else in the catalog.

Automatic updates and patches

Apps run the latest stable version. Security patches applied silently, with rollback if needed.

Daily off-site backups

Multiple daily backups in redundant off-site locations. One-click restore if anything goes wrong.

24/7 uptime monitoring

Continuous monitoring with instant alerting. We respond before you notice.

SSL, firewall, DDoS protection

Auto-renewing SSL, hardened firewall rules, DDoS mitigation on every deployment.

Performance and scaling

We monitor resource usage continuously. When your app needs more headroom, we flag it and upgrade with your explicit approval.

Dedicated engineering support

Real engineers by email and ticket. DNS, SMTP & migration help. All included in €9.

WHY MANAGED

Why teams pick managed TaxHacker

Two things pushed this app onto shortlists. Germany moved to structured business invoices and cut the statutory keeping period for booking documents from ten years to eight, and receipt-scanning services kept charging per seat. Both point at the same answer: hold the documents yourself, in a form you can hand over.

Running TaxHacker is not the same as installing it. The install is a compose file. The job is everything after: keeping the database volume and the upload directory alive through container replacements, taking backups that restore both to the same point in time, reading release notes before rolling forward, and putting a real login in front of a service that was designed for a private network.

The gotcha that catches people is that login. Self-hosted mode signs in whoever reaches the port, and the project documents public exposure as an awkward workaround rather than a supported path. Point that at the open internet with a year of receipts behind it and the exposure is not theoretical. The second gotcha is upgrades: minor releases here have shipped one-way migrations with a written instruction to back up first.

So we set the defaults differently from a vanilla install.

An authenticated front door sits in front of the instance and open registration is switched off, so auto-login is never the only thing between the internet and your ledger.

The upload path and the database share one backup schedule, because a restore that returns rows without their source files is not a restore.

The release is pinned and the notes are read before you are moved forward, since migrations here have gone one way.

Ghostscript and GraphicsMagick are built into the image, so PDF receipts rasterise instead of failing quietly.

The mail-sync listener stays off unless you ask for it. It is the one component that dials arbitrary hosts, and it has needed a fix for exactly that.

REVIEWS

Hear from customers ​like you​​​​​​​

Successful businesses and professionals around the world rely on DANIAN every day

USE CASES

Three teams who run TaxHacker on DANIAN

These are the shapes this app takes in practice: one project per client, one currency question solved at intake, one bulk upload a week. Each describes the configuration decisions that matter rather than the industry the team happens to sit in.

TWO-PERSON DESIGN STUDIO

One project per client, one export per quarter

Receipts used to live in a shared drive and get reconstructed every quarter. Now every document lands in the unsorted queue, a custom field carries the tax rate, and projects map one to one onto clients. The region was chosen to sit in the same country as their tax adviser. Two accounts, one instance, €9.

SOLO CONSULTANT, THREE CURRENCIES

Dated conversion instead of a spreadsheet of rates

Invoices arrive in three currencies and used to be converted at whatever rate was to hand. The base currency is set once, each document converts at the rate on its own date, and the quarterly CSV goes to the bookkeeper with every original attached. A local model handles extraction, so nothing leaves the instance.

SMALL ONLINE SELLER

Supplier invoices in bulk, split by storefront

Two storefronts and a few hundred supplier and fee documents a month. Everything is bulk-uploaded once a week, tagged to a project per storefront, and reviewed from the unsorted queue. Per-project profit and loss replaced the monthly spreadsheet, and the originals stay in the format they arrived in.

COMPARISON

Four ways to run TaxHacker

Price is only half of this comparison. The other half is who holds the documents and who is on the hook when a migration goes sideways. Here is what each of the four routes costs, and what each one asks of you in return.

Path1 user5 users10 usersWhat you also carry
Proprietary SaaS (Expensify Collect)$5/mo$25/mo$50/moPer seat, indefinitely. Documents live in the vendor's account, and the free tier caps how many scans you get each month.
Self-host on a $24/mo production-class VPS$24/mo$24/mo$24/moPatching, backups, one-way migrations, and putting a login in front of an app built for a private network. Model spend is on top.
Home server (NAS-class hardware)~€620 once~€620 once~€620 onceHardware failure is yours to solve, off-site backup is a second purchase, and remote access is a security project of its own.
DANIAN managed TaxHacker€9/mo€9/mo€9/moNothing. Updates, backups, monitoring, certificates, and support from an engineer are the price, and the price does not move with headcount.

At a single seat the proprietary service is cheaper on the sticker, and pretending otherwise would be dishonest. What changes the arithmetic is the second user, the scan cap, and where the originals sit when you need them years later.

BY INDUSTRY

TaxHacker for specific industries

Document-keeping rules differ by where you file and what you sell, and they decide how long the archive has to survive and in what format. These four segments put different demands on the same app, and each one changes a setup decision.

Germany shortened the keeping period for invoices and booking vouchers from ten years to eight, and the file you keep has to be the file you received rather than a summary of it. That is the shape of the problem this app addresses: the original stays on disk, the extracted fields sit beside it, and the two travel together. We size storage for the full keeping period rather than the current year, and the upload path is backed up on the same schedule as the database so a restore returns both. The working pattern is plain. Photograph the receipt, let the model pull merchant, date, gross, and the tax rate into a field you defined, tag it to a project, and leave it until the export. The project's own author put more than two hundred invoices through it for a single tax year on his first pass.


HMRC asks the self-employed to keep records for at least five years after the 31 January submission deadline for the relevant tax year, and six years for VAT records. Income above £50,000 also pulls sole traders into digital record keeping, which turns a shoebox habit into a system requirement. We set the base currency to sterling at setup so conversion happens on the way in rather than at the end of the year. The workflow runs quarter by quarter: capture as you go, review the unsorted queue on a Friday, then export a filtered CSV with the source documents attached and send it on. The five-year floor is the number that drives storage planning here, and it is longer than most people expect.


Event work produces a burst of paperwork rather than a steady trickle, in several currencies, and every line has to stand up against the event it belongs to. Projects are the mechanism: one project per event, profit and loss per project, and every document tagged on the way in. We configure a project per event at setup rather than leaving it to be retrofitted, because retrofitting a thousand documents is the part nobody does. The workflow is a single bulk upload of the post-event pile, then working the unsorted queue down until the project balances. One documented community event generated around a hundred and fifty paper receipts, and those accounted for only about a fifth of total spending.


Structured supplier invoices have to be kept in the electronic format they arrived in. Extracting the numbers into a database row is useful, but it does not discharge the obligation on its own, so the stored original is the thing that matters and the extracted row is the index over it. We keep originals immutable beside the extracted fields, and the base currency is set once so dated conversion happens at intake. The workflow: supplier invoices and marketplace fee statements go in as a batch, each converted at the rate on its own transaction date, then split by storefront using projects. Around a hundred and seventy currencies and fourteen crypto assets are covered by that dated conversion.


FAQ

Frequently asked questions

Three groups of questions, in the order people ask them: how the app behaves and how we configure it, what moving in and moving out looks like, and how the platform underneath is billed and supported. Nothing here is answered with a link to somewhere else.

01

Technical and configuration

It talks to OpenAI, Google Gemini, Mistral, or any endpoint that speaks the OpenAI protocol, which includes runtimes you host yourself. You set the provider and the key in settings, so the choice stays yours rather than ours.
You do, directly to whichever provider you pick. Extraction is a per-document expense sitting outside the €9, and it moves with the model you choose. A cheaper vision model lowers it; a model you run yourself removes it.
Only if you choose a hosted model provider, and then only the document content sent for extraction. Everything else, including the stored originals and the database, stays on your instance in the region you picked.
The app still runs. Uploads, manual entry, categories, projects, and export all work; only automatic extraction sits idle. Adding a key later starts extraction on new documents without disturbing what you already entered.
On a persistent volume mounted into the container, beside the PostgreSQL data. We keep those two on the same backup schedule and restore them to the same point in time, because rows without their source files are not a record.
We pin your release and read the notes before moving you forward. Minor releases here have carried one-way migrations with a written instruction to back up first, so we take a restorable snapshot before every roll-forward.
By default the self-hosted mode signs in whoever reaches the port. We put an authenticated front door in front of your instance and switch open registration off, so auto-login is never the only thing standing between the internet and your ledger.
Yes, once Ghostscript and GraphicsMagick are present. We build both into the image, so a PDF invoice rasterises for the vision model instead of failing quietly. Photos, scans, and PDFs all land in the same queue.
There is a mail-sync listener, and we leave it switched off unless you ask for it. It is the one component that dials arbitrary hosts, and it has needed a fix for exactly that, so it is opt-in and pinned.
Not yet. Uploading the same invoice twice creates two transactions, and there is an open request upstream to change that. Until it lands, the unsorted queue is where you spot repeats before they reach the ledger.

02

Migration and onboarding

21 datacenter locations across six continents. You choose the region at provisioning. Application data sits in the region you choose; pick whichever is closest to your users or matches your data-residency preference.
Yes. Request a region migration from the dashboard and we run the move in the background. The system emails you when the migration completes; total transfer time depends on data volume but typical instances finish in a few hours. There is no extra charge for a region change.
Yes. Full data export is available at any time, in a portable format you can bring to any infrastructure.
Yes. Bulk upload takes a folder of documents at once and drops them into the unsorted queue, where you work through them. Existing transactions come across by CSV import, so the two halves can be loaded separately.
Yes. We take your database dump and your uploads directory, restore both onto the managed instance, and check that a sample of transactions still points at its original file before we hand it over.
Filtered CSV export with the original documents bundled alongside, from inside the app, at any time. On top of that you can ask us for a copy of the database and the uploads directory. Nothing is held hostage by the platform.
Yes. Point a record at the instance and the certificate is issued and renewed for you. If DNS is not your area, tell us who your registrar is and we will send you the exact record to add.
Sooner than it takes you to gather a year of paperwork. We will not print a number here, because provisioning time depends on the region and the day. Ask us and we will tell you the current figure for the location you want.
Yes. The app supports multiple accounts, so a founder and a bookkeeper can share one instance. The €9 does not change with the number of people using it, and open registration stays off so you control who is added.

03

Billing, support, and platform

€9 covers everything we do for that app: hardware in the region you choose, daily off-site backups with one-click restore, automatic security patches and version upgrades, 24/7 monitoring, SSL and firewall, and engineering support on email and the ticket section in the client portal. There are no setup fees or hidden line items. For more info see our Pricing page.
If you decide to continue, we charge €9/app/month from day 8. If you don't, the trial ends and you can export your data. No card is required for the trial, and we never auto-charge you without explicit consent.
No. The €9/month is flat regardless of how many users log into your app. Add 5 users or 50; the price doesn't change.
24/7 email and ticket support, both staffed by engineers who run the systems. We handle DNS configuration, SMTP setup, app integrations, performance tuning, troubleshooting, and migration help. Response time is typically under an hour. There is no tier system — every customer gets the same support.
Yes. Cancel from the dashboard. We don't charge a cancellation fee, we don't lock data, and we will export your data to you on request before deletion. data to you on request before deletion.
Every customer instance is backed up daily to a separate region from the primary. We test restores. You can request a restore at any backup point within the retention window — usually 7 days for daily backups.
Your application data sits in the region you choose at provisioning — 21 datacenter locations across six continents. Account-level data (billing, account email, support ticket history) is processed centrally. Application data region is picked by you, per app.
99.9% uptime SLA on every app, every tenant. Service credits are documented at danian.co/service-level-agreement. The status page is located at status.danian.co.
When your tenant approaches the resource ceiling — the base tier holds 1 vCPU/RAM, 30 GB storage — we notify you. Resource upgrades happen with your explicit consent; we will not upgrade your tenant or charge you without it.
We wait. We don't suspend the app or delete your data on the first failed charge. We email you, you fix the card on file, and we continue.
Invoices can be downloaded from the billing dashboard in PDF the day each charge succeeds. EU VAT is added where applicable and the VAT-reverse-charge regime applies for VAT-registered businesses with a valid number.
150+ open-source apps across automation, team chat, file sync, analytics, AI, password management, email marketing, dev tools, project management, smart home, CMS, and federated social. See the full catalog →
Yes. Every instance comes with a web-based terminal and a file manager in your DANIAN management dashboard. Useful for managing your data and customizations.
Resources scale with your usage. If your app needs more vCPU, RAM, or storage, we add it — and we ask first before any change to your plan. €9 is the floor; resource-heavy workloads may price higher, but you'll always know in advance.
Yes. We have both a Partner program and an Affiliate program available. Anybody can sign up.
No contract. No minimum commitment. Cancel anytime from the dashboard with one click. The 7-day free trial requires no credit card. After the trial converts to paid, you can still cancel at any month without notice or penalty.

DEPLOY IN YOUR REGION

21 datacenter locations on six continents

Pick the region closest to your users.

United States, Germany, Finland, Singapore, Australia, Brazil, Canada, Netherlands, UK, Spain, Italy, France, Sweden, Malaysia, India, Japan, Mexico, Poland, South Korea, Chile, South Africa and more coming soon

Global Reach Map

Try managed TaxHacker for 7 days

No card. Cancel from the dashboard.