Skip to content
A—52

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
AgencyOS command centre with fictional demo data

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

Fresh screenshots from the live site: the full page, inner pages and how it looks on a phone.

Home page

canturan.dev — Home page
canturan.dev — Sections and inner pages

Sections and inner pages

canturan.dev — Sections and inner pages
canturan.dev — Sections and inner pages
canturan.dev — Sections and inner pages
canturan.dev — Sections and inner pages

02 /

Approach

Three decisions that shaped the project.

  1. 01

    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.

  2. 02

    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.

  3. 03

    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

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