BuildWithMatija
Back to Builds
ProductActivePrivate

Arheko

Turn invoices and receipts into classified, extracted, reviewable records — not another shared inbox.

  • Next.js
  • React
  • TypeScript
  • Payload CMS
  • PostgreSQL
  • Neon
  • Vercel
  • Brevo
  • RunPod
  • GLM-OCR
  • OpenAI-compatible LLM API
  • Backblaze B2
  • PWA
Visit website
Problem
Accounting teams receive documents through email, scans, photos, and client uploads, then manually sort, read, and re-key data into their systems. Spreadsheet trackers and shared folders break once volume grows, document types multiply, and each file needs OCR, cost-object assignment, and structured extraction before it can be filed.
Thesis
The bet is that document processing should be a staged pipeline with inspectable handoffs: ingest from PWA upload or inbound email, dispatch OCR, classify document type and cost object, extract structured fields with configurable AI prompts, file results, and surface exceptions in a review queue. Payload CMS owns tenants, metadata, and audit events; a job queue runs the pipeline asynchronously.
Validation
The codebase documents a Next.js app on Vercel, Payload CMS backend, multi-tenant model, document pipeline stages, Brevo inbound email, RunPod GLM-OCR, and OpenAI-compatible LLM extraction. arheko.eu is referenced as a live domain in integration documentation. There is no documented public user count, customer revenue, or open demo link in the build notes reviewed for this page.
Proof points
  • Product domain documented at https://www.arheko.eu
  • Architecture covers PWA upload, inbound email via Brevo, and desktop-style dropzone intake
  • Payload CMS collections for tenants, documents, document types, cost objects, pipeline runs, review tasks, and audit events
  • Pipeline stages documented: ingest, OCR dispatch/polling, classification, structured extraction, filing, review queue
  • External services: RunPod GLM-OCR, OpenAI-compatible LLM API, Postgres on Neon, B2 blob storage
  • No public customer count, revenue proof, or open demo documented in available notes
Audience
  • Accounting firms handling high-volume client document intake
  • Bookkeepers replacing email-and-folder workflows with structured processing
  • Teams that need OCR, classification, extraction, and human review in one system

Executive summary

Arheko is a document intake and processing platform aimed at accounting workflows. Clients and staff can submit documents through a PWA upload surface, a desktop-style dropzone, or inbound email routed through Brevo. Behind that intake layer, a pipeline runs OCR, document-type classification, cost-object assignment, structured field extraction, filing, and human review when automation is uncertain.

The system is built as a Next.js application on Vercel with Payload CMS as the control plane for auth, tenants, document metadata, AI prompt overrides, pipeline runs, review tasks, audit events, and job queue state.

The problem

Accounting document intake rarely starts in one place. Files arrive by email, mobile photo, scan, or client upload. Someone has to open each file, identify what it is, assign it to the right cost object or client context, extract the fields their system needs, and file it — often while chasing missing attachments in threads and shared drives.

That manual loop does not scale. It also hides errors until month-end, when misclassified documents surface as reconciliation work.

The thesis

The bet is pipeline transparency over a single black-box upload.

Each document moves through named stages — ingest, OCR, classification, extraction, filing, review — with Payload tracking metadata, pipeline runs, and audit events along the way. OCR runs on RunPod with GLM-OCR; classification and extraction use an OpenAI-compatible LLM API with per-tenant prompt overrides stored in Payload. Binary files land in B2-compatible object storage; Postgres on Neon holds structured records.

Separating intake (PWA, dropzone, inbound email) from processing (async job queue) lets operators inspect intermediate state and retry individual stages without re-uploading the source file.

What I built

Intake surfaces

  • PWA upload flow for mobile and browser submission
  • Desktop-style dropzone for batch uploads with optional context notes
  • Inbound email processing through Brevo

Next.js application (Vercel)

  • Upload API
  • Dashboard and browse views
  • Document detail view
  • Settings and admin screens
  • Cron endpoints for scheduled pipeline work

Payload CMS backend

  • Auth and multi-tenant model
  • Document metadata, document types, and cost objects
  • AI prompt overrides per processing step
  • Pipeline run records, review tasks, audit events, and job queue

Processing pipeline

  • Ingest and OCR dispatch with polling
  • Cost-object and document-type classification
  • Structured field extraction
  • Filing and review queue for exceptions

External integrations

  • RunPod for GLM-OCR
  • OpenAI-compatible LLM API for classification and extraction
  • Brevo for inbound email and SMTP
  • Postgres on Neon for application data
  • Backblaze B2 or compatible blob storage for file objects

Architecture

text
Intake (PWA / dropzone / inbound email via Brevo)
  → Next.js on Vercel
  → Payload CMS (tenants, documents, prompts, audit)
  → Job queue
  → Pipeline workers
        → RunPod GLM-OCR
        → LLM classification + extraction
        → B2 object storage
        → Review queue + filing
  → Postgres (Neon)

Current status

Active private product. Core architecture and pipeline stages are documented and implemented in the codebase. arheko.eu is the product domain referenced in integration setup. This page reflects architecture notes reviewed for the build portfolio — not a public launch announcement. Customer counts, revenue, and demo access are not documented here.

Related services

  • Payload CMS websites
  • AI systems & automation
  • Internal tools

Working through something similar?

If your company has a workflow, content system, or internal process that needs to become real software, this is the kind of work I can help with.

Get in touch

Related builds

You might also find these useful

ProductShippedPrivate beta

Farmica

Order operations for direct-to-consumer farms — a spletna naročilnica that collects scattered channel orders into one weekly workflow.

  • Next.js
  • React
  • TypeScript
  • next-intl
  • Tailwind CSS
  • Vercel
  • Brevo
  • Google Analytics 4
View buildVisit
ProductShippedDemo available

Izložbica

Izložbica is a multi-tenant storefront and backoffice platform for creators who sell physical products through small catalogues, direct orders, pickup, delivery, and manual payment workflows. It gives sellers a simple public izložbica plus a private Pisarna for products, orders, stock, payments, and customer handling.

  • Next.js
  • React
  • TypeScript
  • Payload CMS
  • PostgreSQL
  • next-intl
  • TanStack Form
  • Zod
  • Radix UI
  • Stripe
  • Brevo
  • S3-compatible storage
  • Playwright
  • Vitest
  • pnpm
View buildLive demo
ToolActiveOpen source

DropImg

A self-hosted, Docker-first image hosting tool — drag, drop, or paste to get instant public URLs, with built-in multi-user support, S3-compatible storage, and optional background removal.

  • React 19
  • Vite
  • Hono
  • Node.js
  • TypeScript
  • Tailwind CSS 4
  • SQLite
  • Drizzle ORM
  • Garage S3
  • Docker
  • Better Auth
  • Cloudflare
View buildGitHub
Build with Matija logo

Build with Matija

Modern websites, content systems, and AI workflows built for long-term growth.

Services

  • Headless CMS Websites
  • Next.js & Headless CMS Advisory
  • AI Systems & Automation
  • Website & Content Audit

Resources

  • Case Studies
  • How I Work
  • Blog
  • Topics
  • CMS Hub
  • E-commerce Hub
  • B2B Website Strategy
  • Dashboard

Headless CMS

  • Payload CMS Developer
  • CMS Migration
  • Multi-Tenant CMS
  • Payload vs Sanity
  • Payload vs WordPress
  • Payload vs Contentful

Get in Touch

Ready to modernize your stack? Let's talk about what you're building.

Book a discovery callContact me →
© 2026Build with Matija•All rights reserved•Privacy Policy•Terms of Service
BuildWithMatija
Get In Touch