DefaultController :: menuAction
Request
GET Parameters
| Key | Value |
|---|---|
| _path | "_format=html&_locale=en&_controller=App%5CStartPlatz%5CBundle%5CWebsiteBundle%5CController%5CDefaultController%3A%3AmenuAction" |
POST Parameters
No POST parameters
Uploaded Files
No files were uploaded
Request Attributes
| Key | Value |
|---|---|
| _controller | "App\StartPlatz\Bundle\WebsiteBundle\Controller\DefaultController::menuAction" |
| _format | "html" |
| _locale | "en" |
| _stopwatch_token | "cb3bec" |
| permalink | "https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo" |
Request Headers
| Header | Value |
|---|---|
| accept | "*/*" |
| accept-charset | "ISO-8859-1,utf-8;q=0.7,*;q=0.7" |
| accept-encoding | "gzip, br, zstd, deflate" |
| accept-language | "en-us,en;q=0.5" |
| forwarded | "for="172.22.0.12";host="www.staging.startplatz.de";proto=http" |
| host | "www.staging.startplatz.de" |
| referer | "https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo" |
| user-agent | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" |
| x-forwarded-for | "172.22.0.12" |
| x-forwarded-server | "c7c6e7953db4" |
| x-php-ob-level | "0" |
| x-real-ip | "216.73.216.183" |
Request Content
Request content not available (it was retrieved as a resource).
Response
Response Headers
| Header | Value |
|---|---|
| cache-control | "no-cache, private" |
| date | "Sat, 28 Feb 2026 10:26:12 GMT" |
| x-debug-token | "2a80be" |
Cookies
Request Cookies
No request cookies
Response Cookies
No response cookies
Session
Session Metadata
No session metadata
Session Attributes
No session attributes
Session Usage
0
Usages
Stateless check enabled
Session not used.
Flashes
Flashes
No flash messages were created.
Server Parameters
Server Parameters
Defined in .env
| Key | Value |
|---|---|
| ANTHROPIC_API_KEY | "" |
| CLOUDINARY_API_KEY | "187719847589952" |
| CLOUDINARY_API_SECRET | "2L0-UBEtXjD-ODU3On8eqJrZPFY" |
| CLOUDINARY_CLOUDNAME | "startplatz" |
| CLOUDINARY_URL | "cloudinary://187719847589952:2L0-UBEtXjD-ODU3On8eqJrZPFY@startplatz" |
| CRON_API_KEY | "cron_sp_X9kM4nQ7pR2sT6vW8yB1" |
| MONSUM_WEBHOOK_PASSWORD_CGN | "" |
| MONSUM_WEBHOOK_PASSWORD_DUS | "" |
| MONSUM_WEBHOOK_PASSWORD_TESTPLATZ | "" |
| MONSUM_WEBHOOK_USER_CGN | "" |
| MONSUM_WEBHOOK_USER_DUS | "" |
| MONSUM_WEBHOOK_USER_TESTPLATZ | "" |
| OPENAI_ORGANIZATION | "STARTPLATZ" |
| REDIS_URL | "" |
| SESSION_SAVE_PATH | "%kernel.project_dir%/var/cache/sessions" |
| SKOOL_WEBHOOK_KI_CAMPUS | "https://api.skool.com/groups/ki-campus/webhooks/5f76ae64499d42a49dafbf613fec3ec0" |
| SKOOL_WEBHOOK_KI_TREFFPUNKT | "https://api.skool.com/groups/ki-treffpunkt/webhooks/af0324eeef3d40649f8d16607fe6e7b9" |
| STATISTIC_ZAPIER_API_KEY | "50670" |
| TEST_DATA_PATH | "data/test-bewerbungen" |
| TWILIO_AUTH_TOKEN | "" |
| TYPEFORM_WEBHOOK_SECRET | "" |
| WP_API_BASE_URL | "" |
| WP_API_PASSWORD | "" |
| WP_API_USERNAME | "" |
Defined as regular env variables
| Key | Value |
|---|---|
| APP_DEBUG | "1" |
| APP_ENV | "dev" |
| APP_SECRET | "a8A3I6BRkJE2ppNaBcgPec5i6E8Iwqwm" |
| CONTENT_LENGTH | "" |
| CONTENT_TYPE | "" |
| DATABASE_URL | "mysql://startplatz:kpp8o9pWYAp2@startplatz-staging-mysql:3306/startplatz-wordpress" |
| DOCUMENT_ROOT | "/var/www/html/public" |
| DOCUMENT_URI | "/index.php" |
| EASYBILL_EMAIL_AI_HUB | "lorenz.graef@startplatz.de" |
| EASYBILL_EMAIL_FGH | "alexandra.thelen@startplatz.de" |
| EASYBILL_EMAIL_SP_CGN | "admin@startplatz.de" |
| EASYBILL_EMAIL_SP_DUS | "johannes.graef@startplatz.de" |
| EASYBILL_TOKEN_AI_HUB | "1NrjWZrE53dSqWFmMNz0oRd8i22VFmK1Oww9huGp8DPry8EfK1Oj9h6HeW7fyDUM" |
| EASYBILL_TOKEN_FGH | "Fjqj30ZbQorEtdpRfw3T19eAkOgrrgzq4WcExyLrxuot0bzkDpUrjpv41YH8dgBK" |
| EASYBILL_TOKEN_SP_CGN | "9njde49xtcsoswco4c80oggkwwoo080osow8soo8go4gkw0gwwgc8sck4wgw08og" |
| EASYBILL_TOKEN_SP_DUS | "YnHmfQYjOQ01hZ97zQKhsDLcvPc632dhdYjnUYuE4ZzkbAfkyC2TbOGOckUBFBDZ" |
| FCGI_ROLE | "RESPONDER" |
| GATEWAY_INTERFACE | "CGI/1.1" |
| GPG_KEYS | "528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD" |
| HOME | "/home/www-data" |
| HOSTNAME | "dev" |
| HTTP_ACCEPT | "*/*" |
| HTTP_ACCEPT_CHARSET | "ISO-8859-1,utf-8;q=0.7,*;q=0.7" |
| HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate" |
| HTTP_ACCEPT_LANGUAGE | "en-us,en;q=0.5" |
| HTTP_FORWARDED | "for="172.22.0.12";host="www.staging.startplatz.de";proto=http" |
| HTTP_HOST | "www.staging.startplatz.de" |
| HTTP_REFERER | "https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo" |
| HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" |
| HTTP_X_FORWARDED_FOR | "172.22.0.12" |
| HTTP_X_FORWARDED_SERVER | "c7c6e7953db4" |
| HTTP_X_REAL_IP | "216.73.216.183" |
| HUBSPOT_API_KEY | "pat-na1-72043aa0-44a4-4dd6-b57a-5759597c4642" |
| HUBSPOT_DEFAULT_FORM_GUID | "1e712a28-62f9-46e0-99f5-13f6bdc0ec70" |
| HUBSPOT_PORTAL_ID | "44225308" |
| HUBSPOT_TRACKING_ID | "2795177" |
| MAILER_DSN | "smtp://STARTPLATZ:md-UPVV0udzlA47hrj9B-LMGQ@smtp.mandrillapp.com:587" |
| MONSUM_API_EMAIL_CGN | "startplatz@lennarz-consulting.de" |
| MONSUM_API_EMAIL_DUS | "startplatz@lennarz-consulting.de" |
| MONSUM_API_EMAIL_TESTPLATZ | "lorenz.graef@startplatz.de" |
| MONSUM_API_TOKEN_CGN | "32e50c9db555d24f87b40c641b4b014bKzrRnijwaj7yLDB7c0CKXYmVJCzyATZ3" |
| MONSUM_API_TOKEN_DUS | "762173de1b510657bb44a2662747bac9nUFkR3NatmYlrqjI7hswGM2ZsDBbgYxR" |
| MONSUM_API_TOKEN_TESTPLATZ | "c0c8e924c966fbf562c59646ee67b2a3sh4WFrDN3XxPiwKcskvfcRWQyzWOy4Bu" |
| OPENAI_API_KEY | "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" |
| PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" |
| PATH_INFO | "" |
| PERPLEXITY_API_KEY | "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" |
| PHPIZE_DEPS | "autoconf \t\tdpkg-dev dpkg \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkgconf \t\tre2c" |
| PHP_ASC_URL | "https://www.php.net/distributions/php-8.1.34.tar.xz.asc" |
| PHP_CFLAGS | "-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" |
| PHP_CPPFLAGS | "-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" |
| PHP_INI_DIR | "/usr/local/etc/php" |
| PHP_LDFLAGS | "-Wl,-O1 -pie" |
| PHP_SELF | "/index.php" |
| PHP_SHA256 | "ffa9e0982e82eeaea848f57687b425ed173aa278fe563001310ae2638db5c251" |
| PHP_URL | "https://www.php.net/distributions/php-8.1.34.tar.xz" |
| PHP_VERSION | "8.1.34" |
| PWD | "/var/www/html" |
| QUERY_STRING | "_path=_format%3Dhtml%26_locale%3Den%26_controller%3DApp%255CStartPlatz%255CBundle%255CWebsiteBundle%255CController%255CDefaultController%253A%253AmenuAction" |
| REDIRECT_STATUS | "200" |
| REMOTE_ADDR | "127.0.0.1" |
| REMOTE_PORT | "51922" |
| REQUEST_METHOD | "GET" |
| REQUEST_SCHEME | "http" |
| REQUEST_TIME | 1772274371 |
| REQUEST_TIME_FLOAT | 1772274371.658 |
| REQUEST_URI | "/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3DApp%255CStartPlatz%255CBundle%255CWebsiteBundle%255CController%255CDefaultController%253A%253AmenuAction" |
| SCRIPT_FILENAME | "/var/www/html/public/index.php" |
| SCRIPT_NAME | "/index.php" |
| SERVER_ADDR | "172.22.0.7" |
| SERVER_NAME | "dev.startplatz.de" |
| SERVER_PORT | "80" |
| SERVER_PROTOCOL | "HTTP/1.1" |
| SERVER_SOFTWARE | "nginx/1.18.0" |
| SHLVL | "1" |
| STARTPLATZ_BUILDTIME | "001" |
| STARTPLATZ_DATABASE_WORDPRESS_HOST | "startplatz-staging-mysql" |
| STARTPLATZ_DATABASE_WORDPRESS_NAME | "startplatz-wordpress" |
| STARTPLATZ_DATABASE_WORDPRESS_PASSWORD | "kpp8o9pWYAp2" |
| STARTPLATZ_DATABASE_WORDPRESS_USER | "startplatz" |
| STARTPLATZ_ENVIRONMENT | "staging.www.staging.startplatz.de" |
| STARTPLATZ_HOST | "www.staging.startplatz.de" |
| STRIPE_LIVE_KEY_AI_HUB | "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" |
| STRIPE_LIVE_KEY_ECODYNAMICS | "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" |
| STRIPE_LIVE_KEY_STARTPLATZ | "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" |
| STRIPE_SK_INITIAL | "ojWxv1978YWU" |
| STRIPE_TEST_KEY_AI_HUB | "sk_test_51PmYwGDCU56CMQmgpcCdmzVTjiym8wom2WWiAAuVOUhS55972eM73wDNRDEBfGMnoLSt81yqW5CKCyraQKPDTb6y00xGk2RMpj" |
| STRIPE_TEST_KEY_ECODYNAMICS | "sk_test_51PeutFFqPnUaAUP6dP1y273V3ckVBrUUxBSSIufpLoU2TdWoJBbzjnNmfM3UHsauN4ZuhObIZYhhPLd4621AmzzW00xaHryus4" |
| STRIPE_TEST_KEY_STARTPLATZ | "sk_test_51O8fFSHegJLrFARiXBFfwCkkRCTyr64RpTlYx5X7FPNEKDSRhQHgb7X9WELyNzmMkMT39tavykkZbtbWDsCz0Tc800bNFXrtbH" |
| STRIPE_WEBHOOK_SECRET | "whsec_replace_with_actual_webhook_secret_from_stripe_dashboard" |
| SYMFONY_DOTENV_VARS | "CLOUDINARY_URL,CLOUDINARY_CLOUDNAME,CLOUDINARY_API_KEY,CLOUDINARY_API_SECRET,SESSION_SAVE_PATH,OPENAI_ORGANIZATION,ANTHROPIC_API_KEY,STATISTIC_ZAPIER_API_KEY,CRON_API_KEY,SKOOL_WEBHOOK_KI_CAMPUS,SKOOL_WEBHOOK_KI_TREFFPUNKT,TEST_DATA_PATH,MONSUM_WEBHOOK_USER_CGN,MONSUM_WEBHOOK_PASSWORD_CGN,MONSUM_WEBHOOK_USER_DUS,MONSUM_WEBHOOK_PASSWORD_DUS,MONSUM_WEBHOOK_USER_TESTPLATZ,MONSUM_WEBHOOK_PASSWORD_TESTPLATZ,WP_API_USERNAME,WP_API_PASSWORD,WP_API_BASE_URL,REDIS_URL,TYPEFORM_WEBHOOK_SECRET,TWILIO_AUTH_TOKEN" |
| USER | "www-data" |
| WP_API_PROD_BASE_URL | "https://www.startplatz.de/wp-json/wp/v2" |
| WP_API_PROD_PASSWORD | "lSFFfrfi24zjRXtmqlwxWlBx" |
| WP_API_PROD_USERNAME | "Allmeda" |
| argc | 0 |
| argv | [] |
Parent Request
Return to parent request (token = f195bd)
| Key | Value |
|---|---|
| _controller | "Startplatz\Bundle\WordpressIntegrationBundle\Controller\PassthruController::passthruAction" |
| _firewall_context | "security.firewall.map.context.main" |
| _route | "startplatz_wordpress_passthru" |
| _route_params | [ "path" => "there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/" ] |
| _security_firewall_run | "_security_main" |
| _stopwatch_token | "1f56c4" |
| _wordpressResponse | Symfony\Component\HttpFoundation\Response {#5132 +headers: Symfony\Component\HttpFoundation\ResponseHeaderBag {#2788 …} #content: """ <!DOCTYPE html>\n <html lang="de">\n <head>\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.staging.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 \n <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->\n <!--[if lt IE 9]>\n <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>\n <script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>\n <![endif]-->\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 <noscript>\n <img height="1" width="1" src="https://www.facebook.com/tr?id=767917863396798&ev=PageView&noscript=1"/>\n </noscript>\n \n <!-- wp_head starts -->\n <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />\n \t<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>\n \t\n \t<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https://yoast.com/wordpress/plugins/seo/ -->\n \t<title>„There are hundreds of photos but the best ones you’re not getting“: Accelerator Team Batch #19: 2/5 – Vodo - STARTPLATZ</title>\n \t<meta name="description" content="With his photo challenge app Vodo, Stefan wants to make it fun and easy on parties and events to find the best pictures." />\n \t<link rel="canonical" href="https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/" />\n \t<meta property="og:locale" content="de_DE" />\n \t<meta property="og:type" content="article" />\n \t<meta property="og:title" content="„There are hundreds of photos but the best ones you’re not getting“: Accelerator Team Batch #19: 2/5 – Vodo" />\n \t<meta property="og:description" content="With his photo challenge app Vodo, Stefan wants to make it fun and easy on parties and events to find the best pictures." />\n \t<meta property="og:url" content="https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/" />\n \t<meta property="og:site_name" content="STARTPLATZ" />\n \t<meta property="article:published_time" content="2019-09-19T12:42:35+00:00" />\n \t<meta property="article:modified_time" content="2020-11-25T11:14:28+00:00" />\n \t<meta property="og:image" content="https://www.staging.startplatz.de/wp-content/uploads/2019/09/Banner-Accelerator-Interviews-3.png" />\n \t<meta property="og:image:width" content="740" />\n \t<meta property="og:image:height" content="360" />\n \t<meta property="og:image:type" content="image/png" />\n \t<meta name="author" content="lgraef" />\n \t<meta name="twitter:label1" content="Verfasst von" />\n \t<meta name="twitter:data1" content="lgraef" />\n \t<meta name="twitter:label2" content="Geschätzte Lesezeit" />\n \t<meta name="twitter:data2" content="3 Minuten" />\n \t<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/","url":"https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/","name":"„There are hundreds of photos but the best ones you’re not getting“: Accelerator Team Batch #19: 2/5 – Vodo - STARTPLATZ","isPartOf":{"@id":"https://www.staging.startplatz.de/#website"},"primaryImageOfPage":{"@id":"https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/#primaryimage"},"image":{"@id":"https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/#primaryimage"},"thumbnailUrl":"https://www.staging.startplatz.de/wp-content/uploads/2019/09/Banner-Accelerator-Interviews-3.png","datePublished":"2019-09-19T12:42:35+00:00","dateModified":"2020-11-25T11:14:28+00:00","author":{"@id":"https://www.staging.startplatz.de/#/schema/person/3208e98b262dae03e85cfe5c8ee4cfae"},"description":"With his photo challenge app Vodo, Stefan wants to make it fun and easy on parties and events to find the best pictures.","breadcrumb":{"@id":"https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/#primaryimage","url":"https://www.staging.startplatz.de/wp-content/uploads/2019/09/Banner-Accelerator-Interviews-3.png","contentUrl":"https://www.staging.startplatz.de/wp-content/uploads/2019/09/Banner-Accelerator-Interviews-3.png","width":740,"height":360},{"@type":"BreadcrumbList","@id":"https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.staging.startplatz.de/"},{"@type":"ListItem","position":2,"name":"Blog – Hauptseite","item":"https://www.staging.startplatz.de/blog/"},{"@type":"ListItem","position":3,"name":"„There are hundreds of photos but the best ones you’re not getting“: Accelerator Team Batch #19: 2/5 – Vodo"}]},{"@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"},{"@type":"Person","@id":"https://www.staging.startplatz.de/#/schema/person/3208e98b262dae03e85cfe5c8ee4cfae","name":"lgraef","image":{"@type":"ImageObject","inLanguage":"de","@id":"https://www.staging.startplatz.de/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/c91ce354a125a4aa961b5875d604e79cab9b6d96ec555a0d9c9b065fb8eef5f5?s=96&r=g","contentUrl":"https://secure.gravatar.com/avatar/c91ce354a125a4aa961b5875d604e79cab9b6d96ec555a0d9c9b065fb8eef5f5?s=96&r=g","caption":"lgraef"},"sameAs":["https://x.com/lgraef"],"url":"https://www.staging.startplatz.de/author/lgraef/"}]}</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" type="application/rss+xml" title="STARTPLATZ » Kommentar-Feed zu „There are hundreds of photos but the best ones you’re not getting“: Accelerator Team Batch #19: 2/5 – Vodo" href="https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/feed/" />\n <script type="text/javascript">\n /* <![CDATA[ */\n window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.staging.startplatz.de\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.3"}};\n /*! This file is auto-generated */\n !function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(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\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var 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("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);\n /* ]]> */\n </script>\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 </style>\n <link rel='stylesheet' id='wp-block-library-css' href='https://www.staging.startplatz.de/wp-includes/css/dist/block-library/style.min.css?ver=6.8.3' type='text/css' media='all' />\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 </style>\n <style id='global-styles-inline-css' type='text/css'>\n :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}\n :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}\n :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}\n :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}\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/posts/65855" /><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.8.3" />\n <link rel='shortlink' href='https://www.staging.startplatz.de/?p=65855' />\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%2Fthere-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo%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%2Fthere-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo%2F&format=xml" />\n <!-- wp_head ends -->\n <!-- startplatz default styles starts -->\n <link rel='stylesheet' id='bootstrap.min-css' href='/wp-content/themes/startplatz/css/bootstrap.min.css?ver=5.3.2' type='text/css' media='all' />\n <link rel='stylesheet' id='main.css-css' href='/wp-content/themes/startplatz/styles/main.css?ver=5.3.2' type='text/css' media='all' />\n <!-- startplatz default styles ends -->\n \n <!-- Custom CSS per page (after Bootstrap) -->\n </head>\n \n \n <body id="top" >\n <!--[if lt IE 10]>\n <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>\n <![endif]-->\n <!-- menu -->\n \n <!-- homepage menu @StartPlatzWebsiteBundle/Default/menu.html.twig -->\n \n \n \n <nav class="navbar" data-spy="affix" data-offset-top="60">\n <div class="container">\n <div class="row">\n <div class="navbar-header">\n <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">\n <span class="sr-only">Toggle navigation</span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </button>\n <a class="navbar-brand" href="/">\n <i class="icon-startplatz"></i></a>\n </div>\n <div id="navbar" class="navbar-collapse collapse">\n <ul class="nav navbar-nav navbar-left">\n <li class="active"><a href="/x/home">x</a></li>\n </ul>\n <ul class="nav navbar-nav navbar-right">\n <li><a href="/memberships">Memberships</a></li>\n <li><a href="/accelerator/">Accelerator</a></li>\n \n <li><a href="/fuer-unternehmen">Unternehmen</a></li>\n \n <li>\n <a href="/konferenzraum" class="dropdown-toggle" data-toggle="dropdown">\n Konferenzräume <span class="caret"></span>\n </a>\n \n <ul class="dropdown-menu">\n <li><a href="/koeln-tagungsraeume-und-konferenzraeume">Konferenzräume in Köln</a></li>\n <li><a href="/duesseldorf-tagungsraeume-und-konferenzraeume">Konferenzräume in Düsseldorf</a></li>\n </ul>\n </li>\n \n <li><a href="/events">Events</a></li>\n \n \n <li class="dropdown">\n <a href="#" class="dropdown-toggle" data-toggle="dropdown">\n Über uns <span class="caret"></span>\n </a>\n <ul class="dropdown-menu">\n <li><a href="/presse">Über STARTPLATZ</a></li>\n <li><a href="/standorte">Standorte</a></li>\n <li><a href="/startplatz-team">STARTPLATZ Team</a></li>\n <li><a href="/partner">Partner</a></li>\n <li><a href="/startups">Unsere Startups</a></li>\n <li><a href="/jobs">Startup Jobs</a></li>\n <li><a href="/benefits/perks">Software für Startups</a></li>\n <li><a href="/sprechstunden">Sprechstunden</a></li>\n <li><a href="https://www.rheinlandpitch.de">Rheinland Pitch</a></li>\n <li><a href="/startup-wiki">Startup Wiki</a></li>\n <li><a href="/referenzen">Referenzen</a></li>\n <li><a href="/karriere">Karriere</a></li>\n </ul>\n </li>\n <li><a href="/blog">Blog</a></li>\n \n \n \n <li> <a href="/en"><img src="/bundles/startplatzstyle/images/english_language.png" height="20px;" alt=“”></a>\n </li>\n </ul>\n \n </div>\n </div>\n </div>\n </nav>\n \n \n <!-- menu -->\n \n <div class="container-fluid cut-bottom">\n <div class="banner banner-wide top-blog-item">\n <div class="banner-content">\n <strong style="font-size:36px">Blog</strong>\n <p>News rund um den STARTPLATZ, die Startup-Szene und Digitalthemen.</p>\n </div>\n </div>\n </div>\n \n <style type="text/css">\n </style>\n \n <div class="container">\n <div class="row row-equal page">\n <div class="col-xs-12 col-md-8 page-main">\n \n \n <div class="row">\n <a href="https://www.staging.startplatz.de/there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/"><img class="img-responsive" src="https://www.staging.startplatz.de/wp-content/uploads/2019/09/Banner-Accelerator-Interviews-3.png" alt="" style="width: 7830px; "></a>\n </div>\n <div class="separator"></div>\n <h1 style="line-height: 2em;">„There are hundreds of photos but the best ones you’re not getting“: Accelerator Team Batch #19: 2/5 – Vodo</h1>\n <p class="date">19. September 2019, 14:42 :: <a href="https://www.staging.startplatz.de/category/accelerator-old/" rel="category tag">Accelerator</a> | <a href="https://www.staging.startplatz.de/category/community/" rel="category tag">Community</a></p>\n <p class="date">Autor: lgraef</p>\n <p><p><strong>In part two of our Accelerator Series, we want to introduce you to Stefan from <a class="_e75a791d-denali-editor-page-rtfLink" href="https://vodo.app" target="_blank" rel="noopener noreferrer">Vodo</a>. His photo challenge app aims at bringing joy to parties and events and enables guests to find their very best pictures amongst the multitude of photos that would otherwise be lost in WhatsApp groups or photo libraries.</strong><br />\n <span id="more-65855"></span><br />\n <br />\n <center><iframe width="560" height="315" src="https://www.youtube.com/embed/x4Ta9sGDK9U" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center><br />\n <br />\n <strong>What problem is your Startup solving? Can you give me an example?</strong></p>\n <p>„Vodo is a Photo Challenge App for guests on parties who can take part in different challenges, may they be creative, romantic or funny, and vote each other. I think the problem is that you have photoboxes and photographers but you don’t have the opportunity to make challenges on the party. We have loads of photos on smartphones and in WhatsApp groups after the event, but often there are so many that the best photos are lost and you’re not getting them. So my app aims at bringing joy with photo challenges and provide the winner with greats memories.“</p>\n <p><strong>What is your educational background, did you always see yourself starting your own business?</strong></p>\n <p>„I studied Computer Science and have been a part-time freelance developer for 15 years now. In April I decided to leave my team leader position at a Digital Agency and found my startup Vodo.“</p>\n <p><strong>What was your inspiration for your startup?</strong></p>\n <p>„My inspiration for Vodo were all the WhatsApp groups with way too many photos and I wanted to have just one App to put all the photos in.“</p>\n <p><strong>What was the first obstacle you faced and how did you overcome it?<span class="Apple-converted-space"> </span></strong></p>\n <p>„My first obstacle with Vodo was definitely to define the MVP. You have so many ideas and want to include all of them into the first MVP, so it’s very difficult to decide on the first most important features to go out with and then test them on the market. Only after that, it makes sense to create more features.“</p>\n <p><strong>What is the next milestone for your startup?</strong></p>\n <p>„The development is ready and I’m proved on Apple’s side, so my next milestone for Vodo is to go out, test it on birthdays, weddings and other parties and get the guest’s feedback. Then I want to make adjustments and get better and better.“</p>\n <p><strong>What are some short term and long term goals of yours?</strong></p>\n <p>„My short term goal is to have a good final app after the beta test. And the long term goal is to have a bigger team behind Vodo.“</p>\n <p><strong>If you would start over again, what would you do differently?</strong></p>\n <p>„If I could start again, I would define and prototype the MVP earlier. And I would run it earlier in the market.“<span class="Apple-converted-space"> </span></p>\n <p><strong>Why did you choose STARTPLATZ Accelerator?</strong></p>\n <p>„I chose STARTPLATZ Accelerator because I was looking for a coworking space and incubator where you can meet many people related to the startup scene with whom you can talk about your idea and have discussions. I know now that here is the right place for me.“</p>\n <p><strong>What and who has helped you the most outside and inside of STARTPLATZ to getting you on the road?<span class="Apple-converted-space"> </span></strong></p>\n <p>„The biggest help I got from outside came from friends who gave me ideas as well as critics with whom I had many discussions on parties and other events. Inside STARTPLATZ, I think the most helpful really is the Accelerator Program, where we have workshops, expert sessions, and weekly meetings. In the first phase, we are ten Startups who can discuss our ideas, our successes as well as our failures.“<span class="Apple-converted-space"> </span></p>\n <p><strong>If you would give another startup a tip, what would it be? Any words of advice?</strong><span class="Apple-converted-space"> </span></p>\n <p>„If I could give other Startups a tip, I would say: Talk about your idea with other people and discuss it also with critics of your idea to get the most out of it.“<span class="Apple-converted-space"> </span><br />\n <center><a href="https://www.startplatz.de/wp-content/uploads/2019/09/Vodo-small.jpg"><img fetchpriority="high" decoding="async" class="size-full wp-image-65752 aligncenter" src="https://www.startplatz.de/wp-content/uploads/2019/09/Vodo-small.jpg" alt="" width="400" height="600" /></a></center><strong> </strong></p>\n <h3><strong>You also have a business idea with which you want to get started? Startups with scalable business models can apply for the Accelerator. TheJubilee Batch #20 is expected to start in March 2020. </strong><strong>Here you’ll find all information about the <a href="http://accelerator.startplatz.de/">STARTPLATZ Accelerator</a> as well as the application form.</strong></h3>\n <p> </p>\n <h3 style="text-align: center;"><a class="btn btn-success" href="https://startplatz.typeform.com/to/a8OHPB" target="_blank" rel="noopener noreferrer">Apply now!</a></h3>\n </p>\n \n \n <script>(function() {\n \twindow.mc4wp = window.mc4wp || {\n \t\tlisteners: [],\n \t\tforms: {\n \t\t\ton: function(evt, cb) {\n \t\t\t\twindow.mc4wp.listeners.push(\n \t\t\t\t\t{\n \t\t\t\t\t\tevent : evt,\n \t\t\t\t\t\tcallback: cb\n \t\t\t\t\t}\n \t\t\t\t);\n \t\t\t}\n \t\t}\n \t}\n })();\n </script><!-- Mailchimp for WordPress v4.10.8 - https://wordpress.org/plugins/mailchimp-for-wp/ --><form id="mc4wp-form-1" class="mc4wp-form mc4wp-form-53992 mc4wp-form-styles-builder mc4wp-ajax" method="post" data-id="53992" data-name="Blogartikel" ><div class="mc4wp-form-fields"><p>\r\n \t<label>Jetzt unseren Newsletter abonnieren und keine News aus der Startup-Szene mehr verpassen!</label>\r\n \t<label> \r\n \t\t<input type="email" name="EMAIL" placeholder="Deine E-Mail Adresse" required />\r\n </label>\r\n </p>\r\n <p>\r\n \t<input type="submit" value="Registrieren" />\r\n </p></div><label style="display: none !important;">Wenn du ein Mensch bist, lasse das Feld leer: <input type="text" name="_mc4wp_honeypot" value="" tabindex="-1" autocomplete="off" /></label><input type="hidden" name="_mc4wp_timestamp" value="1772274372" /><input type="hidden" name="_mc4wp_form_id" value="53992" /><input type="hidden" name="_mc4wp_form_element_id" value="mc4wp-form-1" /><div class="mc4wp-response"></div></form><!-- / Mailchimp for WordPress Plugin -->\n \n <div id="relatedposts">\n <div class="section-header">\n <h2>Ähnliche Beiträge</h2>\n </div>\n <ul> <h3><a href="https://www.staging.startplatz.de/startplatz-erfolgsgeschichte-wie-intombi-ev-weltweit-maedchen-unterstuetzt/">STARTPLATZ Erfolgsgeschichte: Wie intombi e.V. weltweit Mädchen unterstützt</a></h3>\n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2025/06/Titelbild-Blogbeitrag-80x80.png" class="media-object img-rounded wp-post-image" alt="" decoding="async" /> </div>\n <div class="media-body">\n <p>Für 99 Euro eine Ziege spenden und damit einem Mädchen in Ruanda den ersten Schritt in ein selbstbestimmtes Leben ermöglichen? Genau das macht intombi e.V. möglich. Seit 15 Jahren engagiert sich das Social Startup für die Förderung von Mädchen und jungen Frauen – in Südafrika, Ruanda, Deutschland und bald auch in der Ukraine. Hinter dem Herzensprojekt […]</p>\n </div>\n </div>\n <hr>\n <h3><a href="https://www.staging.startplatz.de/erfolg-aus-dem-startplatz-wie-simplejobs-recruiting-neu-denkt/">Erfolg aus dem STARTPLATZ: Wie Simplejobs Recruiting neu denkt</a></h3>\n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2025/05/Titelbild-Blogbeitrag-80x80.png" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <p>5 Uhr morgens, Betriebshof der Frankfurter Müllabfuhr. Statt im Büro zu sitzen, steigen Thomas und sein Team mit auf die Müllwagen, entleeren Tonnen und führen Gespräche mit den Mitarbeiter:innen. „Wir kennen die Jobs, die wir vermitteln, aus erster Hand“, sagt Thomas Schier. Und genau das macht den Unterschied: Wer selbst mit anpackt und die Bedingungen […]</p>\n </div>\n </div>\n <hr>\n <h3><a href="https://www.staging.startplatz.de/willkommen-am-startplatz-karriere-kapitaen-unterstuetzt-jugendliche-bei-der-berufsorientierung/">Willkommen am STARTPLATZ: Karriere-Kapitän unterstützt Jugendliche bei der Berufsorientierung</a></h3>\n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2025/04/Titelbild-Blogbeitrag-5-1-80x80.png" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <p>Unsere Community wächst! Mit Karriere-Kapitän begrüßen wir ein Startup, das Jugendlichen mithilfe KI-gestützter Tools dabei unterstützt, ihren Berufs- und Studienweg reflektierter und mit mehr Orientierungssicherheit zu gestalten. Die beiden Gründer Tim und Sebi verfolgen das Ziel, mit einem digitalen Karriereberater und einer gamifizierten Lernreise in App-Form einen besseren Zugang zur Berufsorientierung zu ermöglichen. Wir haben […]</p>\n </div>\n </div>\n <hr>\n <h3><a href="https://www.staging.startplatz.de/erfolg-aus-dem-startplatz-wie-hemdlos-unternehmen-mit-massgeschneiderter-mode-begeistert/">Erfolg aus dem STARTPLATZ: Wie hemdlos Unternehmen mit maßgeschneiderter Mode begeistert</a></h3>\n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2025/04/Titelbild-Blogbeitrag-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <p>Wir haben uns mit Sinan Yilmaz, dem Founder von hemdlos, einem spannenden Startup aus dem STARTPLATZ Düsseldorf, zusammengesetzt. In unserem Gespräch haben wir über die Bedeutung ihres Slogans „auf dich zugeschnitten“ sowie ihre Erfolge und Herausforderungen gesprochen. Hemdlos bietet maßgeschneiderte Kleidung für Unternehmen an – von Hemden über Blusen bis hin zu Anzügen und Accessoires. […]</p>\n </div>\n </div>\n <hr>\n <h3><a href="https://www.staging.startplatz.de/startplatz-open-accelerator-startup-raumly/">Open Accelerator Startups stellen sich vor: Raumly (raumly.com)</a></h3>\n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2025/03/Depositphotos_25265669_L-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <p>In dieser Artikelserie stellen wir Startups aus dem STARTPLATZ Open Accelerator vor, die mind. Level 2 erreicht haben. Heute stellt sich Raumly vor, die an einer skalierbaren und nachhaltigen Lösung des Versorgungsproblems des Gesundheitssystems in einer alternden Gesellschaft arbeiten.</p>\n </div>\n </div>\n <hr>\n </ul></div>\n \n \n \n \n <hr class="hr-section">\n \n \n <div class="separator"></div>\n \n <div class="section-header">\n </div>\n <div class="section-header">\n <h2>Kommende Events</h2>\n <div class="btn-group pull-right">\n <button type="button" class="btn btn-gray dropdown-toggle" data-toggle="dropdown">\n Alle anzeigen <span class="caret"></span>\n </button>\n <ul class="dropdown-menu">\n <li><a href="/events?tag=network">Network events</a></li>\n <li><a href="/events?tag=workshop">Workshops</a></li>\n <li><a href="/events?tag=konferenz">Conferences</a></li>\n <li><a href="/events?tag=talk">Talks</a></li>\n <li><a href="/events?tag=pitch">Pitch events</a></li>\n </ul>\n </div>\n </div>\n \n \n \n <div class="post post-event">\n <div class="row visible-xs-block">\n <div class="col-xs-12">\n <h3><a href="/event/female-aimpowerment-vibe-coding-maerz-2026/">Female AImpowerment: Vibe Coding</a></h3>\n </div>\n </div>\n <div class="row">\n <div class="col-xs-4">\n <a href="/event/female-aimpowerment-vibe-coding-maerz-2026/">\n <div class="calendar">\n <img class="hidden-xs img-responsive" src="https://cdn.evbuc.com/images/1177415804/2320340747883/1/original.20260212-211452" alt="">\n <div class="date visible-xs">\n <div class="day">02</div>\n <div class="year">Mar 2026</div>\n </div>\n <div class="type">meetup</div>\n </div>\n </a>\n </div>\n <div class="col-xs-8">\n <div class="post-head">\n <h2 class="hidden-xs"><a href="/event/female-aimpowerment-vibe-coding-maerz-2026/">Female AImpowerment: Vibe Coding</a></h2>\n </div>\n <div class="post-body">\n <ul class="list-unstyled">\n <li><i class="fa fa-clock-o fa-fw"></i>Monday, 02.03.26, 18:30 - 20:30 Uhr</li>\n <li><i class="fa fa-map-marker fa-fw"></i>STARTPLATZ Köln, Im Mediapark 5, 50670 Köln</li>\n </ul>\n </div>\n </div>\n </div>\n <div class="row hidden-xs">\n <div class="col-xs-12">\n <a href="/events?tag=AI" class="btn btn-sort sort-gray">AI</a> \n <a href="/events?tag=KI" class="btn btn-sort sort-gray">KI</a> \n <a href="/events?tag=VibeCoding" class="btn btn-sort sort-gray">VibeCoding</a> \n <a href="/events?tag=Workshop" class="btn btn-sort sort-gray">Workshop</a> \n <a href="/events?tag=Community" class="btn btn-sort sort-gray">Community</a> \n <a href="/events?tag=External" class="btn btn-sort sort-gray">External</a> \n <a href="/events?tag=FemaleEmpowerment" class="btn btn-sort sort-gray">FemaleEmpowerment</a> \n \n </div>\n </div>\n <div class="row">\n <div class="col-xs-6"></div>\n <div class="col-xs-6">\n <a href="/event/female-aimpowerment-vibe-coding-maerz-2026/" class="btn btn-green">Mehr Infos</a>\n <a href="/event/female-aimpowerment-vibe-coding-maerz-2026/" class="btn btn-green hidden-xs">Jetzt buchen!</a>\n </div>\n </div>\n </div>\n \n <hr class="hr-section">\n \n \n <div class="post post-event">\n <div class="row visible-xs-block">\n <div class="col-xs-12">\n <h3><a href="/event/sprechstunde-techniker-krankenkasse-social-pizza-duesseldorf-2025-11-04-2025-10-21-1761063954-2026-01-14-1768405636/">Ask und Info - mit Versicherungsexpertinnen der TK - Spezial Thema: Social Pizza</a></h3>\n </div>\n </div>\n <div class="row">\n <div class="col-xs-4">\n <a href="/event/sprechstunde-techniker-krankenkasse-social-pizza-duesseldorf-2025-11-04-2025-10-21-1761063954-2026-01-14-1768405636/">\n <div class="calendar">\n <img class="hidden-xs img-responsive" src="https://res.cloudinary.com/startplatz/image/upload/v1693817863/Sprechstunde_Eventbild_clc.png" alt="">\n <div class="date visible-xs">\n <div class="day">04</div>\n <div class="year">Mar 2026</div>\n </div>\n <div class="type">sprechstunde</div>\n </div>\n </a>\n </div>\n <div class="col-xs-8">\n <div class="post-head">\n <h2 class="hidden-xs"><a href="/event/sprechstunde-techniker-krankenkasse-social-pizza-duesseldorf-2025-11-04-2025-10-21-1761063954-2026-01-14-1768405636/">Ask und Info - mit Versicherungsexpertinnen der TK - Spezial Thema: Social Pizza</a></h2>\n </div>\n <div class="post-body">\n <ul class="list-unstyled">\n <li><i class="fa fa-clock-o fa-fw"></i>Wednesday, 04.03.26, 10:30 - 13:30 Uhr</li>\n <li><i class="fa fa-map-marker fa-fw"></i>STARTPLATZ, Speditionstraße 15A, Düsseldorf</li>\n <li><i class="fa fa-bullhorn fa-fw"></i> Kirsten Bahr</li>\n </ul>\n </div>\n </div>\n </div>\n <div class="row hidden-xs">\n <div class="col-xs-12">\n <a href="/events?tag=startplatz" class="btn btn-sort sort-gray">startplatz</a> \n <a href="/events?tag=startup" class="btn btn-sort sort-gray">startup</a> \n <a href="/events?tag=mittelstand" class="btn btn-sort sort-gray">mittelstand</a> \n <a href="/events?tag=digitale-unternehmen" class="btn btn-sort sort-gray">digitale-unternehmen</a> \n <a href="/events?tag=sprechstunde" class="btn btn-sort sort-gray">sprechstunde</a> \n \n </div>\n </div>\n <div class="row">\n <div class="col-xs-6"></div>\n <div class="col-xs-6">\n <a href="/event/sprechstunde-techniker-krankenkasse-social-pizza-duesseldorf-2025-11-04-2025-10-21-1761063954-2026-01-14-1768405636/" class="btn btn-green">Mehr Infos</a>\n <a href="/event/sprechstunde-techniker-krankenkasse-social-pizza-duesseldorf-2025-11-04-2025-10-21-1761063954-2026-01-14-1768405636/" class="btn btn-green hidden-xs">Jetzt buchen!</a>\n </div>\n </div>\n </div>\n \n <hr class="hr-section">\n \n \n <div class="post post-event">\n <div class="row visible-xs-block">\n <div class="col-xs-12">\n <h3><a href="/event/ki-chaos-masterclass-1-priorisierung/">Use-Case-Priorisierung: Was ist Hype, was bringt ROI?</a></h3>\n </div>\n </div>\n <div class="row">\n <div class="col-xs-4">\n <a href="/event/ki-chaos-masterclass-1-priorisierung/">\n <div class="calendar">\n <img class="hidden-xs img-responsive" src="https://res.cloudinary.com/startplatz/image/upload/c_fill,w_1000,h_800,q_auto,f_auto/v1769159840/events/2026/ki-chaos-zum-system-webinar.jpg" alt="">\n <div class="date visible-xs">\n <div class="day">04</div>\n <div class="year">Mar 2026</div>\n </div>\n <div class="type">ai-friday</div>\n </div>\n </a>\n </div>\n <div class="col-xs-8">\n <div class="post-head">\n <h2 class="hidden-xs"><a href="/event/ki-chaos-masterclass-1-priorisierung/">Use-Case-Priorisierung: Was ist Hype, was bringt ROI?</a></h2>\n </div>\n <div class="post-body">\n <ul class="list-unstyled">\n <li><i class="fa fa-clock-o fa-fw"></i>Wednesday, 04.03.26, 16:00 - 17:30 Uhr</li>\n <li><i class="fa fa-map-marker fa-fw"></i>STARTPLATZ, Im Mediapark 5, 50670 Köln</li>\n <li><i class="fa fa-bullhorn fa-fw"></i> Jason Lau-Christen & Andreas Spannagel</li>\n </ul>\n </div>\n </div>\n </div>\n <div class="row hidden-xs">\n <div class="col-xs-12">\n <a href="/events?tag=ki" class="btn btn-sort sort-gray">ki</a> \n <a href="/events?tag=ki-strategie" class="btn btn-sort sort-gray">ki-strategie</a> \n <a href="/events?tag=management" class="btn btn-sort sort-gray">management</a> \n <a href="/events?tag=masterclass" class="btn btn-sort sort-gray">masterclass</a> \n <a href="/events?tag=entscheider" class="btn btn-sort sort-gray">entscheider</a> \n <a href="/events?tag=priorisierung" class="btn btn-sort sort-gray">priorisierung</a> \n <a href="/events?tag=roi" class="btn btn-sort sort-gray">roi</a> \n <a href="/events?tag=online" class="btn btn-sort sort-gray">online</a> \n <a href="/events?tag=startplatz-ai-hub" class="btn btn-sort sort-gray">startplatz-ai-hub</a> \n <a href="/events?tag=jason-lau-christen" class="btn btn-sort sort-gray">jason-lau-christen</a> \n <a href="/events?tag=andreas-spannagel" class="btn btn-sort sort-gray">andreas-spannagel</a> \n \n </div>\n </div>\n <div class="row">\n <div class="col-xs-6"></div>\n <div class="col-xs-6">\n <a href="/event/ki-chaos-masterclass-1-priorisierung/" class="btn btn-green">Mehr Infos</a>\n <a href="/event/ki-chaos-masterclass-1-priorisierung/" class="btn btn-green hidden-xs">Jetzt buchen!</a>\n </div>\n </div>\n </div>\n \n <hr class="hr-section">\n \n <div class="separator quadruple"></div>\n \n </div>\n <div class="col-xs-12 col-md-4 page-aside">\n \n \n \n \n <style>\r\n .single {\r\n padding: 1px 30px 14px;\r\n margin-top: 0px;\r\n background: #525459;\r\n border: 0px solid #f0f0f0; }\r\n .single ul {\r\n margin-bottom: 0; }\r\n .single li a {\r\n color: #ffffff;\r\n font-size: 14px;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n border-bottom: 1px solid #f0f0f0;\r\n line-height: 32px;\r\n display: block;\r\n text-decoration: none; }\r\n .single li a:hover {\r\n color: #7ab800; }\r\n .single li:last-child a {\r\n border-bottom: 0px; }\r\n </style>\r\n <div class="row">\r\n <div class="single category">\r\n <div class="section-header">\r\n \t\t<center><h2 style="color: #ffffff;">Kategorien</h2></center>\r\n </div>\r\n \t\t<ul class="list-unstyled">\r\n \t\t\t<li><a href="https://www.startplatz.de/blog" title="">Alle Blogbeiträge </a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/erfolgsgeschichten/" title="">Erfolgsgeschichten</a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/accelerator/" title="">Accelerator </a></li>\r\n <li><a href="https://www.startplatz.de/category/success-story/" title="">Success Stories </a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/community/" title="">Community </a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/corporate-services/" title="">Corporate Services </a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/rheinland-pitch/" title="">Rheinland-Pitch </a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/aktuelle-trends/" title="">Aktuelle Trends </a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/veranstaltungen/" title="">Events </a></li>\r\n \t\t\t<li><a href="https://www.startplatz.de/category/news/" title="">News </a></li>\r\n \t\t</ul>\r\n </div>\r\n </div>\n \n <div class="separator"></div>\n <div class="section-header">\n <form role="search" method="get" class="search-form" action="https://www.staging.startplatz.de/">\n \t\t\t\t<label>\n \t\t\t\t\t<span class="screen-reader-text">Suche nach:</span>\n \t\t\t\t\t<input type="search" class="search-field" placeholder="Suchen …" value="" name="s" />\n \t\t\t\t</label>\n \t\t\t\t<input type="submit" class="search-submit" value="Suchen" />\n \t\t\t</form></div>\n \n \n \n \n <div class="separator"></div>\n <div class="section-header">\n <h2>Neueste Beiträge</h2>\n </div>\n <div class="tweet">\n \n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/02/Titelbild-Blogbeitrag-49-80x80.png" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <a href="https://www.staging.startplatz.de/was-schnell-wachsende-startups-von-etablierten-unternehmen-ueber-kundenkommunikation-lernen-koennen/">Was schnell wachsende Startups von etablierten Unternehmen über Kundenkommunikation lernen können</a> <br> 24. Februar </div>\n \n </div>\n \n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/02/Titelbild-Blogbeitrag-1-80x80.jpg" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <a href="https://www.staging.startplatz.de/clawconnrw/">Volles Haus und starke Use Cases: Das war die ClawCon NRW im STARTPLATZ Köln</a> <br> 20. Februar </div>\n \n </div>\n \n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/02/Titelbild-Blogbeitrag-47-80x80.png" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <a href="https://www.staging.startplatz.de/digitale-sichtbarkeit-fuer-lausitzer-unternehmen-warum-landing-pages-eine-immer-groessere-bedeutung-zukommt/">Digitale Sichtbarkeit für Lausitzer Unternehmen: Warum Landing Pages eine immer größere Bedeutung zukommt</a> <br> 3. Februar </div>\n \n </div>\n \n <div class="media">\n <div class="media-left">\n <img width="80" height="80" src="https://www.staging.startplatz.de/wp-content/uploads/2026/01/Titelbild-Blogbeitrag-47-80x80.png" class="media-object img-rounded wp-post-image" alt="" decoding="async" loading="lazy" /> </div>\n <div class="media-body">\n <a href="https://www.staging.startplatz.de/desk-sharing-fuer-startups-wie-flexible-arbeitsplatzmodelle-kosten-senken-und-teamkultur-staerken/">Desk Sharing für Startups: Wie flexible Arbeitsplatzmodelle Kosten senken und Teamkultur stärken</a> <br> 13. Januar </div>\n \n </div>\n \n </div>\n \n <div class="banner text-white tarife">\r\n <div class="banner-content">\r\n <h2>Community Membership</h2>\r\n \r\n <hr class="hr-white" />\r\n \r\n <h4>\r\n Werde Teil der <b>größten Startup Community im Rheinland\r\n <br><br>\r\n <i>Bereits ab 10 €/Monat!</i></b>\r\n <!--Jetzt 14 Tage kostenlos testen!-->\r\n </h4>\r\n \r\n <a class="btn btn-transparent hover-black" href="/community-membership/">Jetzt informieren!</a>\r\n \r\n </div>\r\n </div>\n \n <div class="banner grunderstipendium_s text-white">\r\n <div class="banner-content">\r\n <h2>Gastbeiträge</h2>\r\n \r\n <hr class="hr-white" />\r\n \r\n „Du schreibst interessante Artikel, die auf unsere Zielgruppe zugeschnitten sind und willst deinen Content auf unserem Blog präsentieren? \r\n <a class="btn btn-transparent" href="mailto:marketing@startplatz.de?subject=Gastbeitrag%20STARTPLATZ">Kontaktiere uns!</a>\r\n \r\n </div>\r\n </div>\n \n \n <div class="banner bg-white">\n <div class="banner-content">\n <h2>Konferenzräume mieten</h2>\n <hr class="hr-green">\n <p class="text-gray">Durch klicken Standort wählen.</p>\n <a href="/koeln-tagungsraeume-und-konferenzraeume" class="btn btn-green">Köln</a>\n <a href="/duesseldorf-tagungsraeume-und-konferenzraeume" class="btn btn-green">Düsseldorf</a>\n </div>\n </div>\n \n <div class="separator"></div>\n <div class="section-header">\n <h2>Latest tweets</h2>\n </div>\n <div class="tweet">\n <h3>STARTPLATZ</h3>\n <a class="twitter-timeline" href="https://twitter.com/STARTPLATZ" data-widget-id="604687445137993728">Tweets von @STARTPLATZ </a>\n <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>\n </div>\n </div>\n </div>\n </div>\n \n \n \n \n \n \n \n \n <footer>\n <div class="startplatz-footer">\n <div class="container">\n <div class="row">\n <div class="newsletter col-xs-12 col-md-8">\n <div class="section-header">\n <h2>Newsletter</h2>\n </div>\n <p>Immer auf dem Laufenden bleiben?<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-green">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="social col-xs-12 col-md-4">\n <div class="section-header">\n <h2>Folge uns</h2>\n </div>\n <p>Folge uns auf Facebook, Twitter oder Instagram</p>\n <ul class="icons-list list-inline list-unstyled">\n <li><a target="_blank" href="https://www.facebook.com/startplatz"><i class="fa fa-facebook fa-4x"></i></a></li>\n <li><a target="_blank" href="https://twitter.com/startplatz"><i class="fa fa-twitter fa-4x"></i></a> </li>\n <li><a target="_blank" href="https://instagram.com/startplatz/"><i class="fa fa-instagram fa-4x"></i></a> </li>\n <!-- <li><a href="blog.html"><i class="fa fa-wordpress fa-4x"></i></a></li> -->\n </ul>\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 class="row row-equal">\n <div class="footer-menu col-md-8 visible-md visible-lg">\n <div class="row">\n <div class="col-xs-4">\n <div class="section-header">\n <h3>STARTPLATZ</h3>\n </div>\n <ul class="list-unstyled list-sm">\n <li><a href="/kontakt-aufnehmen">Kontakt</a></li>\n <li><a href="/pressebereich">Presse</a></li>\n <li><a href="/jobs">Jobs</a></li>\n <li><a href="/standorte">Standorte</a></li>\n </ul>\n </div>\n <div class="col-xs-4">\n <div class="section-header">\n <h3>Über diese Website</h3>\n </div>\n <ul class="list-unstyled list-sm">\n <li><a href="/wlan-am-startplatz-koeln">WLAN am STARTPLATZ Koeln</a></li>\n <li><a href="/startplatz-archiv">Archiv</a></li>\n <li><a href="/startplatz-agb">AGB</a></li>\n <li><a href="/impressum">Impressum</a></li>\n <li><a href="/datenschutz">Datenschutz</a></li>\n </ul>\n </div>\n <div class="col-xs-4">\n <div class="section-header">\n <h3>Top Themen</h3>\n </div>\n <ul class="list-unstyled list-sm">\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="/gruenderstipendium-nrw"><span class="fas fa-long-arrow-alt-right mr-2"></span>Gründungsstipendium</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>\n <div class="kontakt col-xs-12 col-md-4">\n <div class="content-wrapper">\n <div class="section-header">\n <h2 class="visible-sm visible-xs">Kontakt</h2>\n <h3 class="visible-md visible-lg">Kontakt</h3>\n </div>\n <div class="row">\n <div class="col-xs-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">info@startplatz.de</p>\n <p class="address">+49 221 975 802 00</p>\n </div>\n <div class="col-xs-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">info@startplatz.de</p>\n <p class="address">+49 211 936 725 20</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class="copyrights" style="color: black;">\n © Copyright Startplatz 2026\n </div>\n </div>\n </div>\n </footer>\n <link rel="stylesheet" type="text/css" href="/wp-includes/css/cookieconsent.min.css" />\n <script src="/wp-includes/js/cookieconsent.min.js" defer></script>\n <script>\n window.addEventListener("load", function(){\n window.cookieconsent.initialise({\n "palette": {\n "popup": {\n "background": "#edeff5",\n "text": "#838391"\n },\n "button": {\n "background": "#4b81e8"\n }\n },\n "content": {\n "message": "Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.",\n "dismiss": "Akzeptieren",\n "link": "Mehr Informationen",\n "href": "https://www.startplatz.de/datenschutz"\n }\n })\n });\n </script>\n \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>(function() {function maybePrefixUrlField () {\n const value = this.value.trim()\n if (value !== '' && value.indexOf('http') !== 0) {\n this.value = 'http://' + value\n }\n }\n \n const urlFields = document.querySelectorAll('.mc4wp-form input[type="url"]')\n for (let j = 0; j < urlFields.length; j++) {\n urlFields[j].addEventListener('blur', maybePrefixUrlField)\n }\n })();</script><script type="text/javascript" src="https://www.staging.startplatz.de/wp-includes/js/comment-reply.min.js?ver=6.8.3" id="comment-reply-js" async="async" data-wp-strategy="async"></script>\n <script type="text/javascript" defer src="https://www.staging.startplatz.de/wp-content/plugins/mailchimp-for-wp/assets/js/forms.js?ver=4.10.8" id="mc4wp-forms-api-js"></script>\n <script type="text/javascript" id="mc4wp-ajax-forms-js-extra">\n /* <![CDATA[ */\n var mc4wp_ajax_vars = {"loading_character":"\u2022","ajax_url":"https:\/\/www.staging.startplatz.de\/wp-admin\/admin-ajax.php?action=mc4wp-form","error_text":"Leider ist ein Fehler aufgetreten. "};\n /* ]]> */\n </script>\n <script type="text/javascript" src="https://www.staging.startplatz.de/wp-content/plugins/mc4wp-premium/ajax-forms/assets/js/ajax-forms.min.js?ver=4.5.4" id="mc4wp-ajax-forms-js"></script>\n <!-- wp_footer ends -->\n <!-- startplatz default js starts -->\n <script type='text/javascript' src='/wp-content/themes/startplatz/scripts/jquery.js?ver=2016-4711'></script>\n <script type='text/javascript' src='/wp-content/themes/startplatz/scripts/bootstrap.min.js?ver=2016-4711'></script>\n <!-- startplatz default js ends -->\n \n \n <div id="sfwdtf195bd" class="sf-toolbar sf-display-none" role="region" aria-label="Symfony Web Debug Toolbar"> <!-- START of Symfony Web Debug Toolbar --><div id="sfMiniToolbar-f195bd" class="sf-minitoolbar" data-no-turbolink data-turbo="false"> <button type="button" title="Show Symfony toolbar" id="sfToolbarMiniToggler-f195bd" accesskey="D" aria-expanded="false" aria-controls="sfToolbarMainContent-f195bd"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#AAA" 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> </button></div><div id="sfToolbarClearer-f195bd" class="sf-toolbar-clearer"></div><div id="sfToolbarMainContent-f195bd" class="sf-toolbarreset 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/f195bd?panel=request"> <div class="sf-toolbar-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#AAA" 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-f195bd"></span> </div> <div class="sf-toolbar-info-piece"> <b> <button class="sf-cancel-button" type="button" id="sfLoadCancel-f195bd" title="Cancel loading">Cancel</button> </b> </div> </div></div> <button class="hide-button" type="button" id="sfToolbarHideButton-f195bd" title="Close Toolbar" accesskey="D" aria-expanded="true" aria-controls="sfToolbarMainContent-f195bd"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#AAA" d="M21.1 18.3c.8.8.8 2 0 2.8-.4.4-.9.6-1.4.6s-1-.2-1.4-.6L12 14.8l-6.3 6.3c-.4.4-.9.6-1.4.6s-1-.2-1.4-.6a2 2 0 0 1 0-2.8L9.2 12 2.9 5.7a2 2 0 0 1 0-2.8 2 2 0 0 1 2.8 0L12 9.2l6.3-6.3a2 2 0 0 1 2.8 0c.8.8.8 2 0 2.8L14.8 12l6.3 6.3z"/></svg> </button></div><!-- END of Symfony Web Debug Toolbar --></div><script nonce="fe4acb70c0509c696455ca7b105cbf04">/*<![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); }; } if (navigator.clipboard) { document.querySelectorAll('[data-clipboard-text]').forEach(function(element) { removeClass(element, 'hidden'); element.addEventListener('click', function() { navigator.clipboard.writeText(element.getAttribute('data-clipboard-text')); }) }); } var request = function(url, onSuccess, onError, payload, options, tries) { 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 = 'block'; } 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; } } } 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.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) { if (!this.sfwdt) { this.sfwdt = document.getElementById('sfwdt' + token); } return this.sfwdt; }, 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) { 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); removeClass(sfwdt, 'sf-display-none'); if (getPreference('toolbar/displayState') == 'none') { document.getElementById('sfToolbarMainContent-' + token).style.display = 'none'; document.getElementById('sfToolbarClearer-' + token).style.display = 'none'; document.getElementById('sfMiniToolbar-' + token).style.display = 'block'; } else { document.getElementById('sfToolbarMainContent-' + token).style.display = 'block'; document.getElementById('sfToolbarClearer-' + token).style.display = 'block'; document.getElementById('sfMiniToolbar-' + token).style.display = 'none'; } }, hideToolbar: function(token) { var sfwdt = this.getSfwdt(token); addClass(sfwdt, 'sf-display-none'); }, initToolbar: function(token) { this.showToolbar(token); var hideButton = document.getElementById('sfToolbarHideButton-' + token); var hideButtonSvg = hideButton.querySelector('svg'); hideButtonSvg.setAttribute('aria-hidden', 'true'); hideButtonSvg.setAttribute('focusable', 'false'); addEventListener(hideButton, 'click', function (event) { event.preventDefault(); var p = this.parentNode; p.style.display = 'none'; (p.previousElementSibling || p.previousSibling).style.display = 'none'; document.getElementById('sfMiniToolbar-' + token).style.display = 'block'; setPreference('toolbar/displayState', 'none'); }); var showButton = document.getElementById('sfToolbarMiniToggler-' + token); var showButtonSvg = showButton.querySelector('svg'); showButtonSvg.setAttribute('aria-hidden', 'true'); showButtonSvg.setAttribute('focusable', 'false'); addEventListener(showButton, 'click', function (event) { event.preventDefault(); var elem = this.parentNode; if (elem.style.display == 'none') { document.getElementById('sfToolbarMainContent-' + token).style.display = 'none'; document.getElementById('sfToolbarClearer-' + token).style.display = 'none'; elem.style.display = 'block'; } else { document.getElementById('sfToolbarMainContent-' + token).style.display = 'block'; document.getElementById('sfToolbarClearer-' + token).style.display = 'block'; elem.style.display = 'none' } setPreference('toolbar/displayState', 'block'); }); }, 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) { /* Do nothing in the edge case where the toolbar has already been replaced with a new one */ if (!document.getElementById('sfToolbarMainContent-' + newToken)) { return; } /* 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">\ <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.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; }, createTabs: function() { var tabGroups = document.querySelectorAll('.sf-tabs:not([data-processed=true])'); /* create the tab navigation for each group of tabs */ for (var i = 0; i < tabGroups.length; i++) { var tabs = tabGroups[i].querySelectorAll(':scope > .tab'); var tabNavigation = document.createElement('ul'); tabNavigation.className = 'tab-navigation'; var selectedTabId = 'tab-' + i + '-0'; /* select the first tab by default */ for (var j = 0; j < tabs.length; j++) { var tabId = 'tab-' + i + '-' + j; var tabTitle = tabs[j].querySelector('.tab-title').innerHTML; var tabNavigationItem = document.createElement('li'); tabNavigationItem.setAttribute('data-tab-id', tabId); if (hasClass(tabs[j], 'active')) { selectedTabId = tabId; } if (hasClass(tabs[j], 'disabled')) { addClass(tabNavigationItem, 'disabled'); } tabNavigationItem.innerHTML = tabTitle; tabNavigation.appendChild(tabNavigationItem); var tabContent = tabs[j].querySelector('.tab-content'); tabContent.parentElement.setAttribute('id', tabId); } tabGroups[i].insertBefore(tabNavigation, tabGroups[i].firstChild); addClass(document.querySelector('[data-tab-id="' + selectedTabId + '"]'), 'active'); } /* display the active tab and add the 'click' event listeners */ for (i = 0; i < tabGroups.length; i++) { tabNavigation = tabGroups[i].querySelectorAll(':scope > .tab-navigation li'); for (j = 0; j < tabNavigation.length; j++) { tabId = tabNavigation[j].getAttribute('data-tab-id'); document.getElementById(tabId).querySelector('.tab-title').className = 'hidden'; if (hasClass(tabNavigation[j], 'active')) { document.getElementById(tabId).className = 'block'; } else { document.getElementById(tabId).className = 'hidden'; } tabNavigation[j].addEventListener('click', function(e) { var activeTab = e.target || e.srcElement; /* needed because when the tab contains HTML contents, user can click */ /* on any of those elements instead of their parent '<li>' element */ while (activeTab.tagName.toLowerCase() !== 'li') { activeTab = activeTab.parentNode; } /* get the full list of tabs through the parent of the active tab element */ var tabNavigation = activeTab.parentNode.children; for (var k = 0; k < tabNavigation.length; k++) { var tabId = tabNavigation[k].getAttribute('data-tab-id'); document.getElementById(tabId).className = 'hidden'; removeClass(tabNavigation[k], 'active'); } addClass(activeTab, 'active'); var activeTabId = activeTab.getAttribute('data-tab-id'); document.getElementById(activeTabId).className = 'block'; }); } tabGroups[i].setAttribute('data-processed', 'true'); } }, createToggles: function() { var toggles = document.querySelectorAll('.sf-toggle:not([data-processed=true])'); for (var i = 0; i < toggles.length; i++) { var elementSelector = toggles[i].getAttribute('data-toggle-selector'); var element = document.querySelector(elementSelector); addClass(element, 'sf-toggle-content'); if (toggles[i].hasAttribute('data-toggle-initial') && toggles[i].getAttribute('data-toggle-initial') == 'display') { addClass(toggles[i], 'sf-toggle-on'); addClass(element, 'sf-toggle-visible'); } else { addClass(toggles[i], 'sf-toggle-off'); addClass(element, 'sf-toggle-hidden'); } addEventListener(toggles[i], 'click', function(e) { e.preventDefault(); if ('' !== window.getSelection().toString()) { /* Don't do anything on text selection */ return; } var toggle = e.target || e.srcElement; /* needed because when the toggle contains HTML contents, user can click */ /* on any of those elements instead of their parent '.sf-toggle' element */ while (!hasClass(toggle, 'sf-toggle')) { toggle = toggle.parentNode; } var element = document.querySelector(toggle.getAttribute('data-toggle-selector')); toggleClass(toggle, 'sf-toggle-on'); toggleClass(toggle, 'sf-toggle-off'); toggleClass(element, 'sf-toggle-hidden'); toggleClass(element, 'sf-toggle-visible'); /* the toggle doesn't change its contents when clicking on it */ if (!toggle.hasAttribute('data-toggle-alt-content')) { return; } if (!toggle.hasAttribute('data-toggle-original-content')) { toggle.setAttribute('data-toggle-original-content', toggle.innerHTML); } var currentContent = toggle.innerHTML; var originalContent = toggle.getAttribute('data-toggle-original-content'); var altContent = toggle.getAttribute('data-toggle-alt-content'); toggle.innerHTML = currentContent !== altContent ? altContent : originalContent; }); /* Prevents from disallowing clicks on links inside toggles */ var toggleLinks = toggles[i].querySelectorAll('a'); for (var j = 0; j < toggleLinks.length; j++) { addEventListener(toggleLinks[j], 'click', function(e) { e.stopPropagation(); }); } /* Prevents from disallowing clicks on "copy to clipboard" elements inside toggles */ var copyToClipboardElements = toggles[i].querySelectorAll('span[data-clipboard-text]'); for (var k = 0; k < copyToClipboardElements.length; k++) { addEventListener(copyToClipboardElements[k], 'click', function(e) { e.stopPropagation(); }); } toggles[i].setAttribute('data-processed', 'true'); } }, initializeLogsTable: function() { Sfjs.updateLogsTable(); document.querySelectorAll('.log-filter input').forEach((input) => { input.addEventListener('change', () => { Sfjs.updateLogsTable(); }); }); document.querySelectorAll('.filter-select-all-or-none button').forEach((link) => { link.addEventListener('click', () => { const selectAll = link.classList.contains('select-all'); link.closest('.log-filter-content').querySelectorAll('input').forEach((input) => { input.checked = selectAll; }); Sfjs.updateLogsTable(); }); }); document.body.addEventListener('click', (event) => { document.querySelectorAll('details.log-filter').forEach((filterElement) => { if (!filterElement.contains(event.target) && filterElement.open) { filterElement.open = false; } }); }); }, updateLogsTable: function() { const selectedType = document.querySelector('#log-filter-type input:checked').value; const priorities = document.querySelectorAll('#log-filter-priority input'); const allPriorities = Array.from(priorities).map((input) => input.value); const selectedPriorities = Array.from(priorities).filter((input) => input.checked).map((input) => input.value); const channels = document.querySelectorAll('#log-filter-channel input'); const selectedChannels = Array.from(channels).filter((input) => input.checked).map((input) => input.value); const logs = document.querySelector('table.logs'); if (null === logs) { return; } /* hide rows that don't match the current filters */ let numVisibleRows = 0; logs.querySelectorAll('tbody tr').forEach((row) => { if ('all' !== selectedType && selectedType !== row.getAttribute('data-type')) { row.style.display = 'none'; return; } const priority = row.getAttribute('data-priority'); if (false === selectedPriorities.includes(priority) && true === allPriorities.includes(priority)) { row.style.display = 'none'; return; } if ('' !== row.getAttribute('data-channel') && false === selectedChannels.includes(row.getAttribute('data-channel'))) { row.style.display = 'none'; return; } row.style.display = 'table-row'; numVisibleRows++; }); document.querySelector('table.logs').style.display = 0 === numVisibleRows ? 'none' : 'table'; document.querySelector('.no-logs-message').style.display = 0 === numVisibleRows ? 'block' : 'none'; /* update the selected totals of all filters */ document.querySelector('#log-filter-priority .filter-active-num').innerText = (priorities.length === selectedPriorities.length) ? 'All' : selectedPriorities.length; document.querySelector('#log-filter-channel .filter-active-num').innerText = (channels.length === selectedChannels.length) ? 'All' : selectedChannels.length; /* update the currently selected "log type" tab */ document.querySelectorAll('#log-filter-type li').forEach((tab) => tab.classList.remove('active')); document.querySelector(`#log-filter-type input[value="${selectedType}"]`).parentElement.classList.add('active'); }, }; })(); Sfjs.addEventListener(document, 'DOMContentLoaded', function() { Sfjs.createTabs(); Sfjs.createToggles(); });}/*]]>*/</script><style nonce="dc9da148c12d83e34889b92d3d5775fd"> .sf-minitoolbar { background-color: #222; border-top-left-radius: 4px; bottom: 0; box-sizing: border-box; display: none; height: 36px; padding: 6px; position: fixed; right: 0; z-index: 99999;}.sf-minitoolbar button { background-color: transparent; padding: 0; border: none;}.sf-minitoolbar svg,.sf-minitoolbar img { max-height: 24px; max-width: 24px; display: inline;}.sf-toolbar-clearer { clear: both; height: 36px;}.sf-display-none { display: none;}.sf-toolbarreset * { box-sizing: content-box; vertical-align: baseline; letter-spacing: normal; width: auto;}.sf-toolbarreset { background-color: #222; bottom: 0; box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); color: #EEE; font: 11px Arial, sans-serif; left: 0; margin: 0; padding: 0 36px 0 0; position: fixed; right: 0; text-align: left; text-transform: none; z-index: 99999; direction: ltr; /* neutralize the aliasing defined by external CSS styles */ -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto;}.sf-toolbarreset abbr { border: dashed #777; border-width: 0 0 1px;}.sf-toolbarreset svg,.sf-toolbarreset img { height: 20px; width: 20px; display: inline-block;}.sf-toolbarreset .sf-cancel-button { color: #444;}.sf-toolbarreset .hide-button { background: #444; display: block; position: absolute; top: 0; right: 0; width: 36px; height: 36px; cursor: pointer; text-align: center; border: none; margin: 0; padding: 0;}.sf-toolbarreset .hide-button svg { max-height: 18px; margin-top: 1px;}.sf-toolbar-block { cursor: default; display: block; float: left; height: 36px; margin-right: 0; white-space: nowrap; max-width: 15%;}.sf-toolbar-block > a,.sf-toolbar-block > a:hover { display: block; text-decoration: none; background-color: transparent; color: inherit;}.sf-toolbar-block span { display: inline-block;}.sf-toolbar-block .sf-toolbar-value { color: #F5F5F5; font-size: 13px; line-height: 36px; padding: 0;}.sf-toolbar-block .sf-toolbar-label,.sf-toolbar-block .sf-toolbar-class-separator { color: #AAA; font-size: 12px;}.sf-toolbar-block .sf-toolbar-info { border-collapse: collapse; display: table; z-index: 100000;}.sf-toolbar-block hr { border-top: 1px solid #777; margin: 4px 0; padding-top: 4px;}.sf-toolbar-block .sf-toolbar-info-piece { /* this 'border-bottom' trick is needed because 'margin-bottom' doesn't work for table rows */ border-bottom: solid transparent 3px; display: table-row;}.sf-toolbar-block .sf-toolbar-info-piece-additional,.sf-toolbar-block .sf-toolbar-info-piece-additional-detail { display: none;}.sf-toolbar-block .sf-toolbar-info-group { margin-bottom: 4px; padding-bottom: 2px; border-bottom: 1px solid #333333;}.sf-toolbar-block .sf-toolbar-info-group:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none;}.sf-toolbar-block .sf-toolbar-info-piece .sf-toolbar-status { padding: 2px 5px; margin-bottom: 0;}.sf-toolbar-block .sf-toolbar-info-piece .sf-toolbar-status + .sf-toolbar-status { margin-left: 4px;}.sf-toolbar-block .sf-toolbar-info-piece:last-child { margin-bottom: 0;}div.sf-toolbar .sf-toolbar-block .sf-toolbar-info-piece a { color: #99CDD8; text-decoration: underline;}div.sf-toolbar .sf-toolbar-block a:hover { text-decoration: none;}.sf-toolbar-block .sf-toolbar-info-piece b { color: #AAA; display: table-cell; font-size: 11px; padding: 4px 8px 4px 0;}.sf-toolbar-block:not(.sf-toolbar-block-dump) .sf-toolbar-info-piece span { color: #F5F5F5;}.sf-toolbar-block .sf-toolbar-info-piece span { font-size: 12px;}.sf-toolbar-block .sf-toolbar-info { background-color: #444; bottom: 36px; color: #F5F5F5; display: none; padding: 9px 0; position: absolute;}.sf-toolbar-block .sf-toolbar-info:empty { visibility: hidden;}.sf-toolbar-block .sf-toolbar-status { display: inline-block; color: #FFF; background-color: #666; padding: 3px 6px; margin-bottom: 2px; vertical-align: middle; min-width: 15px; min-height: 13px; text-align: center;}.sf-toolbar-block .sf-toolbar-status-green { background-color: #4F805D;}.sf-toolbar-block .sf-toolbar-status-red { background-color: #B0413E;}.sf-toolbar-block .sf-toolbar-status-yellow { background-color: #A46A1F;}.sf-toolbar-block.sf-toolbar-status-green { background-color: #4F805D; color: #FFF;}.sf-toolbar-block.sf-toolbar-status-red { background-color: #B0413E; color: #FFF;}.sf-toolbar-block.sf-toolbar-status-yellow { background-color: #A46A1F; color: #FFF;}.sf-toolbar-block-request .sf-toolbar-status { color: #FFF; display: inline-block; font-size: 14px; height: 36px; line-height: 36px; padding: 0 10px;}.sf-toolbar-block-request .sf-toolbar-info-piece a { background-color: transparent; text-decoration: none;}.sf-toolbar-block-request .sf-toolbar-info-piece a:hover { text-decoration: underline;}.sf-toolbar-block-request .sf-toolbar-redirection-status { font-weight: normal; padding: 2px 4px; line-height: 18px;}.sf-toolbar-block-request .sf-toolbar-info-piece span.sf-toolbar-redirection-method { font-size: 12px; height: 17px; line-height: 17px; margin-right: 5px;}.sf-toolbar-block-ajax .sf-toolbar-icon { cursor: pointer;}.sf-toolbar-status-green .sf-toolbar-label,.sf-toolbar-status-yellow .sf-toolbar-label,.sf-toolbar-status-red .sf-toolbar-label { color: #FFF;}.sf-toolbar-status-green svg path,.sf-toolbar-status-green svg .sf-svg-path,.sf-toolbar-status-red svg path,.sf-toolbar-status-red svg .sf-svg-path,.sf-toolbar-status-yellow svg path,.sf-toolbar-status-yellow svg .sf-svg-path { fill: #FFF;}.sf-toolbar-block-config svg path,.sf-toolbar-block-config svg .sf-svg-path { fill: #FFF;}.sf-toolbar-block .sf-toolbar-icon { display: block; height: 36px; padding: 0 7px; overflow: hidden; text-overflow: ellipsis;}.sf-toolbar-block-request .sf-toolbar-icon { padding-left: 0; padding-right: 0;}.sf-toolbar-block .sf-toolbar-icon img,.sf-toolbar-block .sf-toolbar-icon svg { border-width: 0; position: relative; top: 8px; vertical-align: baseline;}.sf-toolbar-block .sf-toolbar-icon img + span,.sf-toolbar-block .sf-toolbar-icon svg + span { margin-left: 4px;}.sf-toolbar-block-config .sf-toolbar-icon .sf-toolbar-value { margin-left: 4px;}.sf-toolbar-block:hover,.sf-toolbar-block.hover { position: relative;}.sf-toolbar-block:hover .sf-toolbar-icon,.sf-toolbar-block.hover .sf-toolbar-icon { background-color: #444; position: relative; z-index: 10002;}.sf-toolbar-block-ajax.hover .sf-toolbar-info { z-index: 10001;}.sf-toolbar-block:hover .sf-toolbar-info,.sf-toolbar-block.hover .sf-toolbar-info { display: block; padding: 10px; max-width: 525px; max-height: 480px; word-wrap: break-word; overflow: hidden; overflow-y: auto;}.sf-toolbar-info-piece b.sf-toolbar-ajax-info { color: #F5F5F5;}.sf-toolbar-ajax-requests { table-layout: auto; width: 100%;}.sf-toolbar-ajax-requests td { background-color: #444; border-bottom: 1px solid #777; color: #F5F5F5; font-size: 12px; padding: 4px;}.sf-toolbar-ajax-requests tr:last-child td { border-bottom: 0;}.sf-toolbar-ajax-requests th { background-color: #222; border-bottom: 0; color: #AAA; font-size: 11px; padding: 4px;}.sf-ajax-request-url { max-width: 250px; line-height: 9px; overflow: hidden; text-overflow: ellipsis;}.sf-toolbar-ajax-requests .sf-ajax-request-url a { text-decoration: none;}.sf-toolbar-ajax-requests .sf-ajax-request-url a:hover { text-decoration: underline;}.sf-ajax-request-duration { text-align: right;}.sf-ajax-request-loading { animation: sf-blink .5s ease-in-out infinite;}@keyframes sf-blink { 0% { background: #222; } 50% { background: #444; } 100% { background: #222; }}.sf-toolbar-block.sf-toolbar-block-dump .sf-toolbar-info { max-width: none; width: 100%; position: fixed; box-sizing: border-box; left: 0;}.sf-toolbar-block-dump pre.sf-dump { background-color: #222; border-color: #777; border-radius: 0; margin: 6px 0 12px 0;}.sf-toolbar-block-dump pre.sf-dump:last-child { margin-bottom: 0;}.sf-toolbar-block-dump pre.sf-dump .sf-dump-search-wrapper { margin-bottom: 5px;}.sf-toolbar-block-dump pre.sf-dump span.sf-dump-search-count { color: #333; font-size: 12px;}.sf-toolbar-block-dump .sf-toolbar-info-piece { display: block;}.sf-toolbar-block-dump .sf-toolbar-info-piece .sf-toolbar-file-line { color: #AAA; margin-left: 4px;}.sf-toolbar-block-dump .sf-toolbar-info img { display: none;}/* Responsive Design */.sf-toolbar-icon .sf-toolbar-label,.sf-toolbar-icon .sf-toolbar-value { display: none;}.sf-toolbar-block-config .sf-toolbar-icon .sf-toolbar-label { display: inline-block;}/* Legacy Design - these styles are maintained to make old panels look a bit better on the new toolbar */.sf-toolbar-block .sf-toolbar-info-piece-additional-detail { color: #AAA; font-size: 12px;}.sf-toolbar-status-green .sf-toolbar-info-piece-additional-detail,.sf-toolbar-status-yellow .sf-toolbar-info-piece-additional-detail,.sf-toolbar-status-red .sf-toolbar-info-piece-additional-detail { color: #FFF;}@media (min-width: 768px) { .sf-toolbar-icon .sf-toolbar-label, .sf-toolbar-icon .sf-toolbar-value { display: inline; } .sf-toolbar-block .sf-toolbar-icon img, .sf-toolbar-block .sf-toolbar-icon svg { top: 6px; } .sf-toolbar-block-time .sf-toolbar-icon svg, .sf-toolbar-block-memory .sf-toolbar-icon svg { display: none; } .sf-toolbar-block-time .sf-toolbar-icon svg + span, .sf-toolbar-block-memory .sf-toolbar-icon svg + span { margin-left: 0; } .sf-toolbar-block .sf-toolbar-icon { padding: 0 10px; } .sf-toolbar-block-time .sf-toolbar-icon { padding-right: 5px; } .sf-toolbar-block-memory .sf-toolbar-icon { padding-left: 5px; } .sf-toolbar-block-request .sf-toolbar-icon { padding-left: 0; padding-right: 0; } .sf-toolbar-block-request .sf-toolbar-label { margin-left: 5px; } .sf-toolbar-block-request .sf-toolbar-status + svg { margin-left: 5px; } .sf-toolbar-block-request .sf-toolbar-icon svg + .sf-toolbar-label { margin-left: 0; } .sf-toolbar-block-request .sf-toolbar-label + .sf-toolbar-value { margin-right: 10px; } .sf-toolbar-block-request:hover .sf-toolbar-info { max-width: none; } .sf-toolbar-block .sf-toolbar-info-piece b { font-size: 12px; } .sf-toolbar-block .sf-toolbar-info-piece span { font-size: 13px; } .sf-toolbar-block-right { float: right; margin-left: 0; margin-right: 0; }}@media (min-width: 1024px) { .sf-toolbar-block .sf-toolbar-info-piece-additional, .sf-toolbar-block .sf-toolbar-info-piece-additional-detail { display: inline; } .sf-toolbar-block .sf-toolbar-info-piece-additional:empty, .sf-toolbar-block .sf-toolbar-info-piece-additional-detail:empty { display: none; }}/***** Error Toolbar *****/.sf-error-toolbar .sf-toolbarreset { background: #222; color: #f5f5f5; font: 13px/36px Arial, sans-serif; height: 36px; padding: 0 15px; text-align: left;}.sf-error-toolbar .sf-toolbarreset svg { height: auto;}.sf-error-toolbar .sf-toolbarreset a { color: #99cdd8; margin-left: 5px; text-decoration: underline;}.sf-error-toolbar .sf-toolbarreset a:hover { text-decoration: none;}.sf-error-toolbar .sf-toolbarreset .sf-toolbar-icon { float: left; padding: 5px 0; margin-right: 10px;}.sf-full-stack { left: 0px; font-size: 12px;}/***** Media query print: Do not print the Toolbar. *****/@media print { .sf-toolbar { display: none !important; }}</style><script nonce="fe4acb70c0509c696455ca7b105cbf04">/*<![CDATA[*/ (function () { Sfjs.loadToolbar('f195bd'); })();/*]]>*/</script>\n </body>\n </html>\n """ #version: "1.1" #statusCode: 200 #statusText: "OK" #charset: "UTF-8" } |
| path | "there-are-hundreds-of-photos-but-the-best-ones-youre-not-getting-accelerator-team-batch-19-2-5-vodo/" |