canturan.dev
An agency management tool that brings subscriptions, renewals and profit into one panel
- Sector
- Personal brand
- Country
- Türkiye
- Category
- Custom software
- Services
- Custom software
- Technology
- Next.js 16, React 19, TypeScript, Tailwind CSS 4, TanStack Query, Recharts, Django 5, Django REST Framework, PostgreSQL, Docker, Coolify

01 /
The brief
Money in a web agency comes from many places and goes to many others: monthly maintenance plans, domains and hosting that renew every year, server bills and project payments. Spread across spreadsheets and calendar reminders, it only becomes clear at the end of the month, and by hand, which client is actually profitable, which renewal is due and whether the servers pay for themselves. We built AgencyOS for our own studio: clients, subscriptions, domains, hosting, servers, projects, income and expenses, proposals and pro forma invoices all live in one panel, and upcoming renewals arrive by email every morning. As an internal tool it is not public; the screenshots here come from a local copy populated with fictional clients.
Screens
A closer look
Fresh screenshots from the live site: the full page, inner pages and how it looks on a phone.
Home page


Sections and inner pages




02 /
Approach
Three decisions that shaped the project.
Recurring revenue first
The command centre opens with monthly recurring revenue, its yearly equivalent, net profit and everything that renews in the next seven days. Servers and domains billed yearly are normalised to monthly figures before they enter the totals.
Every expense belongs somewhere
Expenses can be linked to a project, server, domain or subscription, so each server’s cost is shown against the revenue it carries. Amounts in TRY, USD and EUR are converted to one currency at the current rate.
A panel that runs itself after setup
On first launch a setup wizard collects the admin account, company details and mail server. Sessions live in httpOnly cookies and repeated failed logins lock the account for 15 minutes. Scheduled jobs expire lapsed subscriptions and send renewal alerts.
03 /
What we delivered
- Command centre with MRR, net profit and upcoming renewals
- Client page combining subscriptions, projects, domains and hosting
- Server, domain and hosting tracking with per-server profitability
- Income and expense records with six-month charts
- Proposals that convert into invoices once accepted
- PDF pro forma invoice builder
- Email alerts seven days before each renewal
Tech stack
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- TanStack Query
- Recharts
- Django 5
- Django REST Framework
- PostgreSQL
- Docker
- Coolify
Services
The code and the domain belong entirely to our client.
Next project
A—53
MotoProf
A motorcycle workshop panel that ties together work orders, stock, tyre prices and the till
Automotive & fleet · Türkiye
