PageSourceSearch

https://cdn.webgamedev.com/_next/static/chunks/pages/backend/backend-as-a-service-10a70325f3bcb382.js

js webgamedev.com collected 2026-09-25 21:02:05 UTC 4,825 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3317],{9357:(e,n,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/backend/backend-as-a-service",function(){return r(6794)}])},6794:(e,n,r)=>{"use strict";r.r(n),r.d(n,{default:()=>c,useTOC:()=>l});var t=r(5893),a=r(7812),s=r(1304),i=r(8925);function l(e){return[{value:"General-purpose",id:"general-purpose",depth:2},{value:"Game-specific",id:"game-specific",depth:2}]}r(6973),r(7654);let c=(0,a.c)(function(e){let{toc:n=l(e)}=e,r={a:"a",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h1,{children:"☁️ Backend-as-a-Service (BAAS)"}),"\n",(0,t.jsx)(r.p,{children:"You can roll out your own web server, authentication, and websocket solution (or use an external service just for websockets), but if you want to focus on client development or prefer a batteries-included paid service, you can look into these options:"}),"\n",(0,t.jsx)(r.h2,{id:n[0].id,children:n[0].value}),"\n",(0,t.jsx)(r.p,{children:"These include at least a database, authentication, and object storage."}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://firebase.google.com/",children:"Firebase"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://aws.amazon.com/amplify/",children:"AWS Amplify"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://supabase.com/",children:"Supabase"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://parseplatform.org/",children:"Parse"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://appwrite.io/",children:"AppWrite"})}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:n[1].id,children:n[1].value}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://colyseus.io/",children:"Colyseus Cloud"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://heroiclabs.com/",children:"Nakama"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://www.photonengine.com/",children:"Photon"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://hathora.dev/",children:"Hathora"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://playerio.com/",children:"PlayerIO"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://aws.amazon.com/gamelift/",children:"AWS Gamelift"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://playfab.com/",children:"Azure Playfab"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://cloud.google.com/game-servers",children:"GCP Game Servers"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://playflowcloud.com/",children:"PlayFlow"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://joinplayroom.com/",children:"Playroom"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://edgegap.com/",children:"Edgegap"})}),"\n"]})]})},"/backend/backend-as-a-service",{filePath:"src/pages/backend/backend-as-a-service.mdx",pageMap:s.v,frontMatter:{},title:"☁️ Backend-as-a-Service (BAAS)"},"undefined"==typeof RemoteContent?l:RemoteContent.useTOC)},6973:(e,n,r)=>{"use strict";r.d(n,{Z:()=>a});var t=r(5893);let a=e=>{let{children:n,...r}=e;return(0,t.jsxs)("aside",{className:"todo",...r,children:["✏️ ",(0,t.jsx)("b",{children:"TODO"}),": ",n]})}},8925:(e,n,r)=>{"use strict";r.d(n,{a:()=>c});var t=r(1151),a=r(5675),s=r.n(a),i=r(7294);let l={img:e=>(0,i.createElement)("object"==typeof e.src?s():"img",e)},c=e=>(0,t.a)({...l,...e})},7812:(e,n,r)=>{"use strict";r.d(n,{c:()=>o});var t=r(5893),a=r(3665),s=r(8644);let i=(0,r(7294).createContext)({}),l=i.Provider;i.displayName="SSG";var c=r(8925);function o(e,n,r,t){let s=globalThis[a.ud];return s.route=n,s.pageMap=r.pageMap,s.context[n]={Content:e,pageOpts:r,useTOC:t},h}function h({__nextra_pageMap:e=[],__nextra_dynamic_opts:n,...r}){let i=globalThis[a.ud],{Layout:c,themeConfig:o}=i,{route:h,locale:p}=(0,s.t)(),u=i.context[h];if(!u)throw Error(`No content found for the "${h}" route. Please report it as a bug.`);let{pageOpts:f,useTOC:x,Content:j}=u;if(h.startsWith("/["))f.pageMap=e;else for(let{route:n,children:r}of e){let e=n.split("/").slice(p?2:1);(function e(n,[r,...t]){for(let a of n)if("children"in a&&r===a.name)return t.length?e(a.children,t):a})(f.pageMap,e).children=r}if(n){let{title:e,frontMatter:r}=n;f={...f,title:e,frontMatter:r}}return(0,t.jsx)(c,{themeConfig:o,pageOpts:f,pageProps:r,children:(0,t.jsx)(l,{value:r,children:(0,t.jsx)(d,{useTOC:x,children:(0,t.jsx)(j,{...r})})})})}function d({children:e,useTOC:n}){let{wrapper:r}=(0,c.a)();return(0,t.jsx)(p,{useTOC:n,wrapper:r,children:e})}function p({children:e,useTOC:n,wrapper:r,...a}){let s=n(a);return r?(0,t.jsx)(r,{toc:s,children:e}):e}}},e=>{var n=n=>e(e.s=n);e.O(0,[1304,7654,2888,9774,179],()=>n(9357)),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.