Skip to content
Muhammet Şafak
tr
Cover — a Parantaj dashboard listing Personal Check, Business LLC and Joint Savings accounts with transactions tagged Business or Personal; a phone and tablet show the same list
Automation & data pipelines Became a product

Personal and business finance on one data model

A finance core that keeps multi-account income and expense tracking in a single model; it became Parantaj, running on web, iOS and Android.

What it does today

One account/transaction model carries multi-account management, budgeting, goals and reporting on a single core; the web, iOS and Android clients are all live. Anyone who wants personal and business finances tracked in one place can use it.

Started
March 2024 — October 2024
Left Labs

Form

Open source Web app Mobile app

Technologies

PHP Laravel Go PostgreSQL Redis RabbitMQ React Native

This one became a product:

Parantaj

A bank account, a credit card and petty cash — all three are the same person’s money, and each is tracked in a different tool. Splitting personal from business into two products does not fix that scatter, it doubles it.

The same money, three separate tools

What was tried: collecting personal and business use in a single account/transaction model without splitting the two into separate products, with recurring and scheduled transactions on top.

One core, three clients

The model held: multi-account management, budget planning, goals and reporting all ran on the same core. As load grew, event-driven parts (Redis, RabbitMQ) came in; on the client side, iOS and Android were added alongside the web, with React Native.

Not splitting personal from business

Making personal and business finance two separate products is the customary path in this space, and it has exactly one justification: the business side needs teams, roles and permissions, and the personal side does not.

The price of that split is paid in the data model. If the same person’s own account and their company’s account live in two different products, the cash flow never appears together on any screen — even though the person carrying the money is the same. Two products bring two schemas, two reporting layers and the same transaction entered twice.

The path chosen was a single account/transaction model, with the business difference living in one place only: role-based permissions. Adding a team member to an account does not change the model, it puts a permission layer over that account. In exchange, business-specific flows (accounting integrations and the like) had to sit on top rather than in the core — that is the cost that was accepted.

Recurring transactions were not bolted on

The second decision is about timing. Rent, subscriptions, salaries, instalments — most of both a personal budget and a company’s cash flow is made of regularly repeating transactions.

Putting that on top as a “reminder” feature was the easy road: the user enters the transaction by hand and the system nudges them when the date comes. In that design the future never shows up in a report — the budget only knows transactions that have already happened, while the question itself is about what is coming.

So recurring and scheduled transactions are part of the core: the transaction model itself carries the repetition rule, and reporting can read what is planned alongside what has happened.

That the event-driven parts came in only as load grew was deliberate: a queue added early brings maintenance cost without a problem to solve.

The road to the SaaS

The core became a SaaS product; subscriptions, mobile apps and business features live on the product side. Details in the portfolio.

Tags: #finance#saas#mobile
Share:
Expertise: PHP Developer

More Records

All records

A swipe-based true/false trivia game; the real subject is not the game but making a client-computed score verifiable through a signature.

What it does today

The swipe-based true/false quiz runs end to end in its core loop as a mobile app; the score is produced on the client but verified server-side with a server_nonce and an HMAC signature. swipenor.com is the app's landing page, not the game itself.

Mobile app Laravel PHP PostgreSQL +6 more
July 2026 — Ongoing

A Reddit-like community platform where every vehicle make and model has its own club, holding ICE and EV under one roof; web and mobile run in parallel.

What it does today

A community platform where every car make and model has its own club; identity, content, notifications and moderation all run on a single-schema API, with the web and mobile clients sharing that one schema. Anyone looking for a community specific to their car's model can join today.

Web app Mobile app Laravel PHP PostgreSQL +6 more
July 2026 — Ongoing

A free, publicly open, text-first learning platform that holds textbook theory and problems actually met in the industry inside a single lesson flow.

What it does today

Live as a free learning platform with no signup wall: the field–curriculum–course–unit–lesson hierarchy, full-text search, progress tracking and verifiable certificates all work. Anyone who wants to read the computer-science curriculum can use it today.

Web app Laravel PHP Livewire +6 more
August 2026 — Ongoing

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind