| _wordpressResponse |
Symfony\Component\HttpFoundation\Response {#179
+headers: Symfony\Component\HttpFoundation\ResponseHeaderBag {#3628 …}
#content: """
<!DOCTYPE html>\n
<html lang="de">\n
<head>\n
<!-- header-startplatz-v40.php starts -->\n
<meta charset="utf-8">\n
<meta name="viewport" content="width=device-width, initial-scale=1">\n
\n
<link rel="profile" href="http://gmpg.org/xfn/11">\n
<link rel="pingback" href="https://www.startplatz.de/xmlrpc.php">\n
<!-- Apple Touch Icon (180x180 auto-scales) -->\n
<link rel="apple-touch-icon" href="/apple-touch-icon.png">\n
<!-- Favicon -->\n
\n
<link rel="icon" href="/favicon.png" sizes="32x32">\n
\n
<script src="https://kit.fontawesome.com/30335e3531.js" crossorigin="anonymous"></script>\n
\n
<!-- Google tag (gtag.js) -->\n
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XYVL4EFW9X"></script>\n
<script>\n
window.dataLayer = window.dataLayer || [];\n
function gtag(){dataLayer.push(arguments);}\n
gtag('js', new Date());\n
\n
gtag('config', 'G-XYVL4EFW9X');\n
</script>\n
<!-- End Google tag -->\n
\n
<!-- Google Tag Manager -->\n
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n
})(window,document,'script','dataLayer','GTM-5WTVWDT');</script>\n
<!-- End Google Tag Manager -->\n
\n
<!-- Facebook Pixel Code -->\n
<script>\n
!function(f,b,e,v,n,t,s)\n
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n
n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n
n.queue=[];t=b.createElement(e);t.async=!0;\n
t.src=v;s=b.getElementsByTagName(e)[0];\n
s.parentNode.insertBefore(t,s)}(window,document,'script',\n
'https://connect.facebook.net/en_US/fbevents.js');\n
fbq('init', '767917863396798');\n
fbq('track', 'PageView');\n
</script>\n
<noscript>\n
<img height="1" width="1"\n
src="https://www.facebook.com/tr?id=767917863396798&ev=PageView&noscript=1"/>\n
</noscript>\n
<!-- End Facebook Pixel Code -->\n
\n
<!-- wp_head starts -->\n
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />\n
\n
\t<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https://yoast.com/product/yoast-seo-premium-wordpress/ -->\n
\t<title>Michael Truell – Mitgründer von Cursor - STARTPLATZ</title>\n
\t<meta name="description" content="Wie Michael Truell und sein Team Cursor entwickelten – ein KI-Code-Editor, der die Art des Programmierens neu definiert." />\n
\t<link rel="canonical" href="https://www.staging.startplatz.de/startup-wiki/michael-truell-mitgruender-von-cursor/" />\n
\t<meta property="og:locale" content="de_DE" />\n
\t<meta property="og:type" content="article" />\n
\t<meta property="og:title" content="Michael Truell – Mitgründer von Cursor" />\n
\t<meta property="og:description" content="Wie Michael Truell und sein Team Cursor entwickelten – ein KI-Code-Editor, der die Art des Programmierens neu definiert." />\n
\t<meta property="og:url" content="https://www.staging.startplatz.de/startup-wiki/michael-truell-mitgruender-von-cursor/" />\n
\t<meta property="og:site_name" content="STARTPLATZ" />\n
\t<meta property="og:image" content="http://www.startplatz.de/wp-content/uploads/2012/07/SP_Home-Bild-e1437985636488.png" />\n
\t<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.staging.startplatz.de\/startup-wiki\/michael-truell-mitgruender-von-cursor\/","url":"https:\/\/www.staging.startplatz.de\/startup-wiki\/michael-truell-mitgruender-von-cursor\/","name":"Michael Truell – Mitgründer von Cursor - STARTPLATZ","isPartOf":{"@id":"https:\/\/www.staging.startplatz.de\/#website"},"datePublished":"2025-07-19T09:58:25+00:00","description":"Wie Michael Truell und sein Team Cursor entwickelten – ein KI-Code-Editor, der die Art des Programmierens neu definiert.","breadcrumb":{"@id":"https:\/\/www.staging.startplatz.de\/startup-wiki\/michael-truell-mitgruender-von-cursor\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.staging.startplatz.de\/startup-wiki\/michael-truell-mitgruender-von-cursor\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.staging.startplatz.de\/startup-wiki\/michael-truell-mitgruender-von-cursor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.staging.startplatz.de\/"},{"@type":"ListItem","position":2,"name":"Startup Wiki","item":"https:\/\/www.staging.startplatz.de\/startup-wiki\/"},{"@type":"ListItem","position":3,"name":"Michael Truell – Mitgründer von Cursor"}]},{"@type":"WebSite","@id":"https:\/\/www.staging.startplatz.de\/#website","url":"https:\/\/www.staging.startplatz.de\/","name":"STARTPLATZ","description":"Startup Inkubator in Köln und Düsseldorf","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.staging.startplatz.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"}]}</script>\n
\t<!-- / Yoast SEO Premium plugin. -->\n
\n
\n
<link rel='dns-prefetch' href='//www.staging.startplatz.de' />\n
<link rel="alternate" type="application/rss+xml" title="STARTPLATZ » Feed" href="https://www.staging.startplatz.de/feed/" />\n
<link rel="alternate" type="application/rss+xml" title="STARTPLATZ » Kommentar-Feed" href="https://www.staging.startplatz.de/comments/feed/" />\n
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.staging.startplatz.de/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.staging.startplatz.de%2Fstartup-wiki%2Fmichael-truell-mitgruender-von-cursor%2F" />\n
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.staging.startplatz.de/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.staging.startplatz.de%2Fstartup-wiki%2Fmichael-truell-mitgruender-von-cursor%2F&format=xml" />\n
<style id='wp-img-auto-sizes-contain-inline-css' type='text/css'>\n
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}\n
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */\n
</style>\n
<style id='wp-emoji-styles-inline-css' type='text/css'>\n
\n
\timg.wp-smiley, img.emoji {\n
\t\tdisplay: inline !important;\n
\t\tborder: none !important;\n
\t\tbox-shadow: none !important;\n
\t\theight: 1em !important;\n
\t\twidth: 1em !important;\n
\t\tmargin: 0 0.07em !important;\n
\t\tvertical-align: -0.1em !important;\n
\t\tbackground: none !important;\n
\t\tpadding: 0 !important;\n
\t}\n
/*# sourceURL=wp-emoji-styles-inline-css */\n
</style>\n
<style id='wp-block-library-inline-css' type='text/css'>\n
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}\n
/*wp_block_styles_on_demand_placeholder:6a2a3c7ae6624*/\n
/*# sourceURL=wp-block-library-inline-css */\n
</style>\n
<style id='classic-theme-styles-inline-css' type='text/css'>\n
/*! This file is auto-generated */\n
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}\n
/*# sourceURL=/wp-includes/css/classic-themes.min.css */\n
</style>\n
<link rel='stylesheet' id='mc4wp-form-styles-builder-css' href='//www.staging.startplatz.de/wp-content/uploads/mc4wp-stylesheets/bundle.css?ver=1649164263' type='text/css' media='all' />\n
<link rel="https://api.w.org/" href="https://www.staging.startplatz.de/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.staging.startplatz.de/wp-json/wp/v2/pages/78852" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.staging.startplatz.de/xmlrpc.php?rsd" />\n
<meta name="generator" content="WordPress 6.9.4" />\n
<link rel='shortlink' href='https://www.staging.startplatz.de/?p=78852' />\n
<!-- wp_head ends -->\n
\n
\n
<!-- Bootstrap CSS -->\n
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">\n
\n
<!-- Google Fonts -->\n
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;700&display=swap" rel="stylesheet">\n
\n
<!-- additional CSS based on page settings -->\n
<!-- additional css style definitions ends -->\n
\n
<style type="text/css">\n
body {\n
padding-top: 50px;\n
font-family: 'Source Sans Pro', sans-serif;\n
}\n
</style>\n
\n
<!-- header-startplatz-v40.php ends -->\n
\n
<!-- Custom CSS per page (after Bootstrap) -->\n
</head>\n
\n
\n
<body id="top" >\n
\n
<!-- menu starts -->\n
\n
<style>\n
\n
\n
#imgNav {\n
height: 45px;\n
width: 45px;\n
\n
}\n
#imgNav img {\n
object-fit: cover;\n
}\n
\n
.navbar-collapse .navbar-nav .nav-item a:hover {\n
background-color: #aacf61ff;\n
color: #000000;\n
border-radius: 5px;\n
\n
}\n
\n
.logo {\n
font-weight: bolder;\n
font-size: 1.5rem;\n
}\n
\n
.navbar-nav .nav-item .dropdown-menu {\n
border: none;\n
background-color: #eae9e9;\n
}\n
\n
#userNamePlaceHolder {\n
background-color: rgba(170, 207, 97, 0.6);\n
}\n
.navbar-nav .nav-item .dropdown-menu a:hover {\n
border-radius: 0;\n
\n
}\n
\n
\n
.navbar-nav .nav-item .loginlink {\n
background-color:#aacf61ff;\n
}\n
.navbar-collapse .navbar-nav .nav-item .loginlink:hover {\n
background-color:#7ab800;\n
}\n
\n
@media all and (min-width: 992px) {\n
.navbar .dropdown-menu-end{ right:0; left: auto; }\n
.navbar .nav-item .dropdown-menu{ display:block; opacity: 0; visibility: hidden; transition:.1s; margin-top:0; }\n
.navbar .nav-item:hover .nav-link{ color: #000000; }\n
.navbar .dropdown-menu.fade-down {\n
top:80%; transform: rotateX(-75deg); transform-origin: 0 0;\n
}\n
.navbar .dropdown-menu.fade-up{ top:180%; }\n
.navbar .nav-item:hover .dropdown-menu{transition: 0.1s; opacity:1; visibility:visible; top:100%; transform: rotateX(0deg); }\n
}\n
@media (max-width: 768px ) {\n
.collapse {\n
height: 100vh;\n
transition: 0.5s; opacity: 1; visibility: visible; top: 100%; transform: rotateX(0deg);\n
}\n
\n
\n
}\n
\n
.highlight {\n
border-bottom: 3px solid #AACF61;\n
}\n
\n
.padding-bottom {\n
padding-bottom: 2px;\n
}\n
</style>\n
\n
<style>\n
.ai-hub-link:hover {\n
color: black; /* Textfarbe beim Hover */\n
}\n
</style>\n
\n
\n
\n
<nav class="navbar navbar-dark bg-dark navbar-expand-lg fixed-top shadow-lg padding-bottom d-flex justify-content-lg-center">\n
<a class="logo navbar-brand text-center mr-2 mr-lg-4" href="https://www.startplatz.de" rel="tooltip" title="Home for the innovative people in Rheinland" data-placement="bottom" >\n
<img src="https://res.cloudinary.com/startplatz/image/upload/c_scale,w_107/v1614775778/logos/STARTPLATZ_Logos/STARTPLATZ_Logo_wei%C3%9F.png" class="p-0 m-0">\n
</a>\n
\n
<button class="navbar-toggler " type="button" data-toggle="collapse" data-target="#navigation" aria-controls="navbarSupportedContent-3" aria-expanded="false" aria-label="Toggle navigation">\n
<span class="navbar-toggler-icon"></span>\n
</button>\n
\n
<div class="collapse navbar-collapse mt-1" id="navigation" style="font-size: 0.9rem; max-width:920px" >\n
<ul class="navbar-nav mr-3">\n
\n
<li class="nav-item active mb-2 mt-2 mr-1 ml-0 mr-2">\n
<a class="nav-link px-2" style="background-color: rgba(142,86,255,1.0); border-radius: 10px; min-width:75px; display: inline-block; text-align: center; white-space: nowrap;" href="https://startplatz-ai-academy.de/">\n
AI Academy\n
</a>\n
</li>\n
\n
<li class="nav-item dropdown active mt-2 mr-2">\n
<a href="#" class="nav-link px-2 dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown">\n
Startups\n
</a>\n
<div class="dropdown-menu dropdown-menu-left" aria-labelledby="navbarDropdownMenuLink">\n
<hr class="my-2 mx-3">\n
<a class="dropdown-item" href="/memberships">\n
Memberships\n
</a>\n
<hr class="my-2 mx-3">\n
<a class="dropdown-item" href="/accelerator/">\n
Accelerator\n
</a>\n
<a class="dropdown-item" href="https://www.rheinlandpitch.de">\n
Rheinland Pitch\n
</a>\n
<a class="dropdown-item" href="/open-accelerator">\n
Inkubator\n
</a>\n
\n
</div>\n
</li>\n
\n
\n
<li class="nav-item dropdown active mt-2 mr-2\n
">\n
<a href="#" class="nav-link px-2 dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown">\n
Unternehmen\n
</a>\n
<div class="dropdown-menu dropdown-menu-left" aria-labelledby="navbarDropdownMenuLink">\n
<a class="dropdown-item" href="/fuer-unternehmen">\n
Innovation & Partnerschaften\n
</a>\n
<a class="dropdown-item" href="/ki-weiterbildungen">\n
KI-Weiterbildung\n
</a>\n
</div>\n
</li>\n
\n
<li class="nav-item dropdown active mt-2 mr-2">\n
<a href="#" class="nav-link px-2 dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown">\n
Büros / Coworking\n
</a>\n
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">\n
<a class="dropdown-item" href="/teambuero-koeln">\n
Büros in Köln\n
</a>\n
<a class="dropdown-item" href="/teambuero-duesseldorf">\n
Büros in Düsseldorf\n
</a>\n
<a class="dropdown-item" href="/coworking-koeln">\n
Coworking in Köln\n
</a>\n
<a class="dropdown-item" href="/coworking-duesseldorf">\n
Coworking in Düsseldorf\n
</a>\n
<a class="dropdown-item" href="/geschaeftsanschrift-koeln">\n
Geschäftsadresse Köln\n
</a>\n
<a class="dropdown-item" href="/geschaeftsanschrift-duesseldorf">\n
Geschäftsadresse Düsseldorf\n
</a>\n
</div>\n
</li>\n
\n
\n
<li class="nav-item dropdown active mt-2 mr-2">\n
<a href="#" class="nav-link px-2 dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown">\n
Konferenzräume\n
</a>\n
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">\n
<a class="dropdown-item" href="/koeln-tagungsraeume-und-konferenzraeume">\n
Konferenzräume in Köln\n
</a>\n
<a class="dropdown-item" href="/duesseldorf-tagungsraeume-und-konferenzraeume">\n
Konferenzräume in Düsseldorf\n
</a>\n
\n
</div>\n
</li>\n
\n
\n
<li class="nav-item active mt-2 mr-2\n
">\n
<a href="/events" class="nav-link px-2">\n
Events\n
</a>\n
</li>\n
\n
\n
<li class="nav-item dropdown active mt-2 mr-2\n
">\n
<a href="#" class="nav-link px-2 dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown">\n
Über uns\n
</a>\n
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">\n
<a class="dropdown-item" href="/ueber-uns/">\n
Über STARTPLATZ\n
</a>\n
<a class="dropdown-item" href="/standorte">\n
Standorte\n
</a>\n
<a class="dropdown-item" href="/startplatz-team">\n
STARTPLATZ Team\n
</a>\n
<a class="dropdown-item" href="/partner">\n
Partner\n
</a>\n
<a class="dropdown-item" href="/startups">\n
Unsere Startups\n
</a>\n
<a class="dropdown-item" href="/referenzen">\n
Referenzen\n
</a>\n
<a class="dropdown-item" href="/karriere">\n
Karriere\n
</a>\n
\n
</div>\n
</li>\n
\n
<li class="nav-item active mt-2 mr-2">\n
<a class="nav-link px-2" href="/blog">\n
Blog\n
</a>\n
</li>\n
\n
<li class="nav-item mt-2 mr-2">\n
<link href="https://fonts.googleapis.com/icon?family=Material+Icons%7CMaterial+Icons+Outlined" rel="stylesheet">\n
<li class="nav-item dropdown active mt-2 mr-2">\n
<a href="#" class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown">\n
<span class="material-icons-outlined" style="font-size:20px; vertical-align: bottom; color:white">\n
language\n
</span>\n
</a>\n
<div class="dropdown-menu" style="width:70px; min-width:70px;" aria-labelledby="navbarDropdownMenuLink">\n
<a class="dropdown-item" href="/">\n
<img src="/bundles/startplatzstyle/images/german_language.png" height="20px;" alt="Deutsch">\n
</a>\n
\n
<a class="dropdown-item" href="/en">\n
<img src="/bundles/startplatzstyle/images/english_language.png" height="20px;" alt="English">\n
</a>\n
\n
<a class="dropdown-item" href="/fr/">\n
<img src="/bundles/startplatzstyle/images/french_language.png" height="20px;" alt="Français">\n
</a>\n
</div>\n
</li>\n
</li>\n
\n
<li class="nav-item active p-0 m-0 ml-lg-4 mt-2">\n
<a class="nav-link px-3"\n
style="background-color:#7ab800; border-radius: 5px;"\n
href="/login/">\n
Login\n
</a>\n
</li>\n
</ul>\n
</div>\n
</nav>\n
\n
<!-- homepage nav.homepage.bootstrap4 ends -->\n
<!-- menu ends -->\n
\n
<section class="" style="background-color: rgba(82,84,89,0.2)">\n
<div class="container ">\n
<div class="row mx-1 text-center" style="background: url('https://res.cloudinary.com/startplatz/image/upload/q_auto/v1631787956/Wordpress/Website_career-page-header.png');\n
background-repeat: no-repeat;\n
background-size: cover;\n
background-position: center center;\n
color: #fff;\n
height: 100%;\n
padding-top: 30px;\n
padding-bottom: 80px;">\n
<p> </p>\n
<div class="col-12 ">\n
<h4 style="font-size: 25px; font-family: 'Source Sans Pro', sans-serif;">Wir sind der <b>STARTPLATZ</b> für deine Gründeridee.</h4>\n
<strong style="font-size:36px">Wiki</strong>\n
<p>Die wichtigsten Begriffe der Startup-Szene.</p>\n
</div>\n
<p> </p>\n
</div>\n
</div>\n
</section>\n
\n
<section class="" style="background-color: rgba(82,84,89,0.2)">\n
<div class="overlay"></div>\n
<div class="container">\n
<div class="row px-3">\n
<div class="col-12 p-3" style="background:#ffffff;">\n
<div class="row">\n
<div class="container">\n
<div class="row">\n
<div class="col-12 col-md-8 page-main">\n
<div class="separator quadruple"></div>\n
\n
\n
<section>\n
<div class="section-header">\n
<h1>Michael Truell – Mitgründer von Cursor</h1>\n
</div>\n
</section>\n
\n
\n
<article id="post-78852" >\n
\n
\n
\t\t<h2>Michael Truell – Treibende Kraft hinter Cursor</h2>\n
<p>Michael Truell zählt zu den spannendsten Gründern der aktuellen KI-Ära. Als Mitgründer und CEO von Anysphere hat er mit Cursor einen Code-Editor geschaffen, der nicht einfach bestehende Werkzeuge ergänzt, sondern den Programmierprozess grundlegend neu definiert.</p>\n
<p>Sein Weg dorthin war alles andere als linear. Geprägt von mutigen Entscheidungen, Experimenten und einer klaren Haltung gegenüber Hype-Themen steht Truell für eine Generation von Gründern, die Technologie nicht nur verstehen, sondern auch neu denken wollen.</p>\n
<p><strong>Sein Ziel: KI soll nicht nur assistieren, sondern integraler Bestandteil des Programmierens werden.</strong></p>\n
<p> </p>\n
<h2>Vom MIT zum Startup – und der bewusste Bruch mit der klassischen Laufbahn</h2>\n
<p>Michael Truell und seine späteren Mitgründer – Sualeh Asif, Arvid Lunnemark und Aman Sanger – lernten sich am Massachusetts Institute of Technology (MIT) kennen. Alle vier verband eine tiefe Begeisterung für das Programmieren und das Potenzial von KI-Systemen. Dennoch entschieden sie sich früh gegen den traditionellen Weg.</p>\n
<p>Statt das Studium abzuschließen, verließen sie das MIT, um sich voll und ganz dem Aufbau ihres Unternehmens zu widmen. Für sie war klar: Wenn sie etwas wirklich verändern wollten, mussten sie sich ganz darauf konzentrieren. Theorie war gut – aber sie wollten bauen.</p>\n
<p> </p>\n
<h2>Von der falschen Idee zur richtigen Richtung</h2>\n
<p>Zu Beginn stand jedoch nicht Cursor auf dem Plan, sondern ein ganz anderer Ansatz. Die Gründer wollten KI im Bereich Maschinenbau einsetzen und entwickelten erste Modelle für eine CAD-Software mit intelligenter 3D-Autovervollständigung. Die Idee: Konstrukteure sollten durch Vorhersagen der nächsten Geometrieschritte entlastet werden.</p>\n
<p>Technisch war das spannend. Sie sammelten Erfahrungen im Umgang mit riesigen Modellen und bauten erste Trainingsinfrastruktur auf. Doch je tiefer sie einstiegen, desto deutlicher wurde: Ihnen fehlte die Begeisterung für das Thema. Sie waren Entwickler, keine Ingenieure. Der Funke sprang nicht über.</p>\n
<p>An einem bestimmten Punkt trafen sie eine klare Entscheidung. Statt sich weiter durch ein Projekt zu kämpfen, das ihnen nichts bedeutete, ließen sie CAD hinter sich. Die Energie wollten sie dorthin lenken, wo sie wirklich zu Hause waren – ins Programmieren.</p>\n
<p> </p>\n
<h2>Cursor: Der Neustart – und warum ein eigener Editor nötig war</h2>\n
<p>Zurück im vertrauten Terrain begannen sie mit einem neuen Ziel: eine Entwicklungsumgebung zu schaffen, in der KI nicht bloß Unterstützung liefert, sondern aktiver Teil des Workflows ist. Inspiriert durch erste Erfahrungen mit GitHub Copilot, aber auch frustriert von dessen Grenzen, wollten sie weiterdenken.</p>\n
<p>Eine ihrer frühesten und wichtigsten Produktentscheidungen war deshalb auch eine unbequeme: Statt ein Plugin für bestehende Editoren zu bauen, wollten sie einen eigenen Editor entwickeln. Denn nur so ließen sich die tiefen Veränderungen umsetzen, die sie für nötig hielten. Sie begannen mit einem komplett neuen Editor, wechselten später aber auf einen Fork von Visual Studio Code, um von der Stabilität der bestehenden Infrastruktur zu profitieren.</p>\n
<p> </p>\n
<h2>Vom ersten Launch zur Milliardenbewertung</h2>\n
<p>Nach nur drei Monaten ging Cursor in einer ersten öffentlichen Beta-Version online. Die darauffolgenden zwölf Monate nutzte das Team, um eng mit einer kleinen Gruppe zahlender Nutzer zu iterieren. Der Fokus lag auf sogenannten Power-Usern – Entwicklerinnen und Entwickler, die Cursor fast täglich nutzten.</p>\n
<p>Diese intensive Phase zahlte sich aus. Im Laufe von zwei Jahren entwickelte sich Cursor zu einem der gefragtesten Tools für professionelle Softwareentwicklung mit KI.</p>\n
<ul>\n
<li>2023: 8 Millionen US-Dollar Seed-Finanzierung</li>\n
<li>2024: Series A, Bewertung steigt auf 2,5 Milliarden US-Dollar</li>\n
<li>2025: Series C mit 10 Milliarden Bewertung, über 300 Millionen US-Dollar Jahresumsatz</li>\n
</ul>\n
<p> </p>\n
<h2>Neue Rollen für Entwicklerinnen und Entwickler</h2>\n
<p>In Interviews spricht Michael Truell immer wieder darüber, wie sich das Rollenverständnis im Engineering verändert. Für ihn steht fest: In einer Welt mit leistungsfähiger KI wird klassisches Codieren zunehmend automatisiert. Der Fokus verschiebt sich. Wer heute Software entwickelt, wird morgen eher Konzepte entwerfen, Anforderungen strukturieren und Produkte gestalten – weniger Zeilen schreiben, mehr denken.</p>\n
<p>Truell sieht Entwickler der Zukunft als Architekten. Die kreative Kontrolle bleibt beim Menschen, aber vieles vom Handwerklichen übernimmt die KI. Und genau dafür will er mit Cursor die passenden Werkzeuge schaffen.</p>\n
<p> </p>\n
\n
</article><!-- #post-## -->\n
\n
\n
\n
<div class="separator quadruple"></div>\n
</div>\n
<div class="col-12 col-md-4 page-aside">\n
\n
<div class="separator quadruple"></div>\n
\n
<section>\n
<style>\r\n
.tagsWiki a{border:1px solid #DDD;display:inline-block;color:#717171;background:#FFF;-webkit-box-shadow:0 1px 1px 0 rgba(180,180,180,0.1);box-shadow:0 1px 1px 0 rgba(180,180,180,0.1);-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out;border-radius:2px;margin:0 3px 6px 0;padding:2px 6px}\r\n
.tagsWiki a.primary{color:#FFF;background-color:#428BCA;border-color:#357EBD}\r\n
.tagsWiki a.success{color:#FFF;background-color:#5CB85C;border-color:#4CAE4C}\r\n
.tagsWiki a.info{color:#FFF;background-color:#5BC0DE;border-color:#46B8DA}\r\n
.tagsWiki a.warning{color:#FFF;background-color:#F0AD4E;border-color:#EEA236}\r\n
.tagsWiki a.danger{color:#FFF;background-color:#958282;border-color:#958282}\r\n
.tagsWiki a.web3{color:#FFF;background-color:#F13A59;border-color:#F13A59}\r\n
\r\n
</style>\r\n
<div class="section-header">\r\n
<center><h2>Startup Wiki</h2></center>\r\n
</div>\r\n
<div class="tagsWiki">\r\n
<a href="https://www.startplatz.de/startup-wiki/accelerator/" class="primary">Accelerator</a> <a href="https://www.startplatz.de/startup-wiki/business-model-canvas/" class="success">Business Model Canvas</a> <a href="https://www.startplatz.de/startup-wiki/coworking/" class="info">Coworking Space</a> <a href="https://www.startplatz.de/startup-wiki/crowdfunding/" class="danger">Crowdfunding</a> <a href="https://www.startplatz.de/crowdinvesting/" class="warning">Crowdinvesting</a> <a href="https://www.startplatz.de/startup-wiki/data-science-wissen/" class="success">Data Science</a><a href="https://www.startplatz.de/startup-wiki-design-thinking/" class="danger">Design Thinking</a> <a href="https://www.startplatz.de/disrupt-me/" class="info">Disrupt.me!</a> <a href="https://www.startplatz.de/startup-wiki/fintech/" class="primary">FinTech</a><a href="https://www.startplatz.de/google-adwords/" class="primary">Google Adwords</a> <a href="https://www.startplatz.de/growth-hacking/" class="warning">Growth Hacking</a><a href="https://www.startplatz.de/pen-paper-hackathon/" class="primary">Hackathon</a> \r\n
<a href="https://www.startplatz.de/startup-wiki/change-management/" class="info">Change Management</a> <a href="https://www.startplatz.de/startup-wiki/Industrie4.0" class="success">Industrie4.0</a> <a href="https://www.startplatz.de/startup-wiki/innovation/" class="success">Innovation</a> <a href="https://www.startplatz.de/startup-wiki/insurtech/" class="primary">InsurTech</a> <a href="https://www.startplatz.de/startup-wiki/lean-startup-methode/" class="info">Lean Startup</a> \r\n
<a href="https://www.startplatz.de/startup-wiki/web-3-0-nft-metaverse-glossar/" class="web3">Metaverse</a>\r\n
<a href="https://www.startplatz.de/startup-wiki/mvp/" class="danger">MVP</a> <a href="https://www.startplatz.de/new-work-die-zukunft-der-arbeitswelt/" class="warning">New Work</a> \r\n
<a href="https://www.startplatz.de/startup-wiki/web-3-0-nft-metaverse-glossar/" class="web3">NFT</a>\r\n
<a href="https://www.startplatz.de/was-ist-open-innovation/" class="success">Open Innovation</a><a href="https://www.startplatz.de/startup-wiki/pitch/" class="danger">Pitch</a> <a href="https://www.startplatz.de/en/startup-wiki/pitch-deck-guide/" class="success">Pitch Deck</a><a href="https://www.startplatz.de/startup-wiki/reverse-pitch/" class="info">Reverse Pitch</a> <a href="https://www.startplatz.de/startup-wiki/scrum/" class="primary">Scrum</a> <a href="https://www.startplatz.de/startup-wiki/social-entrepreneurship/" class="warning">Social Entrepreneurship</a><a href="https://www.startplatz.de/startup-wiki/startup-inkubator/" class="primary">Startup Inkubator</a> <a href="https://www.startplatz.de/startup-wiki/venture-capital/" class="success">Venture Capital</a>\r\n
<a href="https://www.startplatz.de/startup-wiki/web-3-0-nft-metaverse-glossar/" class="web3">Web 3.0</a>\r\n
</div>\r\n
\r\n
\n
</section>\n
\n
<div class="card bg-success pb-3">\n
<div class="banner-content text-center">\n
<h2 class="text-center">Memberships</h2>\n
<hr class="hr-green">\n
<p class="text">Werde Teil der größten Startup Community im Rheinland, bereits ab 10 €/Monat!</p>\n
<a href="/memberships" class="btn btn-success">Jetzt informieren!</a>\n
</div>\n
</div>\n
<div class="mt-3"></div>\n
<h2 class="text-center">Aktuelle Blog Posts</h2>\n
<div class="row">\n
<div class="col-12 text-center">\n
<a href="/blog" class="btn btn-outline-dark">\n
Alle anzeigen\n
</a>\n
</div>\n
</div>\n
\n
<div class="tweet mt-3">\n
<div class="card">\n
<div class="card-body">\n
<div class="row">\n
<div class="col-4">\n
<img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/06/Titelbild-Blogbeitrag-Blog-Website-10-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n
<div class="col-8">\n
<a class="stretched-link" href="https://www.staging.startplatz.de/jenseits-von-venture-capital-wie-gruender-in-der-fruehphase-unkonventionell-an-kapital-kommen/">Jenseits von Venture Capital: Wie Gründer in der Frühphase unkonventionell an Kapital kommen</a> <br> 3. Juni </div>\n
</div>\n
</div>\n
</div>\n
<div class="card">\n
<div class="card-body">\n
<div class="row">\n
<div class="col-4">\n
<img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/06/Titelbild-Blogbeitrag-Blog-Website-9-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n
<div class="col-8">\n
<a class="stretched-link" href="https://www.staging.startplatz.de/remote-work-vs-vor-ort-jobs-wo-startups-ansetzen-koennen/">Remote Work vs. Vor-Ort-Jobs: Wo Startups ansetzen können</a> <br> 3. Juni </div>\n
</div>\n
</div>\n
</div>\n
<div class="card">\n
<div class="card-body">\n
<div class="row">\n
<div class="col-4">\n
<img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/05/Titelbild-Blogbeitrag-Blog-Website-8-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n
<div class="col-8">\n
<a class="stretched-link" href="https://www.staging.startplatz.de/die-industrie-toleriert-keine-stillstaende-schnelle-rekrutierung-schafft-wettbewerbsvorteile/">Die Industrie toleriert keine Stillstände – schnelle Rekrutierung schafft Wettbewerbsvorteile</a> <br> 29. Mai </div>\n
</div>\n
</div>\n
</div>\n
<div class="card">\n
<div class="card-body">\n
<div class="row">\n
<div class="col-4">\n
<img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/05/Titelbild-Blogbeitrag-Blog-Website-7-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n
<div class="col-8">\n
<a class="stretched-link" href="https://www.staging.startplatz.de/wie-zentralbanken-den-goldmarkt-die-preisbildung-beeinflussen/">Wie Zentralbanken den Goldmarkt & die Preisbildung beeinflussen</a> <br> 20. Mai </div>\n
</div>\n
</div>\n
</div>\n
<div class="card">\n
<div class="card-body">\n
<div class="row">\n
<div class="col-4">\n
<img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/05/Titelbild-Blogbeitrag-Blog-Website-6-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n
<div class="col-8">\n
<a class="stretched-link" href="https://www.staging.startplatz.de/entdecke-neue-strategien-fuer-dein-startup/">Entdecke neue Strategien für dein Startup!</a> <br> 15. Mai </div>\n
</div>\n
</div>\n
</div>\n
\n
</div>\n
\n
<br />\n
\n
</div>\n
</div>\n
</div>\n
</div>\n
</div>\n
</div>\n
</div>\n
</section>\n
\n
\n
<!-- sp-connect footer starts -->\n
\n
<style type="text/css">\n
.ftco-section {\n
padding: 5em 0;\n
position: relative; }\n
@media (max-width: 767.98px) {\n
.ftco-section {\n
padding: 6em 0; } }\n
\n
.ftco-footer {\n
font-size: 16px;\n
background: #232931;\n
padding: 7em 0;\n
z-index: 0; }\n
.ftco-footer .ftco-footer-logo {\n
text-transform: uppercase;\n
letter-spacing: .1em; }\n
.ftco-footer .ftco-footer-widget h2 {\n
font-weight: normal;\n
color: #fff;\n
margin-bottom: 40px;\n
font-size: 22px;\n
font-weight: 600; }\n
.ftco-footer .ftco-footer-widget ul li {\n
margin-bottom: 10px; }\n
.ftco-footer .ftco-footer-widget ul li a {\n
color: rgba(255, 255, 255, 0.6); }\n
.ftco-footer .ftco-footer-widget ul li a span {\n
color: rgba(255, 255, 255, 0.6); }\n
.ftco-footer .ftco-footer-widget .btn-primary {\n
background: #fff !important;\n
border: 2px solid #fff !important; }\n
.ftco-footer .ftco-footer-widget .btn-primary:hover {\n
background: #fff;\n
border: 2px solid #fff !important; }\n
.ftco-footer p {\n
color: rgba(255, 255, 255, 0.7); }\n
.ftco-footer a {\n
color: rgba(255, 255, 255, 0.7); }\n
.ftco-footer a:hover {\n
color: #fff; }\n
.ftco-footer .ftco-heading-2 {\n
font-size: 17px;\n
font-weight: 400;\n
color: #000000; }\n
\n
.ftco-footer-social li {\n
list-style: none;\n
margin: 0 10px 0 0;\n
display: inline-block; }\n
.ftco-footer-social li a {\n
height: 50px;\n
width: 50px;\n
display: block;\n
float: left;\n
background: rgba(255, 255, 255, 0.1);\n
border-radius: 50%;\n
position: relative; }\n
.ftco-footer-social li a span {\n
position: absolute;\n
font-size: 26px;\n
top: 50%;\n
left: 50%;\n
-webkit-transform: translate(-50%, -50%);\n
-ms-transform: translate(-50%, -50%);\n
transform: translate(-50%, -50%); }\n
.ftco-footer-social li a:hover {\n
color: #fff; }\n
\n
.footer-small-nav > li {\n
display: inline-block; }\n
.footer-small-nav > li a {\n
margin: 0 10px 10px 0; }\n
.footer-small-nav > li a:hover, .footer-small-nav > li a:focus {\n
color: #033fff; }\n
\n
.media .ftco-icon {\n
width: 100px; }\n
.media .ftco-icon span {\n
color: #033fff; }\n
\n
\n
.spGreen h1,.spGreen h2,.spGreen h3,.spGreen h4,.spGreen h5,.spGreen h6 {color: rgba(122,184,8,1) !important;}\n
.spBgGreen {background-color: rgba(122,184,8,1) !important;color: white;}\n
\n
/* --- Corporate: spRed/ RED ---- */\n
.color-danger {\n
color:#8F2640;\n
}\n
\n
.spRed h1,.spRed h2,.spRed h3,.spRed h4,.spRed h5,.spRed h6 {color: rgba(143,38,64,1) !important;}\n
.bgSpRed { background-color: rgba(143,38,64,0.99)!important;}\n
\n
</style>\n
\n
<footer class="ftco-footer ftco-section">\n
<div class="container">\n
<div class="row my-2">\n
<div class="col-md-2">\n
<div class="ftco-footer-widget mb-3">\n
<h2 class="ftco-heading-2">Über STARTPLATZ</h2>\n
<p>Mit Standorten in Köln und Düsseldorf ist STARTPLATZ der größte Startup Inkubator und Accelerator in NRW</p>\n
\n
<ul class="ftco-footer-social list-unstyled float-md-left float-lft mt-3">\n
<li class="ftco-animate"><a href="https://twitter.com/startplatz"><span class="fab fa-twitter"></span></a></li>\n
<li class="ftco-animate"><a href="https://de-de.facebook.com/StartPlatz/"><span class="fab fa-facebook-f"></span></a></li>\n
<li class="ftco-animate"><a href="https://www.instagram.com/startplatz/"><span class="fab fa-instagram"></span></a></li>\n
</ul>\n
</div>\n
</div>\n
<div class="col-md-3">\n
<div class="ftco-footer-widget mb-4 ml-md-4">\n
<h2 class="ftco-heading-2 mb-2">Über diese Website</h2>\n
<ul class="list-unstyled">\n
<li><a href="/kontakt-aufnehmen"><span class="fas fa-long-arrow-alt-right mr-2"></span>Kontakt</a></li>\n
<li><a href="/wlan-am-startplatz-koeln"><span class="fas fa-long-arrow-alt-right mr-2"></span>WLAN am STARTPLATZ Koeln</a></li>\n
<li><a href="/pressebereich"><span class="fas fa-long-arrow-alt-right mr-2"></span>Presse</a></li>\n
<li><a href="/jobs"><span class="fas fa-long-arrow-alt-right mr-2"></span>Jobs</a></li>\n
<li><a href="/standorte"><span class="fas fa-long-arrow-alt-right mr-2"></span>Standorte</a></li>\n
<li><a href="/startplatz-archiv"><span class="fas fa-long-arrow-alt-right mr-2"></span>Archiv</a></li>\n
<li><a href="/startplatz-agb"><span class="fas fa-long-arrow-alt-right mr-2"></span>AGB</a></li>\n
<li><a href="/impressum"><span class="fas fa-long-arrow-alt-right mr-2"></span>Impressum</a></li>\n
<li><a href="/support"><span class="fas fa-long-arrow-alt-right mr-2"></span>Support</a></li>\n
<li><a href="/datenschutz"><span class="fas fa-long-arrow-alt-right mr-2"></span>Datenschutz</a></li>\n
</ul>\n
</div>\n
</div>\n
<div class="col-md-3">\n
<div class="ftco-footer-widget mb-4">\n
<h2 class="ftco-heading-2">Top Themen</h2>\n
<ul class="list-unstyled">\n
<li><a href="/coworking-koeln"><span class="fas fa-long-arrow-alt-right mr-2"></span>Coworking Köln</a></li>\n
<li><a href="/coworking-duesseldorf"><span class="fas fa-long-arrow-alt-right mr-2"></span>Coworking Düsseldorf</a></li>\n
<li><a href="/konferenzraum"><span class="fas fa-long-arrow-alt-right mr-2"></span>Konferenzraum mieten in Köln</a></li>\n
<li><a href="/duesseldorf-tagungsraeume-und-konferenzraeume/"><span class="fas fa-long-arrow-alt-right mr-2"></span>Konferenzraum mieten in Düsseldorf</a></li>\n
<li><a href="/startup-wiki/business-model-canvas"><span class="fas fa-long-arrow-alt-right mr-2"></span>Business Model Canvas</a></li>\n
<li><a href="/accelerator/"><span class="fas fa-long-arrow-alt-right mr-2"></span>STARTPLATZ Accelerator</a></li>\n
<li><a href="/corporate-innovation-page"><span class="fas fa-long-arrow-alt-right mr-2"></span>Corporate Innovation</a></li>\n
<li><a href="/startup-wiki/pitch"><span class="fas fa-long-arrow-alt-right mr-2"></span>Pitch</a></li>\n
<li><a href="/projektbuero-mieten"><span class="fas fa-long-arrow-alt-right mr-2"></span>Projektbüro mieten</a></li>\n
<li><a href="/meetingraeume-mieten"><span class="fas fa-long-arrow-alt-right mr-2"></span>Meetingräume mieten</a></li>\n
<li><a href="/coworker-werden"><span class="fas fa-long-arrow-alt-right mr-2"></span>Coworker werden</a></li>\n
<li><a href="/startup-membership"><span class="fas fa-long-arrow-alt-right mr-2"></span>Startup Firmenmitgliedschaft</a></li>\n
<li><a href="/karriere"><span class="fas fa-long-arrow-alt-right mr-2"></span>Startup Jobs am STARTPLATZ</a></li>\n
<li><a href="/digital-speed-networking"><span class="fas fa-long-arrow-alt-right mr-2"></span>Speed Networking</a></li>\n
<li><a href="/open-accelerator"><span class="fas fa-long-arrow-alt-right mr-2"></span>Inkubator</a></li>\n
<li><a href="/benefits/perks"><span class="fas fa-long-arrow-alt-right mr-2"></span>Software für Startups</a></li>\n
<li><a href="/startup-wiki"><span class="fas fa-long-arrow-alt-right mr-2"></span>Startup Wiki</a></li>\n
<li><a href="/sprechstunden"><span class="fas fa-long-arrow-alt-right mr-2"></span>Sprechstunden</a></li>\n
<li><a href="/mentoring"><span class="fas fa-long-arrow-alt-right mr-2"></span>Mentorinnen und Mentoren</a></li>\n
</ul>\n
</div>\n
</div>\n
<div class="col-md-4">\n
<div class="ftco-footer-widget mb-4">\n
<h2 class="ftco-heading-2">Kontakt</h2>\n
<div class="row">\n
<div class="col-6">\n
<p class="address city">Köln</p>\n
<p class="address">Im Mediapark 5 <br>50670 Köln</p>\n
<p class="address mb-0">info@startplatz.de</p>\n
<p class="address">+49 221 975 802 00</p>\n
</div>\n
<div class="col-6">\n
<p class="address city">Düsseldorf</p>\n
<p class="address">Speditionstraße 15a <br>40221 Düsseldorf</p>\n
<p class="address mb-0">info@startplatz.de</p>\n
<p class="address">+49 211 936 725 20</p>\n
</div>\n
</div>\n
<div class="newsletter">\n
<h2 class="mb-0">Newsletter</h2>\n
<p>Immer auf dem Laufenden bleiben?\n
<br>Erhalte regelmäßig alle News aus dem STARTPLATZ, zu Workshops und Events.</p>\n
\n
<!-- Begin MailChimp Signup Form -->\n
<div id="mc_embed_signup">\n
<form id="mc-embedded-subscribe-form" class="validate" action="https://startplatz.us5.list-manage.com/subscribe?u=8a2b498caca4323b774191382&id=be73f77d94" method="post" name="mc-embedded-subscribe-form" novalidate="" target="_blank">\n
<div id="mc_embed_signup_scroll form-group email-wrapper">\n
<button type="submit" class="btn btn-success ml-2">Hier Abonnieren</button>\n
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->\n
<div style="position: absolute; left: -5000px;"><input tabindex="-1" name="b_8a2b498caca4323b774191382_51dae9d56a" type="text" value="" /></div>\n
<div class="clear"></div>\n
</div>\n
</form></div>\n
<!--End mc_embed_signup-->\n
\n
</div>\n
<div class="row">\n
<div class="col-12 mt-4">\n
<div class="pe-richsnippets"></div>\n
<script type="text/javascript" src="https://www.provenexpert.com/widget/richsnippet.js?u=1HQBkRmo1xQpmqGB1xmA5DGAlMwpkxQZ&v=2" async></script>\n
</div>\n
</div>\n
</div>\n
</div>\n
</div>\n
\n
<div class="row">\n
<div class="col-md-12 text-center">\n
\n
<p>\n
Copyright ©<script>document.write(new Date().getFullYear());</script> All rights reserved\n
</p>\n
</div>\n
</div>\n
</div>\n
</footer>\n
\n
<!-- sp-connect footer ends -->\n
\n
<!-- wp_footer starts -->\n
<script type="speculationrules">\n
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/startplatz/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}\n
</script>\n
<script async>(function(s,u,m,o,j,v){j=u.createElement(m);v=u.getElementsByTagName(m)[0];j.async=1;j.src=o;j.dataset.sumoSiteId='39f60b00513044004a8fe0004ce6fc0099bffb000c2cd200cfc8f4006d6fae00';j.dataset.sumoPlatform='wordpress';v.parentNode.insertBefore(j,v)})(window,document,'script','//load.sumome.com/');</script> <script type="application/javascript">\r\n
const ajaxURL = "https://www.staging.startplatz.de/wp-admin/admin-ajax.php";\r\n
\r\n
function sumo_add_woocommerce_coupon(code) {\r\n
jQuery.post(ajaxURL, {\r\n
action: 'sumo_add_woocommerce_coupon',\r\n
code: code,\r\n
});\r\n
}\r\n
\r\n
function sumo_remove_woocommerce_coupon(code) {\r\n
jQuery.post(ajaxURL, {\r\n
action: 'sumo_remove_woocommerce_coupon',\r\n
code: code,\r\n
});\r\n
}\r\n
\r\n
function sumo_get_woocommerce_cart_subtotal(callback) {\r\n
jQuery.ajax({\r\n
method: 'POST',\r\n
url: ajaxURL,\r\n
dataType: 'html',\r\n
data: {\r\n
action: 'sumo_get_woocommerce_cart_subtotal',\r\n
},\r\n
success: function (subtotal) {\r\n
return callback(null, subtotal);\r\n
},\r\n
error: function (err) {\r\n
return callback(err, 0);\r\n
}\r\n
});\r\n
}\r\n
</script>\r\n
<script id="wp-emoji-settings" type="application/json">\n
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.staging.startplatz.de/wp-includes/js/wp-emoji-release.min.js?ver=6.9.4"}}\n
</script>\n
<script type="module">\n
/* <![CDATA[ */\n
/*! This file is auto-generated */\n
const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))});\n
//# sourceURL=https://www.staging.startplatz.de/wp-includes/js/wp-emoji-loader.min.js\n
/* ]]> */\n
</script>\n
<!-- wp_footer ends -->\n
<!-- startplatz default js starts -->\n
<!-- Optional JavaScript -->\n
<!-- jQuery first, then Popper.js, then Bootstrap JS -->\n
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>\n
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>\n
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script><!-- startplatz default js ends -->\n
\n
\n
<!-- START of Symfony Web Debug Toolbar --><div class="sf-toolbar sf-toolbar-opened" role="region" aria-label="Symfony Web Debug Toolbar" data-frankenphp-hot-reload-preserve> <div id="sfwdt1d6189"> <div id="sfToolbarClearer-1d6189" class="sf-toolbar-clearer"></div><div id="sfToolbarMainContent-1d6189" class="sf-toolbarreset notranslate clear-fix" data-no-turbolink data-turbo="false"> <div class="sf-toolbar-block sf-toolbar-block-request sf-toolbar-status-normal " > <a href="http://www.staging.startplatz.de/_profiler/1d6189?panel=request"> <div class="sf-toolbar-icon"> <svg xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Symfony" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .9C5.8.9.9 5.8.9 12a11 11 0 1 0 22.2 0A11 11 0 0 0 12 .9zm6.5 6c-.6 0-.9-.3-.9-.8 0-.2 0-.4.2-.6l.2-.4c0-.3-.5-.4-.6-.4-1.8.1-2.3 2.5-2.7 4.4l-.2 1c1 .2 1.8 0 2.2-.3.6-.4-.2-.7-.1-1.2.1-.3.5-.5.7-.6.5 0 .7.5.7.9 0 .7-1 1.8-3 1.8l-.6-.1-.6 2.4c-.4 1.6-.8 3.8-2.4 5.7-1.4 1.7-2.9 1.9-3.5 1.9-1.2 0-1.9-.6-2-1.5 0-.8.7-1.3 1.2-1.3.6 0 1.1.5 1.1 1s-.2.6-.4.6c-.1.1-.3.2-.3.4 0 .1.1.3.4.3.5 0 .8-.3 1.1-.5 1.2-.9 1.6-2.7 2.2-5.7l.1-.7.7-3.2c-.8-.6-1.3-1.4-2.4-1.7-.6-.1-1.1.1-1.5.5-.4.5-.2 1.1.2 1.5l.7.6c.7.8 1.2 1.6 1 2.5-.3 1.5-2 2.6-4 1.9-1.8-.6-2-1.8-1.8-2.5.2-.6.6-.7 1.1-.6.5.2.6.7.6 1.2l-.1.3c-.2.1-.3.3-.3.4-.1.4.4.6.7.7.7.3 1.6-.2 1.8-.8a1 1 0 0 0-.4-1.1l-.7-.8c-.4-.4-1.1-1.4-.7-2.6.1-.5.4-.9.7-1.3a4 4 0 0 1 2.8-.6c1.2.4 1.8 1.1 2.6 1.8.5-1.2 1-2.4 1.8-3.5.9-.9 1.9-1.6 3.1-1.7 1.3.2 2.2.7 2.2 1.6 0 .4-.2 1.1-.9 1.1z"/></svg> <span class="sf-toolbar-value sf-toolbar-ajax-request-counter"> Loading… </span> </div> </a> <div class="sf-toolbar-info"> <div class="sf-toolbar-info-piece"> <b>Loading the web debug toolbar…</b> </div> <div class="sf-toolbar-info-piece"> Attempt #<span id="sfLoadCounter-1d6189"></span> </div> <div class="sf-toolbar-info-piece"> <b> <button class="sf-cancel-button" type="button" id="sfLoadCancel-1d6189" title="Cancel loading">Cancel</button> </b> </div> </div></div> <button class="sf-toolbar-toggle-button" type="button" id="sfToolbarToggleButton-1d6189" accesskey="D" aria-expanded="true" aria-controls="sfToolbarMainContent-1d6189" aria-label="Toggle Symfony Toolbar"> <i class="sf-toolbar-icon-opened" title="Close Toolbar"><svg xmlns="http://www.w3.org/2000/svg" data-icon-name="icon-tabler-x" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line></svg></i> <i class="sf-toolbar-icon-closed" title="Open Toolbar"><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Symfony" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12 .9C5.8.9.9 5.8.9 12a11 11 0 1 0 22.2 0A11 11 0 0 0 12 .9zm6.5 6c-.6 0-.9-.3-.9-.8 0-.2 0-.4.2-.6l.2-.4c0-.3-.5-.4-.6-.4-1.8.1-2.3 2.5-2.7 4.4l-.2 1c1 .2 1.8 0 2.2-.3.6-.4-.2-.7-.1-1.2.1-.3.5-.5.7-.6.5 0 .7.5.7.9 0 .7-1 1.8-3 1.8l-.6-.1-.6 2.4c-.4 1.6-.8 3.8-2.4 5.7-1.4 1.7-2.9 1.9-3.5 1.9-1.2 0-1.9-.6-2-1.5 0-.8.7-1.3 1.2-1.3.6 0 1.1.5 1.1 1s-.2.6-.4.6c-.1.1-.3.2-.3.4 0 .1.1.3.4.3.5 0 .8-.3 1.1-.5 1.2-.9 1.6-2.7 2.2-5.7l.1-.7.7-3.2c-.8-.6-1.3-1.4-2.4-1.7-.6-.1-1.1.1-1.5.5-.4.5-.2 1.1.2 1.5l.7.6c.7.8 1.2 1.6 1 2.5-.3 1.5-2 2.6-4 1.9-1.8-.6-2-1.8-1.8-2.5.2-.6.6-.7 1.1-.6.5.2.6.7.6 1.2l-.1.3c-.2.1-.3.3-.3.4-.1.4.4.6.7.7.7.3 1.6-.2 1.8-.8a1 1 0 0 0-.4-1.1l-.7-.8c-.4-.4-1.1-1.4-.7-2.6.1-.5.4-.9.7-1.3a4 4 0 0 1 2.8-.6c1.2.4 1.8 1.1 2.6 1.8.5-1.2 1-2.4 1.8-3.5.9-.9 1.9-1.6 3.1-1.7 1.3.2 2.2.7 2.2 1.6 0 .4-.2 1.1-.9 1.1z"/></svg></i> </button></div> </div> <link rel="stylesheet" nonce="0286f2d681e8f2a847aeeef54ea67b66" href="http://www.staging.startplatz.de/_wdt/styles" /> <script nonce="a55bfc85e341199c4bdabfea29e4b52c">/*<![CDATA[*/ if (typeof Sfjs === 'undefined' || typeof Sfjs.loadToolbar === 'undefined') { Sfjs = (function() { "use strict"; if ('classList' in document.documentElement) { var hasClass = function (el, cssClass) { return el.classList.contains(cssClass); }; var removeClass = function(el, cssClass) { el.classList.remove(cssClass); }; var addClass = function(el, cssClass) { el.classList.add(cssClass); }; var toggleClass = function(el, cssClass) { el.classList.toggle(cssClass); }; } else { var hasClass = function (el, cssClass) { return el.className.match(new RegExp('\\b' + cssClass + '\\b')); }; var removeClass = function(el, cssClass) { el.className = el.className.replace(new RegExp('\\b' + cssClass + '\\b'), ' '); }; var addClass = function(el, cssClass) { if (!hasClass(el, cssClass)) { el.className += " " + cssClass; } }; var toggleClass = function(el, cssClass) { hasClass(el, cssClass) ? removeClass(el, cssClass) : addClass(el, cssClass); }; } var noop = function() {}; var profilerStorageKey = 'symfony/profiler/'; var addEventListener; var el = document.createElement('div'); if (!('addEventListener' in el)) { addEventListener = function (element, eventName, callback) { element.attachEvent('on' + eventName, callback); }; } else { addEventListener = function (element, eventName, callback) { element.addEventListener(eventName, callback, false); }; } var request = function(url, onSuccess, onError, payload, options, tries) { url = new URL(url); url.searchParams.set('XDEBUG_IGNORE', '1'); url = url.toString(); var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); options = options || {}; options.retry = options.retry || false; tries = tries || 1; /* this delays for 125, 375, 625, 875, and 1000, ... */ var delay = tries < 5 ? (tries - 0.5) * 250 : 1000; xhr.open(options.method || 'GET', url, true); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.onreadystatechange = function(state) { if (4 !== xhr.readyState) { return null; } if (xhr.status == 404 && options.retry && !options.stop) { setTimeout(function() { if (options.stop) { return; } request(url, onSuccess, onError, payload, options, tries + 1); }, delay); return null; } if (200 === xhr.status) { (onSuccess || noop)(xhr); } else { (onError || noop)(xhr); } }; if (options.onSend) { options.onSend(tries); } xhr.send(payload || ''); }; var getPreference = function(name) { if (!window.localStorage) { return null; } return localStorage.getItem(profilerStorageKey + name); }; var setPreference = function(name, value) { if (!window.localStorage) { return null; } localStorage.setItem(profilerStorageKey + name, value); }; var requestStack = []; var extractHeaders = function(xhr, stackElement) { /* Here we avoid to call xhr.getResponseHeader in order to */ /* prevent polluting the console with CORS security errors */ var allHeaders = xhr.getAllResponseHeaders(); var ret; if (ret = allHeaders.match(/^x-debug-token:\s+(.*)$/im)) { stackElement.profile = ret[1]; } if (ret = allHeaders.match(/^x-debug-token-link:\s+(.*)$/im)) { stackElement.profilerUrl = ret[1]; } if (ret = allHeaders.match(/^Symfony-Debug-Toolbar-Replace:\s+(.*)$/im)) { stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = '1' === ret[1]; } }; var successStreak = 4; var pendingRequests = 0; var renderAjaxRequests = function() { var requestCounter = document.querySelector('.sf-toolbar-ajax-request-counter'); if (!requestCounter) { return; } requestCounter.textContent = requestStack.length; var infoSpan = document.querySelector(".sf-toolbar-ajax-info"); if (infoSpan) { infoSpan.textContent = requestStack.length + ' AJAX request' + (requestStack.length !== 1 ? 's' : ''); } var ajaxToolbarPanel = document.querySelector('.sf-toolbar-block-ajax'); if (requestStack.length) { ajaxToolbarPanel.style.display = ''; } else { ajaxToolbarPanel.style.display = 'none'; } if (pendingRequests > 0) { addClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); } else if (successStreak < 4) { addClass(ajaxToolbarPanel, 'sf-toolbar-status-red'); removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); } else { removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); removeClass(ajaxToolbarPanel, 'sf-toolbar-status-red'); } }; var startAjaxRequest = function(index) { var tbody = document.querySelector('.sf-toolbar-ajax-request-list'); if (!tbody) { return; } var nbOfAjaxRequest = tbody.rows.length; if (nbOfAjaxRequest >= 100) { tbody.deleteRow(0); } var request = requestStack[index]; pendingRequests++; var row = document.createElement('tr'); request.DOMNode = row; var requestNumberCell = document.createElement('td'); requestNumberCell.textContent = index + 1; row.appendChild(requestNumberCell); var profilerCell = document.createElement('td'); profilerCell.textContent = 'n/a'; row.appendChild(profilerCell); var methodCell = document.createElement('td'); methodCell.textContent = request.method; row.appendChild(methodCell); var typeCell = document.createElement('td'); typeCell.textContent = request.type; row.appendChild(typeCell); var statusCodeCell = document.createElement('td'); var statusCode = document.createElement('span'); statusCode.textContent = 'n/a'; statusCodeCell.appendChild(statusCode); row.appendChild(statusCodeCell); var pathCell = document.createElement('td'); pathCell.className = 'sf-ajax-request-url'; if ('GET' === request.method) { var pathLink = document.createElement('a'); pathLink.setAttribute('href', request.url); pathLink.textContent = request.url; pathCell.appendChild(pathLink); } else { pathCell.textContent = request.url; } pathCell.setAttribute('title', request.url); row.appendChild(pathCell); var durationCell = document.createElement('td'); durationCell.className = 'sf-ajax-request-duration'; durationCell.textContent = 'n/a'; row.appendChild(durationCell); request.liveDurationHandle = setInterval(function() { durationCell.textContent = (new Date() - request.start) + ' ms'; }, 100); row.className = 'sf-ajax-request sf-ajax-request-loading'; tbody.insertBefore(row, null); var toolbarInfo = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info'); toolbarInfo.scrollTop = toolbarInfo.scrollHeight; renderAjaxRequests(); }; var finishAjaxRequest = function(index) { var request = requestStack[index]; clearInterval(request.liveDurationHandle); if (!request.DOMNode) { return; } if (request.toolbarReplace && !request.toolbarReplaceFinished && request.profile) { /* Flag as complete because finishAjaxRequest can be called multiple times. */ request.toolbarReplaceFinished = true; /* Search up through the DOM to find the toolbar's container ID. */ for (var elem = request.DOMNode; elem && elem !== document; elem = elem.parentNode) { if (elem.id.match(/^sfwdt/)) { Sfjs.loadToolbar(elem.id.replace(/^sfwdt/, ''), request.profile); break; } } } if (pendingRequests > 0) { pendingRequests--; } var row = request.DOMNode; /* Unpack the children from the row */ var profilerCell = row.children[1]; var methodCell = row.children[2]; var statusCodeCell = row.children[4]; var statusCodeElem = statusCodeCell.children[0]; var durationCell = row.children[6]; if (request.error) { row.className = 'sf-ajax-request sf-ajax-request-error'; methodCell.className = 'sf-ajax-request-error'; successStreak = 0; } else { row.className = 'sf-ajax-request sf-ajax-request-ok'; successStreak++; } if (request.statusCode) { if (request.statusCode < 300) { statusCodeElem.setAttribute('class', 'sf-toolbar-status'); } else if (request.statusCode < 400) { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-yellow'); } else { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red'); } statusCodeElem.textContent = request.statusCode; } else { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red'); } if (request.duration) { durationCell.textContent = request.duration + ' ms'; } if (request.profilerUrl) { profilerCell.textContent = ''; var profilerLink = document.createElement('a'); profilerLink.setAttribute('href', request.profilerUrl); profilerLink.textContent = request.profile; profilerCell.appendChild(profilerLink); } renderAjaxRequests(); }; if (window.EventSource) { var oldEventSource = window.EventSource; function patchedEventSource(url, options) { var es = new oldEventSource(url, options); if (!url.toString().match(new RegExp("^\/((index|app(_[\\w]+)?)\\.php\/)?_wdt"))) { var stackElement = { error: false, url: url, method: 'GET', type: 'event-stream', start: new Date() }; var idx = requestStack.push(stackElement) - 1; startAjaxRequest(idx); addEventListener(es, 'error', function () { stackElement.error = true; finishAjaxRequest(idx); }); addEventListener(es, 'open', function () { stackElement.statusCode = 200; stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = true; }); addEventListener(es, 'symfony:debug:started', function (event) { var items = event.data.split('\n'); stackElement.profile = items[0]; stackElement.profilerUrl = items[1]; }); addEventListener(es, 'symfony:debug:error', function (event) { stackElement.error = true; stackElement.statusCode = event.data; finishAjaxRequest(idx); }); addEventListener(es, 'symfony:debug:finished', function () { stackElement.duration = new Date() - stackElement.start; stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = true; finishAjaxRequest(idx); }); } return es; }; Object.defineProperties(patchedEventSource, Object.getOwnPropertyDescriptors(oldEventSource)); window.EventSource = patchedEventSource; } if (window.fetch && window.fetch.polyfill === undefined) { var oldFetch = window.fetch; window.fetch = function () { var promise = oldFetch.apply(this, arguments); var url = arguments[0]; var params = arguments[1]; var paramType = Object.prototype.toString.call(arguments[0]); if (paramType === '[object Request]') { url = arguments[0].url; params = { method: arguments[0].method, credentials: arguments[0].credentials, headers: arguments[0].headers, mode: arguments[0].mode, redirect: arguments[0].redirect }; } else { url = String(url); } if (!url.match(new RegExp("^\/((index|app(_[\\w]+)?)\\.php\/)?_wdt"))) { var method = 'GET'; if (params && params.method !== undefined) { method = params.method; } var stackElement = { error: false, url: url, method: method, type: 'fetch', start: new Date() }; var idx = requestStack.push(stackElement) - 1; promise.then(function (r) { stackElement.duration = new Date() - stackElement.start; stackElement.error = r.status < 200 || r.status >= 400; stackElement.statusCode = r.status; stackElement.profile = r.headers.get('x-debug-token'); stackElement.profilerUrl = r.headers.get('x-debug-token-link'); stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = '1' === r.headers.get('Symfony-Debug-Toolbar-Replace'); finishAjaxRequest(idx); }, function (e){ stackElement.error = true; finishAjaxRequest(idx); }); startAjaxRequest(idx); } return promise; }; } if (window.XMLHttpRequest && XMLHttpRequest.prototype.addEventListener) { var proxied = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { var self = this; /* prevent logging AJAX calls to static and inline files, like templates */ var path = url; if (url.slice(0, 1) === '/') { if (0 === url.indexOf('')) { path = url.slice(0); } } else if (0 === url.indexOf('http\u003A\/\/www.staging.startplatz.de')) { path = url.slice(32); } if (!path.match(new RegExp("^\/((index|app(_[\\w]+)?)\\.php\/)?_wdt"))) { var stackElement = { error: false, url: url, method: method, type: 'xhr', start: new Date() }; var idx = requestStack.push(stackElement) - 1; this.addEventListener('readystatechange', function() { if (self.readyState == 4) { stackElement.duration = new Date() - stackElement.start; stackElement.error = self.status < 200 || self.status >= 400; stackElement.statusCode = self.status; extractHeaders(self, stackElement); finishAjaxRequest(idx); } }, false); startAjaxRequest(idx); } proxied.apply(this, Array.prototype.slice.call(arguments)); }; } return { hasClass: hasClass, removeClass: removeClass, addClass: addClass, toggleClass: toggleClass, getPreference: getPreference, setPreference: setPreference, addEventListener: addEventListener, request: request, renderAjaxRequests: renderAjaxRequests, getSfwdt: function(token) { return document.getElementById('sfwdt' + token); }, load: function(selector, url, onSuccess, onError, options) { var el = document.getElementById(selector); if (el && el.getAttribute('data-sfurl') !== url) { request( url, function(xhr) { el.innerHTML = xhr.responseText; el.setAttribute('data-sfurl', url); removeClass(el, 'loading'); var pending = pendingRequests; for (var i = 0; i < requestStack.length; i++) { startAjaxRequest(i); if (requestStack[i].duration || requestStack[i].error) { finishAjaxRequest(i); } } /* Revert the pending state in case there was a start called without a finish above. */ pendingRequests = pending; (onSuccess || noop)(xhr, el); }, function(xhr) { (onError || noop)(xhr, el); }, '', options ); } return this; }, showToolbar: function(token) { var sfwdt = this.getSfwdt(token); var toggleButton = document.querySelector(`#sfToolbarToggleButton-${token}`); if ('closed' === getPreference('toolbar/displayState')) { addClass(sfwdt.parentNode, 'sf-toolbar-closed'); removeClass(sfwdt.parentNode, 'sf-toolbar-opened'); if (toggleButton) { toggleButton.setAttribute('aria-expanded', 'false'); } } else { addClass(sfwdt.parentNode, 'sf-toolbar-opened'); removeClass(sfwdt.parentNode, 'sf-toolbar-closed'); if (toggleButton) { toggleButton.setAttribute('aria-expanded', 'true'); } } }, hideToolbar: function(token) { var sfwdt = this.getSfwdt(token); var toggleButton = document.querySelector(`#sfToolbarToggleButton-${token}`); addClass(sfwdt.parentNode, 'sf-toolbar-closed'); removeClass(sfwdt.parentNode, 'sf-toolbar-opened'); if (toggleButton) { toggleButton.setAttribute('aria-expanded', 'false'); } }, initToolbar: function(token) { this.showToolbar(token); var toggleButton = document.querySelector(`#sfToolbarToggleButton-${token}`); addEventListener(toggleButton, 'click', function (event) { event.preventDefault(); const newState = 'closed' === getPreference('toolbar/displayState') ? 'opened' : 'closed'; setPreference('toolbar/displayState', newState); 'opened' === newState ? Sfjs.showToolbar(token) : Sfjs.hideToolbar(token); }); }, loadToolbar: function(token, newToken) { var that = this; var triesCounter = document.getElementById('sfLoadCounter-' + token); var options = { retry: true, onSend: function (count) { if (count === 3) { that.initToolbar(token); } if (triesCounter) { triesCounter.textContent = count; } }, }; var cancelButton = document.getElementById('sfLoadCancel-' + token); if (cancelButton) { addEventListener(cancelButton, 'click', function (event) { event.preventDefault(); options.stop = true; that.hideToolbar(token); }); } newToken = (newToken || token); this.load( 'sfwdt' + token, 'http\u003A\/\/www.staging.startplatz.de\/_wdt\/xxxxxx'.replace(/xxxxxx/, newToken), function(xhr, el) { var toolbarContent = document.getElementById('sfToolbarMainContent-' + newToken); /* Do nothing in the edge case where the toolbar has already been replaced with a new one */ if (!toolbarContent) { return; } /* Replace the ID, it has to match the new token */ toolbarContent.parentElement.id = 'sfwdt' + newToken; /* Evaluate in global scope scripts embedded inside the toolbar */ var i, scripts = [].slice.call(el.querySelectorAll('script')); for (i = 0; i < scripts.length; ++i) { if (scripts[i].firstChild) { eval.call({}, scripts[i].firstChild.nodeValue); } } el.style.display = -1 !== xhr.responseText.indexOf('sf-toolbarreset') ? 'block' : 'none'; if (el.style.display == 'none') { return; } that.initToolbar(newToken); /* Handle toolbar-info position */ var toolbarBlocks = [].slice.call(el.querySelectorAll('.sf-toolbar-block')); for (i = 0; i < toolbarBlocks.length; ++i) { toolbarBlocks[i].onmouseover = function () { var toolbarInfo = this.querySelectorAll('.sf-toolbar-info')[0]; var pageWidth = document.body.clientWidth; var elementWidth = toolbarInfo.offsetWidth; var leftValue = (elementWidth + this.offsetLeft) - pageWidth; var rightValue = (elementWidth + (pageWidth - this.offsetLeft)) - pageWidth; /* Reset right and left value, useful on window resize */ toolbarInfo.style.right = ''; toolbarInfo.style.left = ''; if (elementWidth > pageWidth) { toolbarInfo.style.left = 0; } else if (leftValue > 0 && rightValue > 0) { toolbarInfo.style.right = (rightValue * -1) + 'px'; } else if (leftValue < 0) { toolbarInfo.style.left = 0; } else { toolbarInfo.style.right = '0px'; } }; } renderAjaxRequests(); addEventListener(document.querySelector('.sf-toolbar-ajax-clear'), 'click', function() { requestStack = []; renderAjaxRequests(); successStreak = 4; document.querySelector('.sf-toolbar-ajax-request-list').innerHTML = ''; }); addEventListener(document.querySelector('.sf-toolbar-block-ajax'), 'mouseenter', function (event) { var elem = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info'); elem.scrollTop = elem.scrollHeight; }); addEventListener(document.querySelector('.sf-toolbar-block-ajax > .sf-toolbar-icon'), 'click', function (event) { event.preventDefault(); toggleClass(this.parentNode, 'hover'); }); var dumpInfo = document.querySelector('.sf-toolbar-block-dump .sf-toolbar-info'); if (null !== dumpInfo) { addEventListener(dumpInfo, 'sfbeforedumpcollapse', function () { dumpInfo.style.minHeight = dumpInfo.getBoundingClientRect().height+'px'; }); addEventListener(dumpInfo, 'mouseleave', function () { dumpInfo.style.minHeight = ''; }); } }, function(xhr) { if (xhr.status !== 0 && !options.stop) { var sfwdt = that.getSfwdt(token); sfwdt.innerHTML = '\ <div class="sf-toolbarreset notranslate">\ <div class="sf-toolbar-icon"><svg width="26" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 26 28" enable-background="new 0 0 26 28" xml:space="preserve"><path fill="#FFFFFF" d="M13 0C5.8 0 0 5.8 0 13c0 7.2 5.8 13 13 13c7.2 0 13-5.8 13-13C26 5.8 20.2 0 13 0z M20 7.5 c-0.6 0-1-0.3-1-0.9c0-0.2 0-0.4 0.2-0.6c0.1-0.3 0.2-0.3 0.2-0.4c0-0.3-0.5-0.4-0.7-0.4c-2 0.1-2.5 2.7-2.9 4.8l-0.2 1.1 c1.1 0.2 1.9 0 2.4-0.3c0.6-0.4-0.2-0.8-0.1-1.3C18 9.2 18.4 9 18.7 8.9c0.5 0 0.8 0.5 0.8 1c0 0.8-1.1 2-3.3 1.9 c-0.3 0-0.5 0-0.7-0.1L15 14.1c-0.4 1.7-0.9 4.1-2.6 6.2c-1.5 1.8-3.1 2.1-3.8 2.1c-1.3 0-2.1-0.6-2.2-1.6c0-0.9 0.8-1.4 1.3-1.4 c0.7 0 1.2 0.5 1.2 1.1c0 0.5-0.2 0.6-0.4 0.7c-0.1 0.1-0.3 0.2-0.3 0.4c0 0.1 0.1 0.3 0.4 0.3c0.5 0 0.9-0.3 1.2-0.5 c1.3-1 1.7-2.9 2.4-6.2l0.1-0.8c0.2-1.1 0.5-2.3 0.8-3.5c-0.9-0.7-1.4-1.5-2.6-1.8c-0.8-0.2-1.3 0-1.7 0.4C8.4 10 8.6 10.7 9 11.1 l0.7 0.7c0.8 0.9 1.3 1.7 1.1 2.7c-0.3 1.6-2.1 2.8-4.3 2.1c-1.9-0.6-2.2-1.9-2-2.7c0.2-0.6 0.7-0.8 1.2-0.6 c0.5 0.2 0.7 0.8 0.6 1.3c0 0.1 0 0.1-0.1 0.3C6 15 5.9 15.2 5.9 15.3c-0.1 0.4 0.4 0.7 0.8 0.8c0.8 0.3 1.7-0.2 1.9-0.9 c0.2-0.6-0.2-1.1-0.4-1.2l-0.8-0.9c-0.4-0.4-1.2-1.5-0.8-2.8c0.2-0.5 0.5-1 0.9-1.4c1-0.7 2-0.8 3-0.6c1.3 0.4 1.9 1.2 2.8 1.9 c0.5-1.3 1.1-2.6 2-3.8c0.9-1 2-1.7 3.3-1.8C20 4.8 21 5.4 21 6.3C21 6.7 20.8 7.5 20 7.5z"/></svg></div>\ An error occurred while loading the web debug toolbar. <a href="http\u003A\/\/www.staging.startplatz.de\/_profiler\/' + newToken + '">Open the web profiler.</a>\ </div>\ '; sfwdt.parentElement.setAttribute('class', 'sf-toolbar sf-error-toolbar'); } }, options ); return this; }, toggle: function(selector, elOn, elOff) { var tmp = elOn.style.display, el = document.getElementById(selector); elOn.style.display = elOff.style.display; elOff.style.display = tmp; if (el) { el.style.display = 'none' === tmp ? 'none' : 'block'; } return this; }, }; })(); } Sfjs.loadToolbar('1d6189'); /*]]>*/</script></div><!-- END of Symfony Web Debug Toolbar -->\n
</body>\n
</html>\n
"""
#version: "1.1"
#statusCode: 200
#statusText: "OK"
#charset: "UTF-8"
-sentHeaders: ? array
} |