{"id":49209,"date":"2023-11-07T10:54:39","date_gmt":"2023-11-07T09:54:39","guid":{"rendered":"https:\/\/www.inovex.de\/?p=49209"},"modified":"2023-11-07T12:22:39","modified_gmt":"2023-11-07T11:22:39","slug":"bring-your-own-backend-thoughts-on-web-apps-without-servers","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/","title":{"rendered":"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers"},"content":{"rendered":"<p>Today, I would like to share with you some thoughts and code on a topic I have been dabbling in \u2013 hopefully to entertain a bit and maybe even to spark some interest.\u00a0I will talk about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.<!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#The-Web-app\" >The Web app<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#But-%E2%80%A6-why\" >But &#8230; why?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#Bring-your-own-Backend-for-a-web-app\" >Bring your own Backend for a web app<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"The-Web-app\"><\/span>The Web app<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The web app is here: <a href=\"https:\/\/mroemer.pages.inovex.de\/schnucki\">https:\/\/mroemer.pages.inovex.de\/schnucki<\/a> (view source if you are curious).\u00a0It can be used to track the results of a tournament of the game rock-paper-scissors.<\/p>\n<p>So, let&#8217;s assume Mario, Luigi, and Peach come together to see who the champion is. They all play against each other, Luigi enters the results into the web app and then they know who&#8217;s the best.<br \/>\nFun times!<\/p>\n<p>Word gets around and the next time a lot more characters show up for the tournament. They even have to play multiple matches in parallel in order to be done in time for dinner.\u00a0Poor Luigi can barely keep up with entering the results, not to mention playing his own matches.<br \/>\nIt&#8217;s a mess!<\/p>\n<p>It would be super convenient if multiple characters could enter results from their own devices but so far all the data is stored inside Luigi&#8217;s browser&#8217;s local storage.<\/p>\n<p>One solution to this conundrum and the idea I have been toying with is this:<br \/>\nLuigi installs a native app on his mobile. Inside it, we start an http-server.\u00a0Now, several characters can open the web app on their device and connect to this server in order to access the data.<br \/>\nHooray!<\/p>\n<p>Well, almost.<\/p>\n<p>All devices must be able to talk directly to the mobile running the native app. This is probably fine if everyone is connected to the same Wi-Fi network. But you might run into trouble when NATs get involved and you start punching holes into firewalls.<\/p>\n<p>Also, the in-app HTTP-server generates its own self-signed certificate. You will have to convince your browser to trust it. This is not something we should teach people to do willy-nilly!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"But-%E2%80%A6-why\"><\/span>But &#8230; why?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The web app is super rudimentary and the use case of the rock-paper-scissors tournament is a bit contrived. Yes.<br \/>\nThey serve as a springboard for exploring ideas.<\/p>\n<p>Imagine Wario: He has some web-dev skillz. He programs this web app for himself and his gang, just for fun.<br \/>\nAnd then, through the magic of zero marginal costs on the internet, this web app can be gifted to the rest of the mushroom kingdom.<\/p>\n<p>Compare it to knitting a sweater and gifting it to a friend. When the next friend inevitably asks for their own sweater, Wario would have to start knitting again.\u00a0With software, he can \u201cwrite once, gift anywhere\u201c.<br \/>\nI think that is just awesome!<\/p>\n<p>This already works for web apps that require only one device.\u00a0However, some use cases benefit from using multiple devices.\u00a0The usual way to have multiple devices collaborate on the same data is to have a central server, running somewhere on the internet.<br \/>\nThat would work, of course.<\/p>\n<p>But this server needs to be operated and maintained. Wario would have to do this himself, pay somebody else to do it, or hope that the free tier of some as-a-service service will survive indefinitely.\u00a0None of these options look appealing. They come with a lot of commitment; be it time-wise, financial, or stress-inducing.<br \/>\nWario prefers to just code and gift.<\/p>\n<p>So, I am exploring this space. Looking for the sweet spot between \u201clocal-only single-device\u201c and \u201cfull-blown internet-hosted services\u201c. Which brings us to the title of this blog post: <strong>Bring your own backend.<br \/>\n<\/strong><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Bring-your-own-Backend-for-a-web-app\"><\/span>Bring your own Backend for a web app<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Luigi and his gang want to use Wario&#8217;s web app. The web app needs a backend. Luigi should be empowered to run this backend by himself.\u00a0But Luigi is not a techie. You cannot tell him to \u201cjust sign in to the registry and deploy this container-image to your Kubernetes cluster\u201c.<br \/>\nInstalling an app on your mobile on the other hand might be a reasonable ask.<\/p>\n<p>So this is where I am at the moment.<\/p>\n<p>Previously, I tried to use WebRTC to enable two browsers to talk directly to each other. That kinda worked, but got messy with my \u201cno internet\u201c-constraint.<br \/>\nInstead of using signaling-servers on the internet to establish the WebRTC connection, the browsers each had to scan QR-codes generated on the other device. It technically worked, but I couldn&#8217;t get the UX to be tolerable.<br \/>\nWould have been awesome, though. Serving only static files, no backend, no app store&#8230; chef&#8217;s kiss!<\/p>\n<p>Instead, I wrote an android-app \ud83d\ude05<br \/>\nI convinced myself to write the native app by saying that it could provide a generic interface for accessing data. So that it can be used not only for Wario&#8217;s web app but for others as well. Bowser could write some other collaborative webapp and the users could use the same native-app to bring their own backend.<\/p>\n<p>Another idea would be to write a Nextcloud app that serves the same purpose as the native app.<br \/>\nThat would require a bit more from the user, though. They need to have access to a Nextcloud instance and be able to install apps.<br \/>\nBut it would alleviate the two limitations from above. We could avoid the ssl-warning-override with a &#8222;real&#8220; ssl-certificate. And users from outside the local network could reach the server.<br \/>\nThe trick here is, that the nextcloud would still be operated by Luigi (the user), not by Wario (the webapp-developer).<\/p>\n<p>The general thoughts and ideas undergirding this are not new. Search the web for \u201cunhosted\u201c or \u201cnobackend\u201c and you will find blog posts from 10 years ago, focusing on different facets of this wider topic.<br \/>\nI just think it&#8217;s fascinating and wanted to share my view.<\/p>\n<p>Cheers \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, I would like to share with you some thoughts and code on a topic I have been dabbling in \u2013 hopefully to entertain a bit and maybe even to spark some interest.\u00a0I will talk about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.<\/p>\n","protected":false},"author":42,"featured_media":49713,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[68],"service":[425],"coauthors":[{"id":42,"display_name":"Matthias R\u00f6mer","user_nicename":"mroemer"}],"class_list":["post-49209","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-backend","service-backend"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers - inovex GmbH<\/title>\n<meta name=\"description\" content=\"Some thoughts about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"Some thoughts about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-07T09:54:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-07T11:22:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Matthias R\u00f6mer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend-1024x601.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthias R\u00f6mer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Matthias R\u00f6mer\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/\"},\"author\":{\"name\":\"Matthias R\u00f6mer\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/25e7425642033d2d939b9281b4047457\"},\"headline\":\"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers\",\"datePublished\":\"2023-11-07T09:54:39+00:00\",\"dateModified\":\"2023-11-07T11:22:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/\"},\"wordCount\":978,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Bring-Your-Own-Backend.png\",\"keywords\":[\"Backend\"],\"articleSection\":[\"Applications\",\"English Content\",\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/\",\"name\":\"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Bring-Your-Own-Backend.png\",\"datePublished\":\"2023-11-07T09:54:39+00:00\",\"dateModified\":\"2023-11-07T11:22:39+00:00\",\"description\":\"Some thoughts about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Bring-Your-Own-Backend.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Bring-Your-Own-Backend.png\",\"width\":1500,\"height\":880,\"caption\":\"Alternativtext: \\\"Grafische Darstellung eines 'Bring Your Own Backend'-Konzepts. Auf der linken und rechten Seite sind Server dargestellt, die mit einer mobilen Benutzeroberfl\u00e4che in der Mitte verbunden sind. Die Benutzeroberfl\u00e4che zeigt verschiedene App-Elemente und Informationen. Der Hintergrund ist in einem dunklen Blau gehalten.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/bring-your-own-backend-thoughts-on-web-apps-without-servers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/25e7425642033d2d939b9281b4047457\",\"name\":\"Matthias R\u00f6mer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2c89237f3b8c4a3cffcc041994c810b17d05710d2ee9c8ca3bfaf923d644d18c?s=96&d=retro&r=g2a11df047a930ade3df43b39e9adb71e\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2c89237f3b8c4a3cffcc041994c810b17d05710d2ee9c8ca3bfaf923d644d18c?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2c89237f3b8c4a3cffcc041994c810b17d05710d2ee9c8ca3bfaf923d644d18c?s=96&d=retro&r=g\",\"caption\":\"Matthias R\u00f6mer\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/mroemer\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers - inovex GmbH","description":"Some thoughts about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/","og_locale":"de_DE","og_type":"article","og_title":"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers - inovex GmbH","og_description":"Some thoughts about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.","og_url":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2023-11-07T09:54:39+00:00","article_modified_time":"2023-11-07T11:22:39+00:00","og_image":[{"width":1500,"height":880,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend.png","type":"image\/png"}],"author":"Matthias R\u00f6mer","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend-1024x601.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Matthias R\u00f6mer","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten","Written by":"Matthias R\u00f6mer"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/"},"author":{"name":"Matthias R\u00f6mer","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/25e7425642033d2d939b9281b4047457"},"headline":"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers","datePublished":"2023-11-07T09:54:39+00:00","dateModified":"2023-11-07T11:22:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/"},"wordCount":978,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend.png","keywords":["Backend"],"articleSection":["Applications","English Content","General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/","url":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/","name":"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend.png","datePublished":"2023-11-07T09:54:39+00:00","dateModified":"2023-11-07T11:22:39+00:00","description":"Some thoughts about a collaborative web app that works without a server on the internet; and the philosophy that motivates this.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Bring-Your-Own-Backend.png","width":1500,"height":880,"caption":"Alternativtext: \"Grafische Darstellung eines 'Bring Your Own Backend'-Konzepts. Auf der linken und rechten Seite sind Server dargestellt, die mit einer mobilen Benutzeroberfl\u00e4che in der Mitte verbunden sind. Die Benutzeroberfl\u00e4che zeigt verschiedene App-Elemente und Informationen. Der Hintergrund ist in einem dunklen Blau gehalten."},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/bring-your-own-backend-thoughts-on-web-apps-without-servers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Bring Your Own Backend \u2013 Thoughts on Web Apps Without Servers"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/25e7425642033d2d939b9281b4047457","name":"Matthias R\u00f6mer","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/2c89237f3b8c4a3cffcc041994c810b17d05710d2ee9c8ca3bfaf923d644d18c?s=96&d=retro&r=g2a11df047a930ade3df43b39e9adb71e","url":"https:\/\/secure.gravatar.com\/avatar\/2c89237f3b8c4a3cffcc041994c810b17d05710d2ee9c8ca3bfaf923d644d18c?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2c89237f3b8c4a3cffcc041994c810b17d05710d2ee9c8ca3bfaf923d644d18c?s=96&d=retro&r=g","caption":"Matthias R\u00f6mer"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/mroemer\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/49209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=49209"}],"version-history":[{"count":5,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/49209\/revisions"}],"predecessor-version":[{"id":49730,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/49209\/revisions\/49730"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/49713"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=49209"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=49209"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=49209"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=49209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}