Skip to content
Muslu Yüksektepe

Makdos AI Agency OS

An industry-independent Agency OS that runs content production, approvals and client communication for agencies in one AI-driven panel.

Makdos AI is an industry-independent platform we are building as a team so that agencies and businesses serving several clients can manage their AI-driven operations in a single panel. Our own description for it is an "Agency OS", an operating system for agencies. The user does not jump between individual AI tools; they start a job, and the system splits that job across agents and tools and carries it out. It is a team project with several developers, and I am one of them.

Purpose

An agency's daily work has many moving parts. Social media content is planned for clients, copy is written, images and videos are prepared, all of it is approved first inside the agency and then by the client, and finally it is published. At the same time, messages from customers are answered and appointments and leads are tracked. Using a separate tool for each of these tasks wastes time and makes it harder to keep a brand's voice and visual language consistent.

We designed Makdos AI to bring that scattered work together in one place. The platform's core principle is a job-first approach. Every piece of output belongs to a job, every job moves through defined stages, and the system records who did each step, with which version and at what cost.

How it works

Five core concepts form the backbone of the system. A client represents the workspace of one brand within the agency. A job is a work order that is queued, runs, goes to review, is approved, is published and is reported on. An output is a versioned piece of text, image, video, audio or report produced by a job. An approval is the record of who approved which version, for which channel and when. A cost record shows how many tokens each model used at every step and what that cost.

Content goes through a two-stage approval. First the agency decides whether the content fits the brand and is ready to show to the client. Then it is sent to the client for approval, and the client has the final say. Revisions can be requested at either stage. Publishing is tied to the approved version of the content, so content that was changed afterwards cannot go out on an old approval.

Brand memory sits at the centre of the platform. For each client it holds the brand's voice, colours, fonts, logos, sample posts and visual style. Client documents are uploaded to a knowledge base, and when content is produced the relevant sections are selected with PostgreSQL full-text search and added to the context.

Key features

  • The content calendar prepares a monthly posting plan based on the client's brand, sources and special days, and it can produce the items automatically.
  • Copy is written from sources. Facts that are not in the sources are not made up; when information is missing, the item stays in a "Waiting for information" state and the user is asked.
  • AI Studio offers a free-form workshop for outputs such as images, videos and short films.
  • A brand's SVG templates can be imported. The AI does not draw the design from scratch; it fills in the fields inside the template, while headlines and copy are rendered on the server with real fonts.
  • The panel includes a Canvas editor where users can freely edit a design through its layers, fonts and colours.
  • Carousel posts are produced as a single piece of content made up of cover, inner and closing pages.
  • Every generated image goes through quality checks for meaning, layout and output and receives a design score; when the score is low, the system tries targeted fixes.
  • A unified inbox brings together messages from different channels. Each conversation can be set to fully automatic, semi-automatic or manual reply mode, and an operator can take over a conversation at any time.
  • Automatic replies are deliberately kept narrow. The AI only answers greetings and thank-you messages on its own; any message about technical matters, prices, appointments or complaints is left to a human.
  • The panel also has sections for appointments, contacts, lead lists, Google advertising and analytics tools, live support and reporting.

Security

The platform is multi-tenant. Each agency's data is isolated from the others, and that isolation has been audited separately. No agency or client information is kept in configuration files; all of it lives in the database, and sensitive fields are encrypted. API keys for AI providers are kept in an encrypted vault. Access is limited by surface permissions defined per user, and two-factor authentication is supported. Business records are never permanently deleted; they are deactivated and can be restored when needed.

AI usage is recorded too. Every call to a real provider is written as a single line in a shared usage ledger. A call whose cost is unknown is not recorded as zero. A budget limit can be applied to image and video generation jobs.

Technical stack

The project is developed in a single repository as four platforms: the marketing site, the main panel, the admin panel and the mobile apps. All backends are written in Go with the Fiber framework. The database is PostgreSQL and the cache is Valkey. The web interfaces are built with Vite, React and TypeScript using Tailwind CSS, and server data is managed with TanStack Query. The Canvas editor is a separate Vite application written with React 19 and Konva. On mobile, Android uses Kotlin and Jetpack Compose, and iOS uses Swift and SwiftUI.

The final rendering of images happens in a deterministic rendering engine we wrote in Go. The same layout calculations are verified with shared test vectors both in the browser editor and on the server, so the design seen in the editor and the image the server produces come out identical. Progress information between the panel and the server is pushed in real time over WebSocket.

The platform can work with several AI providers, and the text model to use is decided per task. Docker is not used on the servers; every service runs as a systemd unit. Source code is never sent to the servers; only compiled Go binaries and the build output of the interfaces are deployed. Every build gets a unique version number made of the date and time.

Use cases

  • Digital agencies that manage social media content for several brands.
  • Content and communication operations of businesses with many clients or branches, such as clinics, hotels, e-commerce stores or corporate companies.
  • Producing on-brand images from templates quickly and consistently.
  • Collecting customer messages in a single inbox and answering them with AI support within safe limits.
  • Tracking AI spending by job, client and model.

Status

The platform's content calendar, brand memory, template-based image generation and Canvas editor are live and in use. Development continues on the other modules.

Category
AI tools
Year
2026

Technologies

  • Go
  • Fiber
  • React
  • PostgreSQL
  • LLM
  • Multitenancy

Back to all projects