<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Murat Komurcu</title>
    <description>The latest articles on DEV Community by Murat Komurcu (@muratkomurcu1).</description>
    <link>https://dev.to/muratkomurcu1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4087290%2Ff44b69ef-728b-47dc-bc85-bb0e3fd67d53.png</url>
      <title>DEV Community: Murat Komurcu</title>
      <link>https://dev.to/muratkomurcu1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muratkomurcu1"/>
    <language>en</language>
    <item>
      <title>We Built RoasNova: An Open-Source AI Advertising Operations Platform</title>
      <dc:creator>Murat Komurcu</dc:creator>
      <pubDate>Thu, 20 Aug 2026 23:26:54 +0000</pubDate>
      <link>https://dev.to/muratkomurcu1/we-built-roasnova-an-open-source-ai-advertising-operations-platform-db9</link>
      <guid>https://dev.to/muratkomurcu1/we-built-roasnova-an-open-source-ai-advertising-operations-platform-db9</guid>
      <description>&lt;p&gt;Advertising teams do not suffer from a lack of dashboards.&lt;/p&gt;

&lt;p&gt;They suffer from fragmented data, unreliable attribution, disconnected customer journeys, and automation systems that can make consequential changes without explaining why.&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;RoasNova&lt;/strong&gt; to address that problem.&lt;/p&gt;

&lt;p&gt;RoasNova is an open-source advertising operations platform that connects campaign performance, customer intent, conversion data, and verified revenue—then turns those signals into explainable recommendations and controlled actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem we experienced
&lt;/h2&gt;

&lt;p&gt;Managing advertising operations usually means switching between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meta Ads Manager&lt;/li&gt;
&lt;li&gt;Google Ads&lt;/li&gt;
&lt;li&gt;TikTok Ads&lt;/li&gt;
&lt;li&gt;Analytics and attribution platforms&lt;/li&gt;
&lt;li&gt;CRM systems&lt;/li&gt;
&lt;li&gt;Spreadsheets&lt;/li&gt;
&lt;li&gt;Social inboxes&lt;/li&gt;
&lt;li&gt;Internal approval processes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each tool contains part of the truth, but none represents the complete decision.&lt;/p&gt;

&lt;p&gt;A campaign may report a strong ROAS while producing low-margin customers. A channel may appear inefficient because conversions were not reconciled correctly. An AI agent may recommend increasing the budget without considering creative fatigue, data quality, attribution confidence, or operational risk.&lt;/p&gt;

&lt;p&gt;We wanted to build a system that evaluates the entire evidence chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  What RoasNova does
&lt;/h2&gt;

&lt;p&gt;RoasNova currently includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-channel advertising account monitoring&lt;/li&gt;
&lt;li&gt;Campaign performance analytics&lt;/li&gt;
&lt;li&gt;Conversion and revenue reconciliation&lt;/li&gt;
&lt;li&gt;Explainable AI recommendations&lt;/li&gt;
&lt;li&gt;Decision evidence and confidence scores&lt;/li&gt;
&lt;li&gt;Revenue CRM and lead tracking&lt;/li&gt;
&lt;li&gt;Social inbox operations&lt;/li&gt;
&lt;li&gt;AI-assisted copy generation&lt;/li&gt;
&lt;li&gt;Versioned campaign plans&lt;/li&gt;
&lt;li&gt;Guarded campaign draft creation&lt;/li&gt;
&lt;li&gt;Human approval workflows&lt;/li&gt;
&lt;li&gt;Role-based access and operational limits&lt;/li&gt;
&lt;li&gt;Data-health monitoring&lt;/li&gt;
&lt;li&gt;Immutable audit trails&lt;/li&gt;
&lt;li&gt;Scheduled synchronization and automation jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system is designed to move from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;advertising data → customer intent → verified revenue → evidenced decision → controlled action&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why “guarded” AI matters
&lt;/h2&gt;

&lt;p&gt;We do not believe an AI agent should be given unrestricted access to live advertising accounts.&lt;/p&gt;

&lt;p&gt;A recommendation is only useful when the operator can answer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why was this action recommended?&lt;/li&gt;
&lt;li&gt;Which data and revenue signals support it?&lt;/li&gt;
&lt;li&gt;How reliable is the underlying data?&lt;/li&gt;
&lt;li&gt;What is the potential downside?&lt;/li&gt;
&lt;li&gt;Does the action require human approval?&lt;/li&gt;
&lt;li&gt;Can every step be audited afterward?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;RoasNova therefore treats AI as a decision-support and controlled-execution layer.&lt;/p&gt;

&lt;p&gt;Actions can be constrained through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confidence thresholds&lt;/li&gt;
&lt;li&gt;Maximum budget changes&lt;/li&gt;
&lt;li&gt;Cooldown periods&lt;/li&gt;
&lt;li&gt;Daily execution limits&lt;/li&gt;
&lt;li&gt;User roles and permissions&lt;/li&gt;
&lt;li&gt;Explicit approval requirements&lt;/li&gt;
&lt;li&gt;Provider-write restrictions&lt;/li&gt;
&lt;li&gt;Immutable audit records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The development environment uses sandbox data. Optional provider writes are disabled by default and limited to creating paused Meta campaign drafts after explicit approval. RoasNova cannot automatically activate ads or modify live budgets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical architecture
&lt;/h2&gt;

&lt;p&gt;RoasNova is built as a TypeScript monorepo using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 16 and React 19&lt;/strong&gt; for the web application&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fastify 5 and Zod&lt;/strong&gt; for the API and runtime contracts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PostgreSQL 18 and Prisma 7&lt;/strong&gt; for tenant-scoped persistence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redis 8 and BullMQ 6&lt;/strong&gt; for synchronization and background jobs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3-compatible storage&lt;/strong&gt; for private creative assets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turborepo, Vitest, ESLint, and Prettier&lt;/strong&gt; for development and quality controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository also contains connector foundations for Meta, Google Ads, and TikTok, along with billing, notifications, campaign planning, and deployment infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we made it open source
&lt;/h2&gt;

&lt;p&gt;Advertising infrastructure handles highly sensitive business data and can influence significant financial decisions.&lt;/p&gt;

&lt;p&gt;We believe operators should be able to inspect how recommendations are generated, understand the safeguards around execution, and verify how their data is handled.&lt;/p&gt;

&lt;p&gt;Open source also allows developers, agencies, and advertising teams to extend RoasNova for their own workflows instead of being locked into another opaque platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current status
&lt;/h2&gt;

&lt;p&gt;RoasNova is currently in the pre-launch stage.&lt;/p&gt;

&lt;p&gt;The core platform and interactive product experience have been built, and we are preparing for initial pilot users and commercial validation.&lt;/p&gt;

&lt;p&gt;We are currently looking for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers interested in AI agents, advertising infrastructure, and data systems&lt;/li&gt;
&lt;li&gt;E-commerce brands willing to participate in pilot testing&lt;/li&gt;
&lt;li&gt;Agencies managing multiple advertising accounts&lt;/li&gt;
&lt;li&gt;Technical contributors and early feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;The project is available under the MIT License:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/MuratKomurcu1/roasnova" rel="noopener noreferrer"&gt;https://github.com/MuratKomurcu1/roasnova&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you find the project interesting, you can explore the architecture, open an issue, contribute, or give the repository a star.&lt;/p&gt;

&lt;p&gt;We would especially like to hear how you currently connect advertising performance to verified revenue—and which parts of your advertising workflow still depend on spreadsheets and manual decisions.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nextjs</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
