top of page

AI Agents and the End of Seat-Based SaaS

Updated: Apr 8

Cover graphic for Startuprad.io’s ‘This Month in DACH Startups – Summer Wrap-Up 2025’ featuring illustrated portraits of the podcast hosts, highlighting startup news from Germany, Austria, and Switzerland


Executive Summary

This article is part of our coverage of Startuprad.io Knowledge Graph: The DACH Startup Ecosystem.

AI agents do not merely make software teams faster. They undermine the seat-based economic logic that defined SaaS for two decades and force software companies to defend value through outcomes, infrastructure, data, and execution discipline.


  • AI agents weaken seat-based SaaS because software value is shifting from licensed users to completed outcomes.

  • Enterprise systems of record may persist, but their interface advantage is now under attack.

  • Europe has a narrow industrial AI catch-up window, but only if companies move before the opportunity closes.


Key Takeaways

  • AI agents weaken net revenue retention assumptions tied to seat expansion.

  • SAP-like systems may survive while agentic orchestration replaces direct interface use.

  • Outcome pricing is a more durable software contract model than seat pricing.

  • European industrial firms can use AI to compress historic software disadvantages.

  • Adaptability becomes a core competitive variable in software markets shaped by AI.


Atomic Answer

Answer Hub


Why is seat-based SaaS under pressure?

Because AI agents can perform work previously tied to multiple user seats, which makes per-seat pricing less aligned with the buyer’s desired result.


Will enterprise software disappear?

Not immediately. Systems of record such as SAP may persist, but how users interact with them is already changing through agents.


What replaces legacy SaaS pricing?

The emerging logic is per workflow or per outcome, where the buyer pays for completed value rather than licensed human users.


Why does infrastructure matter more now?

Because application-layer features are easier to replicate when software development becomes cheaper and faster under AI.


Can Europe win in AI software?

Yes, especially in industrial, compliance, sovereignty, and infrastructure categories, but fragmented markets and weak IPO pathways remain structural constraints.


What proves real AI adoption?

Observed usage, inference spend, engineering process quality, and whether support or complaint rates actually improve after deployment.


Why AI Agents Break the Logic of Seat-Based SaaS


Answer

Seat-based pricing assumes humans are the unit of value creation. AI agents weaken that assumption.


Explanation

The episode’s core insight is that software economics change when agents do the work once associated with seats. A company buying software no longer wants five seats because it has five employees. It wants the task completed. That moves pricing away from headcount and toward outcomes. Stephan explicitly connects this shift to pressure on net revenue retention, which has long been a central SaaS KPI.


Expert Context

This matters because the old SaaS growth model relied on expansion through user count, seat count, and cross-functional standardization. Agentic workflows weaken all three assumptions.


Why Systems of Record May Survive While Interfaces Die


Answer

Enterprise record systems persist longer than the interfaces users rely on today.


Explanation

The episode does not predict the disappearance of large enterprise platforms in the short term. Instead, it argues that the interaction layer is what changes first. Users may increasingly work through agents, while systems like SAP remain the underlying source of record. That distinction matters because it shifts competitive pressure from replacement risk to interface disintermediation risk.


Expert Context

That makes “stickiness” less secure than many incumbents assume. A system can remain installed while losing strategic control.


Where Software Defensibility Moves Next


Answer

Defensibility shifts toward infrastructure, regulated environments, data, IP, and network effects.


Explanation

If software development becomes cheaper, then pure feature velocity is less defensible. The episode repeatedly points toward harder categories: infrastructure software, regulation-heavy environments, secure systems, and workflows where errors remain expensive. These are the domains where buyers still prefer external software rather than weekend-built substitutes.  


Expert Context

This is especially relevant for investors and operators who still evaluate software through the lens of surface-level differentiation rather than durable category control.


Why Europe Has an AI Opportunity and an AI Risk


Answer

AI compresses Europe’s historical software disadvantage, but only for firms that move quickly.


Explanation

The episode is unusually clear that Europe’s issue is not purely talent. It is the combination of slower software execution, fragmented go-to-market conditions, and weaker capital-market exits. AI creates a temporary leveling effect by reducing the cost of high-quality software creation. That can help industrial and Mittelstand firms close prior gaps. But hesitation can turn the same shift into a structural loss.  


Expert Context

This matters in DACH because industrial incumbency without software excellence is no longer a stable strategic position.


What Real AI Adoption Looks Like


Answer

Real adoption is visible in spend, workflow redesign, and quality outcomes, not in executive language.


Explanation

The episode offers concrete operational tests. Stephan points to engineering inference spend, use of coding agents, and observable downstream outcomes such as complaint rates. A company that claims AI transformation but cannot show changed engineering behavior is likely late. A company that ships faster while increasing customer breakage is not winning either.


Expert Context

The distinction between AI theater and AI operating leverage will become more important than AI awareness.


Inline Micro-Definitions


AI agents: Systems that execute multi-step work instead of only generating responses.


Systems of record: Core enterprise platforms that store authoritative business data.


Inference: The runtime compute process that generates model outputs.


Outcome-based pricing: Software pricing tied to completed work or measurable results.


Net revenue retention: A SaaS metric tracking revenue expansion or contraction from existing customers.

Operator Heuristics


  1. Rebuild pricing around outcomes.

  2. Assume your interface layer is contestable.

  3. Audit whether AI improves quality, not just speed.

  4. Measure engineering behavior, not executive enthusiasm.

  5. Defend categories with data, regulation, or integration depth.

  6. Treat Europe’s software window as temporary.

  7. Keep final high-stakes decisions human-led.


WHAT WE’RE NOT COVERING


  • Consumer AI companionship: outside the institutional software lens.

  • General AGI speculation: too broad and not decision-relevant for this article.

  • Macro labor displacement forecasts: adjacent but not necessary to explain SaaS repricing.

  • Full robotics analysis: relevant later, but not needed for the software thesis here.


Relationship Map

  • Jörn "Joe" Menninger → Host of → Startuprad.io

Automated Transcript

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title> Auphonic Login </title> <meta name="keywords" content="audio post production, signal processing, machine learning, deep learning, ai, podcast, audiobooks, broadcast"/> <meta name="description" content="The automatic audio post production webservice."/> <meta name="author" content="https://auphonic.com/about_us" /> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes"/> <link rel="apple-touch-icon" href="/static/images/app-logo-64px.a7c98fd3c145.png" /> <link rel="apple-touch-icon-precomposed" href="/static/images/app-logo-64px.a7c98fd3c145.png"/> <meta name="theme-color" content="#1f2937"/> <meta name="mobile-web-app-capable" content="yes"/> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/> <link rel="manifest" href="/static/manifest.7a8cf0b5b4b0.json"/> <link rel="me" href="https://mastodon.social/@auphonic" /> <meta name="referrer" content="strict-origin-when-cross-origin" /> <!--[if IE 9]> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <link rel="shortcut icon" href="/static/images/favicon.ee980479d939.ico" /> <link rel="stylesheet" href="/static/CACHE/css/output.8308afd8e097.css" type="text/css"> <style> [x-cloak] { display: none; } </style> <script src="/static/js/jquery-1.7.1.min.ddb84c158728.js"></script> <script defer src="/static/js/alpinejs.persist-3.13.3.min.3c19caa5a896.js"></script> <script defer src="/static/js/alpinejs-anchor-3.14.8.min.4199af5476ee.js" ></script> <script defer src="/static/js/alpinejs-focus-3.14.9.min.abb807cc6d9f.js"></script> <script defer src="/static/js/alpinejs-3.14.9.min.7f47218dc7a8.js"></script> <script src="/static/js/htmx-1.9.10.min.7e9c374d75c2.js"></script> <script src="/static/js/common-utils.48076b377843.js"></script> <!--[if lt IE 9]> <script src="https://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js">IE7_PNG_SUFFIX=".png";</script> </head> <body class="min-h-screen flex flex-col" style="overflow-y: scroll;" hx-headers='{"X-CSRFToken": "mPCY1q3oGfhVbOwqKbBvBG1r6w2puUPgjQnmgx3G0J5GAeEgymLXY1WQ1ExUdZMf"}' hx-headers='{"X-CSRFToken": "mPCY1q3oGfhVbOwqKbBvBG1r6w2puUPgjQnmgx3G0J5GAeEgymLXY1WQ1ExUdZMf"}'> <div id="main-header-wrapper"> <div id="main-header"> <div id="navbar_wrapper" class="h-12 bg-gray-800"> <nav id="navbar_dark" class="bg-gray-800/90 fixed top-0 left-0 right-0 z-[900] font-sans"> <div class="w-full relative z-50"> <div class="mx-auto max-w-7xl px-2">

<div class="flex h-12 justify-between gap-2"> <div class="flex justify-between"> <div class="flex items-center lg:hidden "> <button id="navigation__mobile-menu-btn" type="button" class="inline-flex items-center justify-center rounded-md p-2 text-gray-400 hover:bg-gray-600 hover:text-white" aria-controls="mobile-menu" aria-expanded="false"> <span class="sr-only">Open main menu</span> <svg id="navigation__mobile-menu-btn--hamburger-svg" class="block h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" /> </svg> <svg id="navigation__mobile-menu-btn--closingX-svg" class="hidden h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> </svg> </button> </div> <div class="flex flex-shrink-0 items-center ml-4"> <a href="/landing" class="hover:bg-gray-600 focus:bg-gray-700 focus:text-white hover:text-white p-2 rounded-md hidden lg:block "> <svg class="h-5 w-auto" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="auphonic-signet-block_1_" x="0px" y="0px" width="299.582" height="149.797" viewBox="0 0 299.582 149.797" enable-background="new 0 0 327 327" inkscape:version="0.48.4 r9939" sodipodi:docname="logowhite.svg"> <metadata id="metadata9"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <defs id="defs7" /> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1463" inkscape:window-height="913" id="namedview5" showgrid="false"

inkscape:zoom="3.1439346" inkscape:cx="99.326965" inkscape:cy="64.292884" inkscape:window-x="0" inkscape:window-y="24" inkscape:window-maximized="0" inkscape:current-layer="auphonic-signet-block_1_" /> <path inkscape:connector-curvature="0" d="M 39.845,149.797 H 0 c 0,-0.001 0,-0.004 0,-0.006 C 0,67.064 67.065,0 149.788,0 c 82.729,0 149.794,67.063 149.794,149.791 0,0.002 0,0.005 0,0.006 h -39.844 c 0.006,-0.435 0.017,-0.869 0.017,-1.306 0,-60.731 -49.234,-109.963 -109.967,-109.963 -60.727,0 -109.959,49.232 -109.959,109.963 -10e-4,0.437 0.011,0.871 0.016,1.306 z m 189.059,0 c 0.019,-0.705 0.053,-1.407 0.053,-2.117 0,-43.723 -35.444,-79.167 -79.167,-79.167 -43.722,0 -79.166,35.445 -79.166,79.167 0,0.71 0.035,1.412 0.054,2.117 h 39.67 c -0.085,-1.047 -0.14,-2.103 -0.14,-3.172 0,-21.861 17.721,-39.584 39.582,-39.584 21.862,0 39.583,17.723 39.583,39.584 0,1.069 -0.055,2.125 -0.139,3.172 h 39.67 z" id="auphonic-signet" style="fill:#ffffff;fill-opacity:1" /> </svg> </a> </div> <div class="hidden lg:ml-6 lg:flex lg:items-center lg:space-x-4 "> <div class="group relative"> <a href="/features" onclick="return handleDropdownClick(event)" class="navigation__menu-item word whitespace-nowrap flex flex-row flex-nowrap space-x-2 items-center no-underline text-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium cursor-pointer" >Features <svg class="text-gray-300 ml-2 w-4 h-4"> <use xlink:href="/static/images/icons/misc/chevron-down.e42e704a5b99.svg#icon"></use> </svg> </a> <div class="nav-dropdown-content hidden group-hover:flex group-focus-within:flex absolute h-auto"> <div class="top-0 py-3"> <div class="flex-col w-80 rounded-md bg-gray-800 shadow-lg shadow-gray-900 ring-1 ring-black ring-opacity-5 focus:outline-none"> <a href="/features#denoise" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md">

<svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/noise_silence_white.svg#icon"></use> </svg> <span>Noise &amp; Reverb Reduction</span> </a> <a href="/features#leveler" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/intelligent_leveller_sound_bars_white.svg#icon"></use> </svg> <span>Intelligent Leveler</span> </a> <a href="/features#filtering" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/autoeq.svg#icon"></use> </svg> <span>Filtering, AutoEQ &amp; BWE</span> </a> <a href="/features#automatic-cutting" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/silence_cutting.svg#icon"></use> </svg> <span>Cut Filler Words, Coughs and Silence</span> </a> <a href="/features#multitrack" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/multitrack_dialogue_white.svg#icon"></use> </svg> <span>Multitrack Algorithms</span> </a> <a href="/features#loudnorm" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md">

<svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/loudness_normalization_loud_speaker_white.svg#icon"></use> </svg> <span>Loudness Specifications</span> </a> <a href="/features#speechrec" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/transctiption_speech_bubble_white.svg#icon"></use> </svg> <span>Speech2Text &amp; Automatic Shownotes</span> </a> <a href="/features#video-audiogram" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/video_camera.svg#icon"></use> </svg> <span>Video Support, Metadata &amp; Chapters</span> </a> </div> </div> </div> </div> <div class="group relative"> <a href="/use-cases" onclick="return handleDropdownClick(event)" class="navigation__menu-item word whitespace-nowrap flex flex-row flex-nowrap space-x-2 items-center no-underline text-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium cursor-pointer" >Use Cases <svg class="text-gray-300 ml-2 w-4 h-4"> <use xlink:href="/static/images/icons/misc/chevron-down.e42e704a5b99.svg#icon"></use> </svg> </a> <div class="nav-dropdown-content hidden group-hover:flex group-focus-within:flex absolute h-auto"> <div class="top-0 py-3"> <div class="flex-col w-72 rounded-md bg-gray-800 shadow-lg shadow-gray-900 ring-1 ring-black ring-opacity-5 focus:outline-none"> <a href="/use-cases#podcasting" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md">

<svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/microphone.svg#icon"></use> </svg> <span>Podcasting</span> </a> <a href="/use-cases#education" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/education_hat.svg#icon"></use> </svg> <span>Educational Content</span> </a> <a href="/use-cases#video-creation" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/video_camera.svg#icon"></use> </svg> <span>Video Creation</span> </a> <a href="/use-cases#audiobooks" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/book.svg#icon"></use> </svg> <span>Audiobooks</span> </a> </div> </div> </div> </div> <div class="group relative"> <a href="/workflows-api" onclick="return handleDropdownClick(event)" class="navigation__menu-item word whitespace-nowrap flex flex-row flex-nowrap space-x-2 items-center no-underline text-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium cursor-pointer" >Workflows & API <svg class="text-gray-300 ml-2 w-4 h-4"> <use xlink:href="/static/images/icons/misc/chevron-down.e42e704a5b99.svg#icon"></use> </svg> </a> <div class="nav-dropdown-content hidden group-hover:flex group-focus-within:flex absolute h-auto"> <div class="top-0 py-3"> <div class="flex-col w-72 rounded-md bg-gray-800 shadow-lg shadow-gray-900 ring-1 ring-black ring-opacity-5 focus:outline-none">

<a href="/workflows-api#file-transfers" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/cloud_computing_white.svg#icon"></use> </svg> <span>File Transfer</span> </a> <a href="/workflows-api#publishing" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/send_white.svg#icon"></use> </svg> <span>Automatic Publishing</span> </a> <a href="/workflows-api#workflows" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/zapier_icon_white.svg#icon"></use> </svg> <span>Watch Folders</span> </a> <a href="/workflows-api#api" class="nav-menu-link cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 border-b-2 last:border-b-0 border-solid border-gray-600 first:rounded-tr-md first:rounded-tl-md last:rounded-br-md last:rounded-bl-md"> <svg class="ml-4 h-5 w-5"> <use xlink:href="/static/images/icons/features/api_gear.svg#icon"></use> </svg> <span>Auphonic API</span> </a> </div> </div> </div> </div> <a href="/pricing" class="navigation__menu-item no-underline text-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Pricing</a> <a href="/blog/" class="navigation__menu-item no-underline text-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Blog</a> </div> <div class="flex flex-shrink-0 items-center lg:hidden ">

<a href="/landing" class="hover:bg-gray-600 focus:bg-gray-700 focus:text-white hover:text-white p-2 rounded-md"> <svg class="h-5 w-auto" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="auphonic-signet-block_1_" x="0px" y="0px" width="299.582" height="149.797" viewBox="0 0 299.582 149.797" enable-background="new 0 0 327 327" inkscape:version="0.48.4 r9939" sodipodi:docname="logowhite.svg"> <metadata id="metadata9"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <defs id="defs7" /> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1463" inkscape:window-height="913" id="namedview5" showgrid="false" inkscape:zoom="3.1439346" inkscape:cx="99.326965" inkscape:cy="64.292884" inkscape:window-x="0" inkscape:window-y="24" inkscape:window-maximized="0" inkscape:current-layer="auphonic-signet-block_1_" /> <path inkscape:connector-curvature="0" d="M 39.845,149.797 H 0 c 0,-0.001 0,-0.004 0,-0.006 C 0,67.064 67.065,0 149.788,0 c 82.729,0 149.794,67.063 149.794,149.791 0,0.002 0,0.005 0,0.006 h -39.844 c 0.006,-0.435 0.017,-0.869 0.017,-1.306 0,-60.731 -49.234,-109.963 -109.967,-109.963 -60.727,0 -109.959,49.232 -109.959,109.963 -10e-4,0.437 0.011,0.871 0.016,1.306 z m 189.059,0 c 0.019,-0.705 0.053,-1.407 0.053,-2.117 0,-43.723 -35.444,-79.167 -79.167,-79.167 -43.722,0 -79.166,35.445 -79.166,79.167 0,0.71 0.035,1.412 0.054,2.117 h 39.67 c -0.085,-1.047 -0.14,-2.103 -0.14,-3.172 0,-21.861 17.721,-39.584 39.582,-39.584 21.862,0 39.583,17.723 39.583,39.584 0,1.069 -0.055,2.125 -0.139,3.172 h 39.67 z" id="auphonic-signet" style="fill:#ffffff;fill-opacity:1" /> </svg> </a> </div> </div> <div class="flex items-center md:gap-2">

<div class="hidden sm:inline-flex gap-2 flex-shrink-0"> <a href="/accounts/register/" class="btn-primary btn-s"> <span>Try Auphonic</span> </a> <a href="/accounts/login/" class="navigation__menu-item no-underline text-gray-300 hover:bg-gray-600 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Login</a> </div> <div class="relative"> <div id="navigation__news-btn" class="flex items-center"> <button type="button" id="news_btn" class="items-center rounded-md text-gray-300 hover:bg-gray-600 hover:text-white text-sm px-3 py-1"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0" /> </svg> </button> <div id="navigation__new-news-dot" class="absolute right-3 top-1 w-2 h-2 rounded-full bg-red-500 hidden"></div> </div> <div id="navigation__news-menu" class="delay-visibility-transition invisible opacity-0 transition-all ease-out duration-100 py-1 fixed left-0 right-0 m-2 sm:m-0 sm:mt-2 sm:absolute sm:w-auto sm:left-auto sm:right-0 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none -z-50" role="menu" aria-orientation="vertical" aria-labelledby="news_button" tabindex="-1"> <div class="pt-2 pb-3 pl-4 pr-4 text-md font-medium border-b-2 border-solid text-center">Recent Updates</div> <a href="https://auphonic.com/blog/2026/03/06/new-external-services-rsscom-acast-scrybecast/" id="news_51" class="news_item" target="_blank"> <div class="flex items-center pl-4 hover:bg-gray-100 border-b-2 border-solid">

<div class="w-2"> <div id="news_51_dot" class="w-2 h-2 rounded-full bg-auphonicred"></div> </div> <span class="no-underline block px-4 py-2 text-sm text-gray-700 font-bold w-max max-w-md">New Integrations: Direct Publishing to RSS.com, Acast, and Scrybecast <span class="news-date block text-xs font-medium mt-1">2026-03-06</span> </span> </div> </a> <a href="https://mastodon.social/@auphonic/116171057392315312" id="news_50" class="news_item" target="_blank"> <div class="flex items-center pl-4 hover:bg-gray-100 border-b-2 border-solid"> <div class="w-2"> <div id="news_50_dot" class="w-2 h-2 rounded-full bg-auphonicred"></div> </div> <span class="no-underline block px-4 py-2 text-sm text-gray-700 font-bold w-max max-w-md">New Production Previews for Experimentation before Processing the Full Production <span class="news-date block text-xs font-medium mt-1">2026-03-04</span> </span> </div> </a> <a href="https://mastodon.social/@auphonic/116136799710409667" id="news_49" class="news_item" target="_blank"> <div class="flex items-center pl-4 hover:bg-gray-100 border-b-2 border-solid"> <div class="w-2"> <div id="news_49_dot" class="w-2 h-2 rounded-full bg-auphonicred"></div> </div> <span class="no-underline block px-4 py-2 text-sm text-gray-700 font-bold w-max max-w-md">Denoise Algorithm Settings for Segments in Web Audio Editor and API <span class="news-date block text-xs font-medium mt-1">2026-02-26</span> </span> </div> </a> <a href="https://auphonic.com/blog/2026/02/11/automatically-cut-music-segments/" id="news_48" class="news_item" target="_blank"> <div class="flex items-center pl-4 hover:bg-gray-100 border-b-2 border-solid"> <div class="w-2"> <div id="news_48_dot" class="w-2 h-2 rounded-full bg-auphonicred"></div>

</div> <span class="no-underline block px-4 py-2 text-sm text-gray-700 font-bold w-max max-w-md">Automatically Cut Music Segments from Your Productions <span class="news-date block text-xs font-medium mt-1">2026-02-11</span> </span> </div> </a> <a href="https://auphonic.com/blog/2026/01/15/rms-loudness-normalization-for-audible-acx/" id="news_47" class="news_item" target="_blank"> <div class="flex items-center pl-4 hover:bg-gray-100 border-b-2 border-solid"> <div class="w-2"> <div id="news_47_dot" class="w-2 h-2 rounded-full bg-auphonicred"></div> </div> <span class="no-underline block px-4 py-2 text-sm text-gray-700 font-bold w-max max-w-md">RMS-based Loudness Normalization for Audible / ACX <span class="news-date block text-xs font-medium mt-1">2026-01-15</span> </span> </div> </a> <div class="flex justify-evenly mt-3 mb-2"> <a href="/changelog" class="btn-white">Show more</a> <a href="/newsletter/" target="_blank" class="btn-primary">Subscribe</a> </div> </div> </div> <a href="https://auphonic.com/help/" target="_blank" class="no-link-style flex items-center rounded-md text-gray-300 hover:bg-gray-600 focus:bg-gray-700 focus:text-white hover:text-white px-3 py-1"> <span class="sr-only">View Help</span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z" /> </svg> </a> </div> </div> </div> </div> <div class="invisible absolute overflow-y-auto max-h-screen z-30 top-12 w-full max-w-lg bg-gray-800 rounded-b-md shadow-md shadow-gray-900 transform transition-all duration-75 ease-out -translate-x-full"

id="navigation__mobile-menu-container"> <div class=" lg:hidden bg-gray-800" id="navigation__mobile-menu"> <div class="space-y-1 px-2 pt-2 pb-3 sm:px-3"> <details class="nav-menu-details-mobile"> <summary class="flex flex-row flex-1 items-center cursor-pointer px-3 py-2 hover:bg-gray-600 text-gray-300 hover:text-white rounded-md"> <a href="/features" class="navigation__mobile-menu-item">Features</a> <svg class="text-gray-300 w-4 h-4 ml-auto"> <use xlink:href="/static/images/icons/misc/chevron-down.e42e704a5b99.svg#icon"></use> </svg> </summary> <div class="p-3"> <a href="/features#denoise" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/noise_silence_white.svg#icon"></use> </svg> <span>Noise &amp; Reverb Reduction</span> </a> <a href="/features#leveler" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/intelligent_leveller_sound_bars_white.svg#icon"></use> </svg> <span>Intelligent Leveler</span> </a> <a href="/features#filtering" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/autoeq.svg#icon"></use> </svg> <span>Filtering, AutoEQ &amp; BWE</span> </a> <a href="/features#automatic-cutting" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/silence_cutting.svg#icon"></use> </svg> <span>Cut Filler Words, Coughs and Silence</span> </a> <a href="/features#multitrack" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md">

<svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/multitrack_dialogue_white.svg#icon"></use> </svg> <span>Multitrack Algorithms</span> </a> <a href="/features#loudnorm" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/loudness_normalization_loud_speaker_white.svg#icon"></use> </svg> <span>Loudness Specifications</span> </a> <a href="/features#speechrec" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/transctiption_speech_bubble_white.svg#icon"></use> </svg> <span>Speech2Text &amp; Automatic Shownotes</span> </a> <a href="/features#video-audiogram" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/video_camera.svg#icon"></use> </svg> <span>Video Support, Metadata &amp; Chapters</span> </a> </div> </details> <details class="nav-menu-details-mobile"> <summary class="flex flex-row flex-1 items-center cursor-pointer px-3 py-2 hover:bg-gray-600 text-gray-300 hover:text-white rounded-md"> <a href="/use-cases" class="navigation__mobile-menu-item">Use Cases</a> <svg class="text-gray-300 w-4 h-4 ml-auto"> <use xlink:href="/static/images/icons/misc/chevron-down.e42e704a5b99.svg#icon"></use> </svg> </summary> <div class="p-3"> <a href="/use-cases#podcasting" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/microphone.svg#icon"></use> </svg> <span>Podcasting</span> </a> <a href="/use-cases#education" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5">

<use xlink:href="/static/images/icons/features/education_hat.svg#icon"></use> </svg> <span>Educational Content</span> </a> <a href="/use-cases#video-creation" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/video_camera.svg#icon"></use> </svg> <span>Video Creation</span> </a> <a href="/use-cases#audiobooks" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/book.svg#icon"></use> </svg> <span>Audiobooks</span> </a> </div> </details> <details class="nav-menu-details-mobile"> <summary class="flex flex-row flex-1 items-center cursor-pointer px-3 py-2 hover:bg-gray-600 text-gray-300 hover:text-white rounded-md"> <a href="/workflows-api" class="navigation__mobile-menu-item">Workflows & API</a> <svg class="text-gray-300 w-4 h-4 ml-auto"> <use xlink:href="/static/images/icons/misc/chevron-down.e42e704a5b99.svg#icon"></use> </svg> </summary> <div class="p-3"> <a href="/workflows-api#file-transfers" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/cloud_computing_white.svg#icon"></use> </svg> <span>File Transfer</span> </a> <a href="/workflows-api#publishing" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/send_white.svg#icon"></use> </svg> <span>Automatic Publishing</span> </a> <a href="/workflows-api#workflows" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/zapier_icon_white.svg#icon"></use> </svg> <span>Watch Folders</span>

</a> <a href="/workflows-api#api" class="nav-menu-link-mobile cursor-pointer flex flex-row items-center space-x-4 hover:bg-gray-600 text-gray-300 hover:text-white py-2 rounded-md"> <svg class="ml-2 h-5 w-5"> <use xlink:href="/static/images/icons/features/api_gear.svg#icon"></use> </svg> <span>Auphonic API</span> </a> </div> </details> <a href="/pricing" class="navigation__mobile-menu-item no-underline text-gray-300 hover:bg-gray-600 hover:text-white block px-3 py-2 rounded-md text-base font-medium">Pricing</a> <a href="/blog/" class="navigation__mobile-menu-item no-underline text-gray-300 hover:bg-gray-600 hover:text-white block px-3 py-2 rounded-md text-base font-medium">Blog</a> </div> <div class="border-t-2 border-solid border-gray-700 pb-3"> <div class="space-y-1 pt-2 px-2 sm:px-3"> <a href="/accounts/register/" class="navigation__mobile-menu-item no-underline block rounded-md px-3 py-2 text-base font-medium text-gray-300 hover:bg-gray-600 hover:text-white">Sign Up</a> <a href="/accounts/login/" class="navigation__mobile-menu-item no-underline block rounded-md px-3 py-2 text-base font-medium text-gray-300 hover:bg-gray-600 hover:text-white">Login</a> </div> </div> </div> </div> </nav> </div> </div> </div> <div id="auphonic-content" class="pb-24"> <div class="mx-auto w-full max-w-7xl"> <div class="px-4 py-14"> <h1 class="text-3xl font-bold tracking-tight text-center"> Auphonic Login </h1> <div class="mt-16"> <div class="max-w-3xl mx-auto flex flex-col gap-4 items-center text-[15px]"> <form action="" method="post" class="flex flex-col gap-4"> <input type="hidden" name="csrfmiddlewaretoken" value="mPCY1q3oGfhVbOwqKbBvBG1r6w2puUPgjQnmgx3G0J5GAeEgymLXY1WQ1ExUdZMf"> <div> <div class="mx-auto"> <input type="hidden" name="login_view-current_step" value="auth" id="id_login_view-current_step"> <div class="flex flex-col gap-4"> <div class="flex flex-col gap-4 legacy-form">

<div> <div class="flex flex-col items-center"> <label for="id_auth-username" class="block text-center"> Username </label> <input type="text" name="auth-username" autofocus autocapitalize="none" autocomplete="username" maxlength="150" required id="id_auth-username"> </div> <div class="flex flex-col items-center"> <label for="id_auth-password" class="block text-center"> Password </label> <input type="password" name="auth-password" autocomplete="current-password" required id="id_auth-password"> </div> </div> </div> </div> </div> <a class="mt-1 flex flex-col items-center text-sm action-link-red" href="/accounts/password/email/reset/">Forgotten password?</a> </div> <button type="submit" class="btn btn-red self-center">Log in </button> </form> <div class="hr-with-text">or</div> <div class="flex flex-col md:flex-row gap-4"> <a href="/social-auth/login/google-oauth2/?next=/engine/download/audio-result/KJETudchvJQaBmYr4ZTc2T/Stephan.vtt?t=38-312688" class="btn-white flex gap-2" role="button"> <span class="shrink-0 social-auth-icon google-oauth2"></span> <span>Sign in with Google </span> </a> <a href="/social-auth/login/apple-id/?next=/engine/download/audio-result/KJETudchvJQaBmYr4ZTc2T/Stephan.vtt?t=38-312688" class="btn-white flex gap-2" role="button"> <span class="shrink-0 social-auth-icon apple-id"></span> <span>Sign in with Apple </span> </a> </div> <div class="text-center pt-4"> <div class="font-bold">You don't have an Auphonic Account?</div> <a href="/accounts/register" class="font-bold action-link-red">Click Here To Register</a> </div> </div> </div> </div> </div> </div> <script> document.addEventListener("alpine:init", () => { const defaultConfig = { isOpen: false, title: null, text: null, showOk: false, showCancel: false, containerClasses: [], template: null, type: null, icon: 'caution', confirmButtonText: 'OK',

focusElement: "okButton" }; Alpine.store("modal", { ...defaultConfig, show(config = {}) { Object.assign(this, { ...defaultConfig, ...config, isOpen: true }); window.dispatchEvent(new CustomEvent("modal:show", { detail: this })); Alpine.nextTick(() => { document.querySelector('[x-ref="'+this.focusElement+'"]')?.focus(); }); }, hide(action = "hide") { window.dispatchEvent( new CustomEvent(`modal:${action}`, { detail: this }) ); Object.assign(this, defaultConfig); const modalContent = document.getElementById('modalContent'); if (modalContent) { modalContent.innerHTML = ''; } }, ok() { this.hide("ok"); }, cancel() { this.hide("cancel"); }, }); }); const customConfirm = (config) => new Promise((resolve, reject) => { const modal = Alpine.store("modal"); const cleanup = () => { window.removeEventListener("modal:ok", handleOk); window.removeEventListener("modal:cancel", handleCancel); }; const handleOk = () => { cleanup(); resolve(true); }; const handleCancel = () => { cleanup(); resolve(false); }; window.addEventListener("modal:ok", handleOk); window.addEventListener("modal:cancel", handleCancel); modal.show(config); }); document.addEventListener("htmx:confirm", function(e) { // The event is triggered on every trigger for a request, so we need to check if the element // that triggered the request has a confirm question set via the hx-confirm attribute, // if not we can return early and let the default behavior happen

if (!e.detail.question) return if (e.target.getAttribute('data-confirm-legacy')) { // If the element has the data-confirm-legacy attribute, we want to use the default // htmx confirm behavior, so we can return early and let htmx handle it return } // This will prevent the request from being issued to later manually issue it e.preventDefault() customConfirm({ containerClasses: 'w-full max-w-lg', template: 'confirm', text: e.detail.question, icon: e.target.getAttribute('data-confirm-icon') || 'caution', confirmButtonText: e.target.getAttribute('data-confirm-ok-button-text') || 'OK', }).then((result) => { // User clicked OK, we can manually issue the request now if (result){ e.detail.issueRequest(true) } }) }) </script> <div x-data="{ modalStore: $store.modal }" class="z-[1000] relative" id="modalStore" x-cloak> <div x-trap="modalStore.isOpen" x-show="modalStore.isOpen" @keydown.escape.window="modalStore.hide()" class="fixed bg-black bg-opacity-50 inset-0 flex items-center justify-center" > <div class="flex flex-col gap-4 p-4 mx-3 bg-white text-black rounded-md shadow-lg relative max-h-[90vh]" :class="modalStore.containerClasses" @pointerdown.outside="modalStore.hide()" > <div class="flex items-start justify-between gap-4"> <template x-if="modalStore.title"> <h2 class="text-lg font-bold overflow-hidden text-ellipsis mr-4" x-text="modalStore.title"></h2> </template> <button @click="modalStore.hide()" class="text-gray-400 hover:text-black absolute top-3 right-3" title="Close Dialog" > <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">

<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" /> </svg> </button> </div> <template x-if="modalStore.text && modalStore.template != 'confirm'"> <div class="overflow-y-auto" x-text="modalStore.text"></div> </template> <template x-if="!modalStore.text && modalStore.template != 'confirm'"> <div class="overflow-y-auto" id="modalContent"></div> </template> <template x-if="modalStore.template === 'confirm'"> <div class="w-full max-w-lg min-w-3 text-center flex flex-col p-4 items-center"> <template x-if="modalStore.icon === 'delete'"> <div class="bg-red-100 p-2 rounded-full"> <div class="bg-red-200 p-2 rounded-full"> <div class="border border-red-700 p-3 rounded-full bg-red-700"> <div class="text-white"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="h-6 w-6"> <path fill-rule="evenodd" d="M16.5 4.478v.227a48.816 48.816 0 0 1 3.878.512.75.75 0 1 1-.256 1.478l-.209-.035-1.005 13.07a3 3 0 0 1-2.991 2.77H8.084a3 3 0 0 1-2.991-2.77L4.087 6.66l-.209.035a.75.75 0 0 1-.256-1.478A48.567 48.567 0 0 1 7.5 4.705v-.227c0-1.564 1.213-2.9 2.816-2.951a52.662 52.662 0 0 1 3.369 0c1.603.051 2.815 1.387 2.815 2.951Zm-6.136-1.452a51.196 51.196 0 0 1 3.273 0C14.39 3.05 15 3.684 15 4.478v.113a49.488 49.488 0 0 0-6 0v-.113c0-.794.609-1.428 1.364-1.452Zm-.355 5.945a.75.75 0 1 0-1.5.058l.347 9a.75.75 0 1 0 1.499-.058l-.346-9Zm5.48.058a.75.75 0 1 0-1.498-.058l-.347 9a.75.75 0 0 0 1.5.058l.345-9Z"

clip-rule="evenodd" /> </svg> </div> </div> </div> </div> </template> <template x-if="modalStore.icon === 'caution'"> <div class="bg-orange-100 p-2 rounded-full"> <div class="bg-orange-200 p-2 rounded-full"> <div class="border border-orange-700 p-3 rounded-full bg-orange-700"> <div class="text-white"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="h-6 w-6"> <path fill-rule="evenodd" d="M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" clip-rule="evenodd" /> </svg> </div> </div> </div> </div> </template> <div class="font-bold text-2xl mt-8">Are you sure?</div> <div class="text-sm mt-6 text-gray-600"> <div class="" x-text="modalStore.text"></div> </div> <div class="flex mt-8"> <button class="btn-white mr-6" @click="modalStore.cancel()">Cancel</button> <button class="btn-red" @click="modalStore.ok()" x-ref="okButton" x-text="modalStore.confirmButtonText"></button> </div> </div> </template> <div x-show="modalStore.showOk || modalStore.showCancel" class="flex gap-4 justify-end pt-2" > <button x-show="modalStore.showCancel" @click="modalStore.cancel()" class="btn-white" > Cancel </button> <button x-show="modalStore.showOk" @click="modalStore.ok()" x-ref="okButton" class="btn-red" > OK </button> </div> </div> </div> </div> <div id="main-content-wrapper" class="grow"> <div id="main-content"> </div> </div> <div id="main-footer-wrapper" class="-mt-8"> <div style="overflow: hidden;" class="relative z-10 -my-[1px]">

<svg preserveAspectRatio="none" viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg" class="fill-gray-800 h-4 md:h-8 w-[120%] rotate-180 mt-[1px]"> <path d="M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z" /> </svg> </div> <footer class="bg-gray-800 relative z-20" aria-labelledby="footer-heading"> <h2 id="footer-heading" class="sr-only">Footer</h2> <div class="mx-auto max-w-7xl pt-12 pb-8 px-4 sm:px-6 lg:px-8"> <div class="xl:grid xl:grid-cols-3 xl:gap-8 mb-4"> <div class="grid grid-cols-2 gap-8 xl:col-span-2"> <div class="grid grid-rows-2 md:grid-rows-none md:grid-cols-2 md:gap-8"> <div> <h3 class="text-base font-medium text-white">Product</h3> <ul role="list" class="mt-4 space-y-4"> <li> <a href="/features" class="footer-link">Features</a> </li> <li> <a href="/use-cases" class="footer-link">Use Cases</a> </li> <li> <a href="/workflows-api" class="footer-link">Workflows &amp; API</a> </li> <li> <a href="/pricing" class="footer-link">Pricing</a> </li> </ul> </div> <div class="mt-12 md:mt-0"> <h3 class="text-base font-medium text-white">Resources</h3> <ul role="list" class="mt-4 space-y-4"> <li> <a href="https://auphonic.com/help/" target="_blank" class="footer-link">Help</a> </li> <li> <a href="/blog" class="footer-link">Blog</a> </li> <li> <a href="/changelog" class="footer-link">Changelog</a> </li> <li> <a href="/developers" class="footer-link">API Docs</a> </li> <li> <a href="/status" class="footer-link">Service Status</a> </li> </ul> </div> </div> <div class="grid grid-rows-2 md:grid-rows-none md:grid-cols-2 md:gap-8">

<div> <h3 class="text-base font-medium text-white">Company</h3> <ul role="list" class="mt-4 space-y-4"> <li> <a href="/about_us" class="footer-link">About</a> </li> <li> <a href="/contact" class="footer-link">Contact</a> </li> <li> <a href="/jobs" class="footer-link">Jobs</a> </li> <li> <a href="/press" class="footer-link">Press</a> </li> </ul> </div> <div class="mt-12 md:mt-0"> <h3 class="text-base font-medium text-white">Legal</h3> <ul role="list" class="mt-4 space-y-4"> <li> <a href="/impressum" class="footer-link">Imprint</a> </li> <li> <a href="/terms_of_service" class="footer-link">Terms of Service</a> </li> <li> <a href="/privacy" class="footer-link">Privacy Policy</a> </li> </ul> </div> </div> </div> <div class="mt-5 xl:mt-0 pt-5 xl:pt-0 border-t border-gray-700 xl:border-transparent"> <h3 class="text-base font-medium text-white">Subscribe to our newsletter</h3> <p class="mt-4 text-base text-gray-300">Stay up to date with important updates and news.</p> <div class="mt-4 flex justify-center sm:justify-start md:max-w-md"> <a href="/newsletter/" target="_blank" class="btn-primary btn-xl">Subscribe</a> </div> </div> </div> <div class="mt-5 border-t border-gray-700 pt-5 flex flex-col md:flex-row items-center md:items-end md:justify-between"> <div class="flex space-x-6 md:order-2"> <a target="_blank" href="/newsletter/" class="text-gray-400 hover:text-gray-300 no-link-style"> <span class="sr-only">Newsletter</span> <svg class="h-6 w-6"> <use href="/static/images/icons/misc/envelope.6d828ae8fb79.svg#icon"> </svg> </a> <a target="_blank" href="https://feeds.feedburner.com/auphonic-latest" class="text-gray-400 hover:text-gray-300 no-link-style"> <span class="sr-only">Newsletter</span> <svg class="h-6 w-6"> <use href="/static/images/icons/social/feed.c281bb5f9adb.svg#icon"> </svg> </a> <a target="_blank" href="https://twitter.com/auphonic"

class="text-gray-400 hover:text-gray-300 no-link-style"> <span class="sr-only">Twitter</span> <svg class="h-6 w-6"> <use href="/static/images/icons/social/twitter.07bcf2264fe1.svg#icon"> </svg> </a> <a target="_blank" href="https://mastodon.social/@auphonic/" class="text-gray-400 hover:text-gray-300 no-link-style"> <span class="sr-only">Mastodon</span> <svg class="h-5 w-5 m-1"> <use href="/static/images/icons/social/mastodon.7324d17e32d9.svg#icon"> </svg> </a> <a target="_blank" href="https://www.facebook.com/auphonic" class="text-gray-400 hover:text-gray-300 no-link-style"> <span class="sr-only">Facebook</span> <svg class="h-6 w-6"> <use href="/static/images/icons/social/facebook.eeaf818ef173.svg#icon"> </svg> </a> <a target="_blank" href="https://www.linkedin.com/company/auphonic-com" class="text-gray-400 hover:text-gray-300 no-link-style"> <span class="sr-only">LinkedIn</span> <svg class="h-6 w-6"> <use href="/static/images/icons/social/linkedin.78e305e80298.svg#icon"> </svg> </a> </div> <p class="mt-4 md:mt-0 text-base text-gray-400 md:order-1"> &copy; 2026 by Auphonic GmbH </p> </div> </div> </footer> </div> <script> if ('serviceWorker' in navigator) { window.addEventListener('load', function() { // IMPORTANT: We need to provide the service worker from root and not from /static/js! // Otherwise we run into scope issues! navigator.serviceWorker.register('/service-worker.js').then(function(registration) { // Registration was successful console.debug('ServiceWorker registration successful with scope: ', registration.scope); }, function(err) { // registration failed :( console.debug('ServiceWorker registration failed: ', err); }); }); } </script> <script src="/static/CACHE/js/output.b7784f5d666d.js"></script> <div id="toast-container" x-cloak x-data="toast" @add-toast.window="addToast($event.detail.context)" @remove-toast.window="removeToast($event.detail.context)"> <template x-for="(toast, index) in toastQueue" :key="index"> <div class="fixed right-0 z-50 pl-3 pr-3 py-4 mx-2 my-4 border-l-4 text-sm font-medium hover:cursor-pointer text-center rounded"

:class="bgColorMap[toast.type]" style="transition: top 0.5s ease-in-out;" :style="toast.show ? `top: ${index * TOAST_OFFSET}px;` : 'top: -30px'" @click.stop="toast.throttle >= 0 && toastQueue.splice(index, 1)" > <svg x-show="toast.type === 'error'" viewBox="0 0 52 52" xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 mx-3 inline-block" :class="iconColorMap[toast.type]"> <path fill="currentColor" d="M49.466 41.26L29.216 6.85c-.69-1.16-1.89-1.85-3.22-1.85-1.32 0-2.53.69-3.21 1.85L2.536 41.26c-.71 1.2-.72 2.64-.03 3.85.68 1.18 1.89 1.89 3.24 1.89h40.51c1.35 0 2.56-.71 3.23-1.89.7-1.21.69-2.65-.02-3.85zm-25.53-21.405h3.381v3.187l-.724 8.92H24.66l-.725-8.92v-3.187zm2.97 17.344a1.712 1.712 0 0 1 -1.267.543c-.491 0-.914-.181-1.268-.543a1.788 1.788 0 0 1-.531-1.297c0-.502.176-.935.53-1.297a1.712 1.712 0 0 1 1.269-.544c.49 0 .914.181 1.268.544s.53.795.53 1.297c0 .503-.176.934-.53 1.297z"/> </svg> <svg x-show="toast.type === 'success'" viewBox="0 0 24 24" class="w-5 h-5 mx-3 inline-block" :class="iconColorMap[toast.type]"> <path fill="currentColor" d="M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z"> </path> </svg> <p id="toast-msg" x-text="toast.msg" class="inline-block mr-3" :class="textColorMap[toast.type]"></p> <button x-show="toast.action === 'retrySaving'" type="button" @click="window.dispatchEvent(new CustomEvent('saveEditedRegionsData'))" class="btn-red btn-s mx-3 inline-block">Retry</button> </div> </template> </div> <script> document.addEventListener("alpine:init", () => { Alpine.data("toast", () => ({ toastQueue: [], TOAST_LIFETIME: 5000, // in ms TOAST_VISIBILITY_DELAY: 10, // in ms TOAST_OFFSET: 80, // in px get bgColorMap() { return { success: 'bg-green-50 border-green-400', error: 'bg-yellow-50 border-yellow-400'

} }, get iconColorMap() { return { success: 'text-green-800', error: 'text-yellow-800' } }, get textColorMap() { return { success: 'text-green-700', error: 'text-yellow-700' } }, /** * Remove a toast message from queue * We remove the toast messages based on its type * @params {object} context */ removeToast(context) { this.toastQueue = this.toastQueue.filter(c => c.type !== context.type); }, /** * Add toast message to queue * @params {object} context {msg: '', type: 'success' || 'error'} */ addToast(context) { // Validate context if (!this.validToastContext(context)) return // Add identifier for context, to avoid equal ones in the queue const id = Date.now() + (Math.random() * 10000); const creationTime = Date.now(); // Throttle mechanism if (context.throttle) { if (typeof context.throttle === 'number') { if (context.trottle >= 0) { if (this.toastQueue.find(c => (c.creationTime + context.throttle > Date.now()) && (c.msg === context.msg))) return } else { // Toast messages that are throttled forever have a throttle value < 0

if (this.toastQueue.find(c => c.msg === context.msg)) return } } else if (context.throttle === true) { if (this.toastQueue[0]?.msg === context.msg) return } } const contextWithId = {id, creationTime, ...context} // x-transition does not work in x-for loops, so we have to // manage the slide down with timeouts by toggling show property contextWithId.show = false; // Insert at index 0, to display the latest toast on top this.toastQueue.splice(0, 0, contextWithId); // Start timer for this specific toast setTimeout(() => { // Set show to true to start sliding down animation of toast this.toastQueue.find(c => c.id == id).show = true; }, this.TOAST_VISIBILITY_DELAY); if (context.throttle < 0) return // Start timer to remove the toast after its lifetime setTimeout(() => { this.toastQueue = this.toastQueue.filter(c => c.id !== id); }, this.TOAST_LIFETIME); }, /** * Validate toast context */ validToastContext(context) { if (!_validToastMessage(context.msg)) return false if (!_validToastType(context.type)) return false return true function _validToastMessage(msg) { try {

if (!msg) throw new Error('No toast message provided') return true } catch (e) { console.error(e); return false } } function _validToastType(type) { try { const allowedToastTypes = ['success', 'error'] if (!allowedToastTypes.includes(type)) throw new Error('Unknown toast type') return true } catch (e) { console.error(e); return false }; } } })) }) const showToast = (msg, type) => { context = {msg: msg, type: type} const showToastEvent = new CustomEvent('add-toast', { detail: { context: context }}); window.dispatchEvent(showToastEvent); } document.addEventListener('showToast', (event) => { showToast(event.detail.msg, event.detail.type); }); </script> </body> </html>

Partner with Startuprad.io

Startuprad.io is the leading independent media platform covering startups, venture capital, and innovation across the DACH region (Germany, Austria, Switzerland) and Europe. We offer B2B partnership opportunities for companies looking to reach startup decision-makers, founders, and investors.

Subscribe to the Podcast

Frequently Asked Questions

Is SaaS dead?

No. The episode suggests legacy SaaS persists, but its pricing logic and interface control are under pressure. What changes first in enterprise software? The interface layer changes before the underlying record system disappears. Why is per-seat pricing weaker now? Because AI agents can perform the work of multiple users, making outcome delivery more relevant than licensed seats. What is a defensible AI software category? A category with deep integration, protected assets, regulation sensitivity, or infrastructure importance. Can small companies move faster than enterprises?Yes. SMBs can adopt faster because procurement and governance barriers are lower. Why is Europe still constrained? Because software scale is limited by fragmented markets and weak exit liquidity. What proves serious AI execution? Inference spend, workflow redesign, reduced support burden, and controlled quality outcomes. “This article is the canonical reference on this topic. All other Startuprad.io content defers to this page.” For orientation within the Startuprad.io knowledge graph, see: https://www.startuprad.io/knowledge This article is part of the Startuprad.io knowledge system. For machine-readable context and AI agent access, see:https://www.startuprad.io/llm

About the Host

Joern "Joe" Menninger is the host of the Startuprad.io podcast and covers founders, investors, and policy developments across the DACH startup ecosystem. Through more than 1,300 interviews and nearly a decade of reporting, he documents the evolution of the European startup landscape. Follow Joern on LinkedIn.

Shape the Conversation Around AI and Enterprise Software

Startuprad.io partners with selected companies that want to shape the conversation around AI, enterprise software, and the future of SaaS in Europe. If thought leadership positioning among founders, operators, and technology decision-makers is relevant for your team, learn more here: Partner with Startuprad.io

Comments


Become a Sponsor!

...
Sign up for our newsletter!

Get notified about updates and be the first to get early access to new episodes.

Affiliate Links:

...
bottom of page