diff --git a/content/assets/create-project.png b/content/assets/create-project.png new file mode 100644 index 0000000..ef68a2a Binary files /dev/null and b/content/assets/create-project.png differ diff --git a/content/assets/dashboard.gif b/content/assets/dashboard.gif new file mode 100644 index 0000000..9d15b63 Binary files /dev/null and b/content/assets/dashboard.gif differ diff --git a/content/assets/generate-project-token.png b/content/assets/generate-project-token.png new file mode 100644 index 0000000..4806537 Binary files /dev/null and b/content/assets/generate-project-token.png differ diff --git a/content/assets/posthog-metrics.png b/content/assets/posthog-metrics.png new file mode 100644 index 0000000..04d2f5f Binary files /dev/null and b/content/assets/posthog-metrics.png differ diff --git a/content/assets/project-id.png b/content/assets/project-id.png new file mode 100644 index 0000000..fef2025 Binary files /dev/null and b/content/assets/project-id.png differ diff --git a/content/assets/slow-vs-fast.svg b/content/assets/slow-vs-fast.svg new file mode 100644 index 0000000..e6bb2bd --- /dev/null +++ b/content/assets/slow-vs-fast.svg @@ -0,0 +1 @@ +$β”‚$β”‚β”‚[depot] 0:docker-vs-depot*SYNC ON$dockerbuild-tmyapp:docker.β”‚$depotbuild-tmyapp:depot.🐳DockerBuildStartedβ”‚βš‘DepotBuildStartedBuildinglargeNode.jsapplication...β”‚BuildinglargeNode.jsapplication...[1/6]Pullingbaseimage(node:18-alpine)β”‚[1/6]Baseimage(node:18-alpine)[CACHED]Downloadinglayers.β”‚Loadingfromcache..(2s)β”‚βœ“Baseimagereadyβ”‚[2/6]Dependencies[CACHED]β”‚847packagesavailableinsharedcacheβ”‚Loading.Downloadinglayers..β”‚Loadingfromcache..(2s)β”‚Loading...(4s)β”‚βœ“Dependenciesreadyβ”‚[3/6]Sourcecode[INCREMENTAL]β”‚Copyingchangedfiles.Downloadinglayers...β”‚Loadingfromcache..(2s)β”‚Copyingchangedfiles...Downloadinglayers....β”‚Loadingfromcache..(2s)β”‚Copyingchangedfiles.....(8s)β”‚βœ“Sourceupdatedβ”‚[4/6]Buildprocess[PARALLEL]β”‚Usingdistributedbuildcacheβ”‚Compiling.Downloadinglayers.....β”‚Loadingfromcache..(2s)Downloadinglayers......β”‚Loadingfromcache..(2s)β”‚Compiling......Downloadinglayers.......β”‚Loadingfromcache..(2s)β”‚Compiling.........Downloadinglayers........β”‚Loadingfromcache..(2s)β”‚Compiling............Downloadinglayers.........β”‚Loadingfromcache..(2s)β”‚Compiling..............Downloadinglayers..........β”‚Loadingfromcache..(2s)β”‚Compiling.................Downloadinglayers...........β”‚Loadingfromcache..(2s)β”‚Compiling...................Downloadinglayers............β”‚Loadingfromcache..(2s)β”‚Compiling......................Downloadinglayers.............β”‚Loadingfromcache..(2s)β”‚Compiling.........................Downloadinglayers..............β”‚Loadingfromcache..(2s)β”‚Compiling...........................Downloadinglayers...............β”‚Loadingfromcache..(2s)β”‚Compiling..............................Downloadinglayers................β”‚Loadingfromcache..(2s)β”‚Compiling.................................Downloadinglayers.................β”‚Loadingfromcache..(2s)β”‚Compiling...................................Downloadinglayers..................β”‚Loadingfromcache..(2s)β”‚Compiling......................................Downloadinglayers...................β”‚Loadingfromcache..(2s)β”‚Compiling......................................(75s)β”‚βœ“Buildcompletedβ”‚[5/6]Layeroptimization[CACHED]Downloadinglayers....................β”‚Loadingfromcache..(2s)β”‚Optimizing..(3s)β”‚βœ“Layersoptimizedβ”‚[6/6]Multi-archbuild[NATIVE]β”‚GeneratingARM64+AMD64...Downloadinglayers.....................β”‚Loadingfromcache..(2s)β”‚GeneratingARM64+AMD64......Downloadinglayers......................β”‚Loadingfromcache..(2s)β”‚GeneratingARM64+AMD64........Downloadinglayers.......................β”‚Loadingfromcache..(2s)β”‚GeneratingARM64+AMD64..........(18s)β”‚βœ“Multi-platformreadyβ”‚β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”‚πŸŽ‰Buildcompletedin3.5minutesβ”‚πŸ“¦Image:myapp:depotβ”‚πŸ’ΎSize:387MB(optimized)β”‚πŸš€Multi-platformready(ARM64+AMD64)Downloadinglayers........................(8m)β”‚Loadingfromcache..(2s)βœ“Baseimagepulledβ”‚βœ“Baseimageready[2/6]Installingdependenciesβ”‚[2/6]Dependencies[CACHED]Processing847packagesβ”‚847packagesavailableinsharedcacheInstalling...........β”‚Loading...(4s)β”‚$Installing................................................................β”‚Loading...(4s).......................................................................(4β”‚βœ“Dependenciesready5m)β”‚βœ“Dependenciesinstalledβ”‚[3/6]Sourcecode[INCREMENTAL][3/6]Copyingsourcecodeβ”‚βœ“SourceupdatedCopyingfiles....................................(12m)β”‚βœ“Sourcecopiedβ”‚[4/6]Buildprocess[PARALLEL][4/6]Runningnpmrunbuildβ”‚Compiling......................................(75s)CompilingTypeScriptandbundlingassetsβ”‚βœ“BuildcompletedBuilding..................................................................β”‚..........................................................................β”‚[5/6]Layeroptimization[CACHED]..........................................................................β”‚Optimizing..(3s).........................................(85m)β”‚βœ“Layersoptimizedβœ“Buildcompletedβ”‚[5/6]Optimizinglayersβ”‚GeneratingARM64+AMD64..........(18s)Optimizing................................................................β”‚βœ“Multi-platformready....................(28m)β”‚βœ“Layersoptimized│━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[6/6]Finalizingimageβ”‚πŸ“¦Image:myapp:depotFinalizing.............................................(15m)β”‚πŸ’ΎSize:387MB(optimized)βœ“Imagereadyβ”‚πŸš€Multi-platformready(ARM64+AMD64)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━│$βœ…β”‚[1/6]Pullingbaseimage(node:18-alpine)β”‚$depotbuild-tmyapp:depot.Downloadinglayers........................(8m)β”‚βš‘DepotBuildStartedβœ“Baseimagepulledβ”‚BuildinglargeNode.jsapplication...[2/6]Installingdependenciesβ”‚[1/6]Baseimage(node:18-alpine)[CACHED]Processing847packagesβ”‚Loadingfromcache..(2s)Installing................................................................β”‚βœ“Baseimageready.......................................................................(4β”‚5m)β”‚[2/6]Dependencies[CACHED]βœ“Dependenciesinstalledβ”‚847packagesavailableinsharedcache[3/6]Copyingsourcecodeβ”‚βœ“Dependenciesreadyβœ“Sourcecopiedβ”‚[3/6]Sourcecode[INCREMENTAL][4/6]Runningnpmrunbuildβ”‚βœ“SourceupdatedCompilingTypeScriptandbundlingassetsβ”‚Building..................................................................β”‚[4/6]Buildprocess[PARALLEL]..........................................................................β”‚Usingdistributedbuildcache..........................................................................β”‚Compiling......................................(75s).........................................(85m)β”‚βœ“Buildcompleted[5/6]Optimizinglayersβ”‚Optimizing..(3s)Optimizing................................................................β”‚βœ“Layersoptimizedβœ“Layersoptimizedβ”‚[6/6]Multi-archbuild[NATIVE][6/6]Finalizingimageβ”‚βœ“Multi-platformreadyFinalizing.............................................(15m)β”‚βœ“Imagereadyβ”‚β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”β”‚πŸ“¦Image:myapp:depotβœ…Buildcompletedin193minutesβ”‚πŸ’ΎSize:387MB(optimized)πŸ“¦Image:myapp:dockerβ”‚πŸš€Multi-platformready(ARM64+AMD64)πŸ’ΎSize:847MBβ”‚$doβ”‚$de$dockβ”‚$depo$dockerβ”‚$depot$dockerβ”‚$depotbu$dockerbβ”‚$depotbu$dockerbuiβ”‚$depotbuil$dockerbuildβ”‚$depotbuild$dockerbuild-β”‚$depotbuild-t$dockerbuild-tβ”‚$depotbuild-tm$dockerbuild-tmyβ”‚$depotbuild-tmya$dockerbuild-tmyapβ”‚$depotbuild-tmyapp$dockerbuild-tmyapp:β”‚$depotbuild-tmyapp:d$dockerbuild-tmyapp:doβ”‚$depotbuild-tmyapp:dep$dockerbuild-tmyapp:dockβ”‚$depotbuild-tmyapp:depot$dockerbuild-tmyapp:dockerβ”‚$depotbuild-tmyapp:depot.β”‚βš‘DepotBuildStartedDownloadinglayersβ”‚LoadingfromcacheDownloadinglayers.β”‚Loadingfromcache.Downloadinglayers.β”‚Loadingfromcache..β”‚Loadingβ”‚Loading..β”‚Loading...β”‚Copyingchangedfilesβ”‚Copyingchangedfiles..β”‚Copyingchangedfiles....β”‚Copyingchangedfiles.....β”‚Compilingβ”‚Compiling..β”‚Compiling...β”‚Compiling....β”‚Compiling.....β”‚Compiling.......β”‚Compiling........β”‚Compiling..........β”‚Compiling...........β”‚Compiling.............β”‚Compiling...............β”‚Compiling................β”‚Compiling..................β”‚Compiling....................β”‚Compiling.....................β”‚Compiling.......................β”‚Compiling........................β”‚Compiling..........................β”‚Compiling............................β”‚Compiling.............................β”‚Compiling...............................β”‚Compiling................................β”‚Compiling..................................β”‚Compiling....................................β”‚Compiling.....................................β”‚Optimizingβ”‚Optimizing.β”‚Optimizing..β”‚GeneratingARM64+AMD64β”‚GeneratingARM64+AMD64.β”‚GeneratingARM64+AMD64..β”‚GeneratingARM64+AMD64....β”‚GeneratingARM64+AMD64.....β”‚GeneratingARM64+AMD64.......β”‚GeneratingARM64+AMD64.........β”‚GeneratingARM64+AMD64..........Downloadinglayers........................β”‚Loadingfromcache..(2s)Installingβ”‚Loading...(4s)Installing.β”‚Loading...(4s)Installing..β”‚Loading...(4s)Installing...β”‚Loading...(4s)Installing....β”‚Loading...(4s)Installing.....β”‚Loading...(4s)Installing......β”‚Loading...(4s)Installing.......β”‚Loading...(4s)Installing........β”‚Loading...(4s)Installing.........β”‚Loading...(4s)Installing..........β”‚Loading...(4s)Installing............β”‚Loading...(4s)Installing.............β”‚Loading...(4s)Installing..............β”‚Loading...(4s)Installing...............β”‚Loading...(4s)Installing................β”‚Loading...(4s)Installing.................β”‚Loading...(4s)Installing..................β”‚Loading...(4s)Installing...................β”‚Loading...(4s)Installing....................β”‚Loading...(4s)Installing.....................β”‚Loading...(4s)Installing......................β”‚Loading...(4s)Installing.......................β”‚Loading...(4s)Installing........................β”‚Loading...(4s)Installing.........................β”‚Loading...(4s)Installing..........................β”‚Loading...(4s)Installing...........................β”‚Loading...(4s)Installing............................β”‚Loading...(4s)Installing.............................β”‚Loading...(4s)Installing..............................β”‚Loading...(4s)Installing...............................β”‚Loading...(4s)Installing................................β”‚Loading...(4s)Installing.................................β”‚Loading...(4s)Installing..................................β”‚Loading...(4s)Installing...................................β”‚Loading...(4s)Installing....................................β”‚Loading...(4s)Installing.....................................β”‚Loading...(4s)Installing......................................β”‚Loading...(4s)Installing.......................................β”‚Loading...(4s)Installing........................................β”‚Loading...(4s)Installing.........................................β”‚Loading...(4s)Installing..........................................β”‚Loading...(4s)Installing...........................................β”‚Loading...(4s)Installing............................................β”‚Loading...(4s)Installing.............................................β”‚Loading...(4s)Installing..............................................β”‚Loading...(4s)Installing...............................................β”‚Loading...(4s)Installing................................................β”‚Loading...(4s)Installing.................................................β”‚Loading...(4s)Installing..................................................β”‚Loading...(4s)Installing...................................................β”‚Loading...(4s)Installing....................................................β”‚Loading...(4s)Installing.....................................................β”‚Loading...(4s)Installing......................................................β”‚Loading...(4s)Installing.......................................................β”‚Loading...(4s)Installing........................................................β”‚Loading...(4s)Installing.........................................................β”‚Loading...(4s)Installing..........................................................β”‚Loading...(4s)Installing...........................................................β”‚Loading...(4s)Installing............................................................β”‚Loading...(4s)Installing.............................................................β”‚Loading...(4s)Installing..............................................................β”‚Loading...(4s)Installing...............................................................β”‚Loading...(4s).β”‚βœ“Dependenciesready..β”‚βœ“Dependenciesready...β”‚βœ“Dependenciesready....β”‚βœ“Dependenciesready.....β”‚βœ“Dependenciesready......β”‚βœ“Dependenciesready.......β”‚βœ“Dependenciesready........β”‚βœ“Dependenciesready.........β”‚βœ“Dependenciesready..........β”‚βœ“Dependenciesready...........β”‚βœ“Dependenciesready............β”‚βœ“Dependenciesready.............β”‚βœ“Dependenciesready..............β”‚βœ“Dependenciesready...............β”‚βœ“Dependenciesready................β”‚βœ“Dependenciesready.................β”‚βœ“Dependenciesready..................β”‚βœ“Dependenciesready...................β”‚βœ“Dependenciesready....................β”‚βœ“Dependenciesready.....................β”‚βœ“Dependenciesready......................β”‚βœ“Dependenciesready.......................β”‚βœ“Dependenciesready........................β”‚βœ“Dependenciesready.........................β”‚βœ“Dependenciesready..........................β”‚βœ“Dependenciesready...........................β”‚βœ“Dependenciesready............................β”‚βœ“Dependenciesready.............................β”‚βœ“Dependenciesready..............................β”‚βœ“Dependenciesready...............................β”‚βœ“Dependenciesready................................β”‚βœ“Dependenciesready.................................β”‚βœ“Dependenciesready..................................β”‚βœ“Dependenciesready...................................β”‚βœ“Dependenciesready....................................β”‚βœ“Dependenciesready.....................................β”‚βœ“Dependenciesready......................................β”‚βœ“Dependenciesready.......................................β”‚βœ“Dependenciesready........................................β”‚βœ“Dependenciesready.........................................β”‚βœ“Dependenciesready..........................................β”‚βœ“Dependenciesready...........................................β”‚βœ“Dependenciesready............................................β”‚βœ“Dependenciesready.............................................β”‚βœ“Dependenciesready..............................................β”‚βœ“Dependenciesready...............................................β”‚βœ“Dependenciesready................................................β”‚βœ“Dependenciesready.................................................β”‚βœ“Dependenciesready..................................................β”‚βœ“Dependenciesready...................................................β”‚βœ“Dependenciesready....................................................β”‚βœ“Dependenciesready.....................................................β”‚βœ“Dependenciesready......................................................β”‚βœ“Dependenciesready.......................................................β”‚βœ“Dependenciesready........................................................β”‚βœ“Dependenciesready.........................................................β”‚βœ“Dependenciesready..........................................................β”‚βœ“Dependenciesready...........................................................β”‚βœ“Dependenciesready............................................................β”‚βœ“Dependenciesready.............................................................β”‚βœ“Dependenciesready..............................................................β”‚βœ“Dependenciesready...............................................................β”‚βœ“Dependenciesready................................................................β”‚βœ“Dependenciesready.................................................................β”‚βœ“Dependenciesready..................................................................β”‚βœ“Dependenciesready...................................................................β”‚βœ“Dependenciesready....................................................................β”‚βœ“Dependenciesready.....................................................................β”‚βœ“Dependenciesready......................................................................β”‚βœ“Dependenciesready.......................................................................β”‚βœ“DependenciesreadyCopyingfilesβ”‚Copyingfiles.β”‚Copyingfiles..β”‚Copyingfiles...β”‚Copyingfiles....β”‚Copyingfiles.....β”‚Copyingfiles......β”‚Copyingfiles.......β”‚Copyingfiles........β”‚Copyingfiles.........β”‚Copyingfiles..........β”‚Copyingfiles...........β”‚Copyingfiles............β”‚Copyingfiles.............β”‚Copyingfiles..............β”‚Copyingfiles...............β”‚Copyingfiles................β”‚Copyingfiles.................β”‚Copyingfiles..................β”‚Copyingfiles...................β”‚Copyingfiles....................β”‚Copyingfiles.....................β”‚Copyingfiles......................β”‚Copyingfiles.......................β”‚Copyingfiles........................β”‚Copyingfiles.........................β”‚Copyingfiles..........................β”‚Copyingfiles...........................β”‚Copyingfiles............................β”‚Copyingfiles.............................β”‚Copyingfiles..............................β”‚Copyingfiles...............................β”‚Copyingfiles................................β”‚Copyingfiles.................................β”‚Copyingfiles..................................β”‚Copyingfiles...................................β”‚Copyingfiles....................................β”‚Buildingβ”‚Building.β”‚Building..β”‚Building...β”‚Building....β”‚Building.....β”‚Building......β”‚Building.......β”‚Building........β”‚Building.........β”‚Building..........β”‚Building...........β”‚Building............β”‚Building.............β”‚Building..............β”‚Building...............β”‚Building................β”‚Building.................β”‚Building..................β”‚Building...................β”‚Building....................β”‚Building.....................β”‚Building......................β”‚Building.......................β”‚Building........................β”‚Building.........................β”‚Building..........................β”‚Building...........................β”‚Building............................β”‚Building.............................β”‚Building..............................β”‚Building...............................β”‚Building................................β”‚Building.................................β”‚Building..................................β”‚Building...................................β”‚Building....................................β”‚Building.....................................β”‚Building......................................β”‚Building.......................................β”‚Building........................................β”‚Building.........................................β”‚Building..........................................β”‚Building...........................................β”‚Building............................................β”‚Building.............................................β”‚Building..............................................β”‚Building...............................................β”‚Building................................................β”‚Building.................................................β”‚Building..................................................β”‚Building...................................................β”‚Building....................................................β”‚Building.....................................................β”‚Building......................................................β”‚Building.......................................................β”‚Building........................................................β”‚Building.........................................................β”‚Building..........................................................β”‚Building...........................................................β”‚Building............................................................β”‚Building.............................................................β”‚Building..............................................................β”‚Building...............................................................β”‚Building................................................................β”‚Building.................................................................β”‚.β”‚[5/6]Layeroptimization[CACHED]..β”‚[5/6]Layeroptimization[CACHED]...β”‚[5/6]Layeroptimization[CACHED]....β”‚[5/6]Layeroptimization[CACHED].....β”‚[5/6]Layeroptimization[CACHED]......β”‚[5/6]Layeroptimization[CACHED].......β”‚[5/6]Layeroptimization[CACHED]........β”‚[5/6]Layeroptimization[CACHED].........β”‚[5/6]Layeroptimization[CACHED]..........β”‚[5/6]Layeroptimization[CACHED]...........β”‚[5/6]Layeroptimization[CACHED]............β”‚[5/6]Layeroptimization[CACHED].............β”‚[5/6]Layeroptimization[CACHED]..............β”‚[5/6]Layeroptimization[CACHED]...............β”‚[5/6]Layeroptimization[CACHED]................β”‚[5/6]Layeroptimization[CACHED].................β”‚[5/6]Layeroptimization[CACHED]..................β”‚[5/6]Layeroptimization[CACHED]...................β”‚[5/6]Layeroptimization[CACHED]....................β”‚[5/6]Layeroptimization[CACHED].....................β”‚[5/6]Layeroptimization[CACHED]......................β”‚[5/6]Layeroptimization[CACHED].......................β”‚[5/6]Layeroptimization[CACHED]........................β”‚[5/6]Layeroptimization[CACHED].........................β”‚[5/6]Layeroptimization[CACHED]..........................β”‚[5/6]Layeroptimization[CACHED]...........................β”‚[5/6]Layeroptimization[CACHED]............................β”‚[5/6]Layeroptimization[CACHED].............................β”‚[5/6]Layeroptimization[CACHED]..............................β”‚[5/6]Layeroptimization[CACHED]...............................β”‚[5/6]Layeroptimization[CACHED]................................β”‚[5/6]Layeroptimization[CACHED].................................β”‚[5/6]Layeroptimization[CACHED]..................................β”‚[5/6]Layeroptimization[CACHED]...................................β”‚[5/6]Layeroptimization[CACHED]....................................β”‚[5/6]Layeroptimization[CACHED].....................................β”‚[5/6]Layeroptimization[CACHED]......................................β”‚[5/6]Layeroptimization[CACHED].......................................β”‚[5/6]Layeroptimization[CACHED]........................................β”‚[5/6]Layeroptimization[CACHED].........................................β”‚[5/6]Layeroptimization[CACHED]..........................................β”‚[5/6]Layeroptimization[CACHED]...........................................β”‚[5/6]Layeroptimization[CACHED]............................................β”‚[5/6]Layeroptimization[CACHED].............................................β”‚[5/6]Layeroptimization[CACHED]..............................................β”‚[5/6]Layeroptimization[CACHED]...............................................β”‚[5/6]Layeroptimization[CACHED]................................................β”‚[5/6]Layeroptimization[CACHED].................................................β”‚[5/6]Layeroptimization[CACHED]..................................................β”‚[5/6]Layeroptimization[CACHED]...................................................β”‚[5/6]Layeroptimization[CACHED]....................................................β”‚[5/6]Layeroptimization[CACHED].....................................................β”‚[5/6]Layeroptimization[CACHED]......................................................β”‚[5/6]Layeroptimization[CACHED].......................................................β”‚[5/6]Layeroptimization[CACHED]........................................................β”‚[5/6]Layeroptimization[CACHED].........................................................β”‚[5/6]Layeroptimization[CACHED]..........................................................β”‚[5/6]Layeroptimization[CACHED]...........................................................β”‚[5/6]Layeroptimization[CACHED]............................................................β”‚[5/6]Layeroptimization[CACHED].............................................................β”‚[5/6]Layeroptimization[CACHED]..............................................................β”‚[5/6]Layeroptimization[CACHED]...............................................................β”‚[5/6]Layeroptimization[CACHED]................................................................β”‚[5/6]Layeroptimization[CACHED].................................................................β”‚[5/6]Layeroptimization[CACHED]..................................................................β”‚[5/6]Layeroptimization[CACHED]...................................................................β”‚[5/6]Layeroptimization[CACHED]....................................................................β”‚[5/6]Layeroptimization[CACHED].....................................................................β”‚[5/6]Layeroptimization[CACHED]......................................................................β”‚[5/6]Layeroptimization[CACHED].......................................................................β”‚[5/6]Layeroptimization[CACHED]........................................................................β”‚[5/6]Layeroptimization[CACHED].........................................................................β”‚[5/6]Layeroptimization[CACHED].β”‚Optimizing..(3s)..β”‚Optimizing..(3s)...β”‚Optimizing..(3s)....β”‚Optimizing..(3s).....β”‚Optimizing..(3s)......β”‚Optimizing..(3s).......β”‚Optimizing..(3s)........β”‚Optimizing..(3s).........β”‚Optimizing..(3s)..........β”‚Optimizing..(3s)...........β”‚Optimizing..(3s)............β”‚Optimizing..(3s).............β”‚Optimizing..(3s)..............β”‚Optimizing..(3s)...............β”‚Optimizing..(3s)................β”‚Optimizing..(3s).................β”‚Optimizing..(3s)..................β”‚Optimizing..(3s)...................β”‚Optimizing..(3s)....................β”‚Optimizing..(3s).....................β”‚Optimizing..(3s)......................β”‚Optimizing..(3s).......................β”‚Optimizing..(3s)........................β”‚Optimizing..(3s).........................β”‚Optimizing..(3s)..........................β”‚Optimizing..(3s)...........................β”‚Optimizing..(3s)............................β”‚Optimizing..(3s).............................β”‚Optimizing..(3s)..............................β”‚Optimizing..(3s)...............................β”‚Optimizing..(3s)................................β”‚Optimizing..(3s).................................β”‚Optimizing..(3s)..................................β”‚Optimizing..(3s)...................................β”‚Optimizing..(3s)....................................β”‚Optimizing..(3s).....................................β”‚Optimizing..(3s)......................................β”‚Optimizing..(3s).......................................β”‚Optimizing..(3s)........................................β”‚Optimizing..(3s).........................................β”‚Optimizing..(3s)..........................................β”‚Optimizing..(3s)...........................................β”‚Optimizing..(3s)............................................β”‚Optimizing..(3s).............................................β”‚Optimizing..(3s)..............................................β”‚Optimizing..(3s)...............................................β”‚Optimizing..(3s)................................................β”‚Optimizing..(3s).................................................β”‚Optimizing..(3s)..................................................β”‚Optimizing..(3s)...................................................β”‚Optimizing..(3s)....................................................β”‚Optimizing..(3s).....................................................β”‚Optimizing..(3s)......................................................β”‚Optimizing..(3s).......................................................β”‚Optimizing..(3s)........................................................β”‚Optimizing..(3s).........................................................β”‚Optimizing..(3s)..........................................................β”‚Optimizing..(3s)...........................................................β”‚Optimizing..(3s)............................................................β”‚Optimizing..(3s).............................................................β”‚Optimizing..(3s)..............................................................β”‚Optimizing..(3s)...............................................................β”‚Optimizing..(3s)................................................................β”‚Optimizing..(3s).................................................................β”‚Optimizing..(3s)..................................................................β”‚Optimizing..(3s)...................................................................β”‚Optimizing..(3s)....................................................................β”‚Optimizing..(3s).....................................................................β”‚Optimizing..(3s)......................................................................β”‚Optimizing..(3s).......................................................................β”‚Optimizing..(3s)........................................................................β”‚Optimizing..(3s).........................................................................β”‚Optimizing..(3s).β”‚βœ“Layersoptimized..β”‚βœ“Layersoptimized...β”‚βœ“Layersoptimized....β”‚βœ“Layersoptimized.....β”‚βœ“Layersoptimized......β”‚βœ“Layersoptimized.......β”‚βœ“Layersoptimized........β”‚βœ“Layersoptimized.........β”‚βœ“Layersoptimized..........β”‚βœ“Layersoptimized...........β”‚βœ“Layersoptimized............β”‚βœ“Layersoptimized.............β”‚βœ“Layersoptimized..............β”‚βœ“Layersoptimized...............β”‚βœ“Layersoptimized................β”‚βœ“Layersoptimized.................β”‚βœ“Layersoptimized..................β”‚βœ“Layersoptimized...................β”‚βœ“Layersoptimized....................β”‚βœ“Layersoptimized.....................β”‚βœ“Layersoptimized......................β”‚βœ“Layersoptimized.......................β”‚βœ“Layersoptimized........................β”‚βœ“Layersoptimized.........................β”‚βœ“Layersoptimized..........................β”‚βœ“Layersoptimized...........................β”‚βœ“Layersoptimized............................β”‚βœ“Layersoptimized.............................β”‚βœ“Layersoptimized..............................β”‚βœ“Layersoptimized...............................β”‚βœ“Layersoptimized................................β”‚βœ“Layersoptimized.................................β”‚βœ“Layersoptimized..................................β”‚βœ“Layersoptimized...................................β”‚βœ“Layersoptimized....................................β”‚βœ“Layersoptimized.....................................β”‚βœ“Layersoptimized......................................β”‚βœ“Layersoptimized.......................................β”‚βœ“Layersoptimized........................................β”‚βœ“Layersoptimized.........................................β”‚βœ“LayersoptimizedOptimizingβ”‚βœ“Multi-platformreadyOptimizing.β”‚βœ“Multi-platformreadyOptimizing..β”‚βœ“Multi-platformreadyOptimizing...β”‚βœ“Multi-platformreadyOptimizing....β”‚βœ“Multi-platformreadyOptimizing.....β”‚βœ“Multi-platformreadyOptimizing......β”‚βœ“Multi-platformreadyOptimizing.......β”‚βœ“Multi-platformreadyOptimizing........β”‚βœ“Multi-platformreadyOptimizing.........β”‚βœ“Multi-platformreadyOptimizing..........β”‚βœ“Multi-platformreadyOptimizing...........β”‚βœ“Multi-platformreadyOptimizing............β”‚βœ“Multi-platformreadyOptimizing.............β”‚βœ“Multi-platformreadyOptimizing..............β”‚βœ“Multi-platformreadyOptimizing...............β”‚βœ“Multi-platformreadyOptimizing................β”‚βœ“Multi-platformreadyOptimizing.................β”‚βœ“Multi-platformreadyOptimizing..................β”‚βœ“Multi-platformreadyOptimizing...................β”‚βœ“Multi-platformreadyOptimizing....................β”‚βœ“Multi-platformreadyOptimizing.....................β”‚βœ“Multi-platformreadyOptimizing......................β”‚βœ“Multi-platformreadyOptimizing.......................β”‚βœ“Multi-platformreadyOptimizing........................β”‚βœ“Multi-platformreadyOptimizing.........................β”‚βœ“Multi-platformreadyOptimizing..........................β”‚βœ“Multi-platformreadyOptimizing...........................β”‚βœ“Multi-platformreadyOptimizing............................β”‚βœ“Multi-platformreadyOptimizing.............................β”‚βœ“Multi-platformreadyOptimizing..............................β”‚βœ“Multi-platformreadyOptimizing...............................β”‚βœ“Multi-platformreadyOptimizing................................β”‚βœ“Multi-platformreadyOptimizing.................................β”‚βœ“Multi-platformreadyOptimizing..................................β”‚βœ“Multi-platformreadyOptimizing...................................β”‚βœ“Multi-platformreadyOptimizing....................................β”‚βœ“Multi-platformreadyOptimizing.....................................β”‚βœ“Multi-platformreadyOptimizing......................................β”‚βœ“Multi-platformreadyOptimizing.......................................β”‚βœ“Multi-platformreadyOptimizing........................................β”‚βœ“Multi-platformreadyOptimizing.........................................β”‚βœ“Multi-platformreadyOptimizing..........................................β”‚βœ“Multi-platformreadyOptimizing...........................................β”‚βœ“Multi-platformreadyOptimizing............................................β”‚βœ“Multi-platformreadyOptimizing.............................................β”‚βœ“Multi-platformreadyOptimizing..............................................β”‚βœ“Multi-platformreadyOptimizing...............................................β”‚βœ“Multi-platformreadyOptimizing................................................β”‚βœ“Multi-platformreadyOptimizing.................................................β”‚βœ“Multi-platformreadyOptimizing..................................................β”‚βœ“Multi-platformreadyOptimizing...................................................β”‚βœ“Multi-platformreadyOptimizing....................................................β”‚βœ“Multi-platformreadyOptimizing.....................................................β”‚βœ“Multi-platformreadyOptimizing......................................................β”‚βœ“Multi-platformreadyOptimizing.......................................................β”‚βœ“Multi-platformreadyOptimizing........................................................β”‚βœ“Multi-platformreadyOptimizing.........................................................β”‚βœ“Multi-platformreadyOptimizing..........................................................β”‚βœ“Multi-platformreadyOptimizing...........................................................β”‚βœ“Multi-platformreadyOptimizing............................................................β”‚βœ“Multi-platformreadyOptimizing.............................................................β”‚βœ“Multi-platformreadyOptimizing..............................................................β”‚βœ“Multi-platformreadyOptimizing...............................................................β”‚βœ“Multi-platformready.β”‚..β”‚...β”‚....β”‚.....β”‚......β”‚.......β”‚........β”‚.........β”‚..........β”‚...........β”‚............β”‚.............β”‚..............β”‚...............β”‚................β”‚.................β”‚..................β”‚...................β”‚....................β”‚Finalizingβ”‚πŸ’ΎSize:387MB(optimized)Finalizing.β”‚πŸ’ΎSize:387MB(optimized)Finalizing..β”‚πŸ’ΎSize:387MB(optimized)Finalizing...β”‚πŸ’ΎSize:387MB(optimized)Finalizing....β”‚πŸ’ΎSize:387MB(optimized)Finalizing.....β”‚πŸ’ΎSize:387MB(optimized)Finalizing......β”‚πŸ’ΎSize:387MB(optimized)Finalizing.......β”‚πŸ’ΎSize:387MB(optimized)Finalizing........β”‚πŸ’ΎSize:387MB(optimized)Finalizing.........β”‚πŸ’ΎSize:387MB(optimized)Finalizing..........β”‚πŸ’ΎSize:387MB(optimized)Finalizing...........β”‚πŸ’ΎSize:387MB(optimized)Finalizing............β”‚πŸ’ΎSize:387MB(optimized)Finalizing.............β”‚πŸ’ΎSize:387MB(optimized)Finalizing..............β”‚πŸ’ΎSize:387MB(optimized)Finalizing...............β”‚πŸ’ΎSize:387MB(optimized)Finalizing................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.................β”‚πŸ’ΎSize:387MB(optimized)Finalizing..................β”‚πŸ’ΎSize:387MB(optimized)Finalizing...................β”‚πŸ’ΎSize:387MB(optimized)Finalizing....................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.....................β”‚πŸ’ΎSize:387MB(optimized)Finalizing......................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.......................β”‚πŸ’ΎSize:387MB(optimized)Finalizing........................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.........................β”‚πŸ’ΎSize:387MB(optimized)Finalizing..........................β”‚πŸ’ΎSize:387MB(optimized)Finalizing...........................β”‚πŸ’ΎSize:387MB(optimized)Finalizing............................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.............................β”‚πŸ’ΎSize:387MB(optimized)Finalizing..............................β”‚πŸ’ΎSize:387MB(optimized)Finalizing...............................β”‚πŸ’ΎSize:387MB(optimized)Finalizing................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing..................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing...................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing....................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.....................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing......................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.......................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing........................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.........................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing..........................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing...........................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing............................................β”‚πŸ’ΎSize:387MB(optimized)Finalizing.............................................β”‚πŸ’ΎSize:387MB(optimized)Optimizing...............................(85m)β”‚βœ“Layersoptimized$β”‚[detached(fromsessiondepot)] \ No newline at end of file diff --git a/content/assets/usage-cap.png b/content/assets/usage-cap.png new file mode 100644 index 0000000..8387d08 Binary files /dev/null and b/content/assets/usage-cap.png differ diff --git a/content/container-builds/quickstart.mdx b/content/container-builds/quickstart.mdx index 789ee2c..5cd4cab 100644 --- a/content/container-builds/quickstart.mdx +++ b/content/container-builds/quickstart.mdx @@ -1,88 +1,202 @@ --- -title: Quickstart for faster Docker image builds with Depot +title: Get started with Depot ogTitle: Getting started with Depot -description: Get started with Depot for up to 40x faster container image builds locally and in CI. +description: Build Docker containers up to 40x faster locally and in CI with Depot. --- -Below is a guide to leveraging Depot for up to 40x faster container image builds with a literal drop-in replacement for `docker build`. +# Get started with Depot -We also offer managed GitHub Actions Runners with 10x faster caching. You can get started with our runners in our [GitHub Actions Overview docs](/docs/github-actions/overview). +Transform your Docker builds from slow to **lightning fast** in under 5 minutes. -## Installing the `depot` CLI +This guide shows you how to replace `docker build` with `depot build` for up to 40x faster container builds. -For Mac, you can install the CLI with Homebrew: +![Before and after build time comparison](/content/assets/slow-vs-fast.svg) + +## Experience the speed difference + +If you have a Dockerfile in your current directory, you can try Depot immediately: + +```shell +depot build -t myapp:latest . +``` + +**First time running this?** Depot will prompt you to authenticate and select a project. + +## Install the `depot` CLI + +macOS: ```shell brew install depot/tap/depot ``` -For Linux, you can install the CLI with [our installation script](https://depot.dev/install-cli.sh): +Linux: ```shell # Install the latest version curl -L https://depot.dev/install-cli.sh | sh +``` + +Other platforms: + +Download the binary directly from the [latest release](https://github.com/depot/cli/releases). + -# Install a specific version +Install a specific version: + +```shell curl -L https://depot.dev/install-cli.sh | sh -s 2.96.2 ``` -For all other platforms, you can download the binary directly from [the latest release](https://github.com/depot/cli/releases). +## Set up a project + +Projects are isolated build environments for repositories. Every Depot build needs a project. + +## Create an organization + +In Depot, an organization represents a company or team. + +1. Log in to your [Depot account](https://depot.dev/sign-in). +2. Click `Create Organization`. +3. Enter your organization name. +4. Click `Create organization`. + +### Create a project + +![Depot project creation form showing region selection and cache storage settings](/content/assets/create-project.png) + +Click `New project`. In the dialog: + +- Select a region (closer to you = faster builds). +- Set a cache storage policy (50 GB default works great to start). +- Click `Create project`. + +**Not ready to create a project yet?** Every organization comes with a `default` project you can use immediately. + +## Build something fast + +Time to see Depot's speed in action. + +### Your first super-fast build + +Navigate to any directory with a Dockerfile and run: + +```shell +depot build -t myapp:latest . +``` + +What to expect: + +- Authenticate (first time only). +- Select a project (automatic if you have a `depot.json` file). +- Watch the lightning-fast build with aggressive caching. +- Complete in seconds instead of minutes. + +```shell +Please visit the following URL in your browser to authenticate the CLI: + + https://depot.dev/cli/authorize/authkey + +Successfully authenticated! + +Selected project depot-project (your_project_id) + +Create a depot.json file to remember this project for future builds? β–ΈYes No + +### Faster future builds with persistent configuration + +Depot will create a `depot.json` file in your current directory to remember your project for future builds. + +Alternatively, set the `DEPOT_PROJECT_ID` environment variable. + +![Depot dashboard showing the project ID needed for environment variables](/content/assets/project-id.png) + +## Faster CI builds + +Ready to accelerate your entire CI/CD workflow? Depot works with **any CI provider** with minimal changes to your existing workflows. + +### Popular CI integrations -## Creating a Depot organization +Depot provides platform-specific setup guides for popular CI providers. -Organizations are the top level entity in Depot. They typically represent a single company or team. Billing details are attached to an organization. +- **[GitHub Actions](/docs/container-builds/reference/github-actions)**: Also try our 3x faster GitHub Actions runners +- **[GitLab CI](/docs/container-builds/reference/gitlab-ci)**: Drop-in replacement for `docker:dind` jobs +- **[CircleCI](/docs/container-builds/reference/circleci)**: Works with CircleCI Docker executors +- **[AWS CodeBuild](/docs/container-builds/reference/aws-codebuild)**: Perfect for AWS-native workflows -1. Login to your Depot account to get to your [list of organizations](/orgs) -2. Click on the `Create Organization` button -3. Enter an organization name -4. Click `Create organization` -5. Click `New project` and specify your preferred region, cache storage policy, and connection. +### Quick CI setup -If you're not quite ready to create your own project, every organization comes pre-configured with a `default` project that you can use for any container image build. The default project is placed in our US East region with a cache storage policy of 50 GB per image architecture. If you'd like to change those defaults, you can go into the Project > Settings and make any changes. +Most CI integrations follow this pattern: -## Running a local build +```shell +# Install Depot CLI in your CI environment +curl -L https://depot.dev/install-cli.sh | sh + +# Replace docker build with depot build +depot build -t myapp:latest . +``` -There are two options for running local builds with Depot. +**Authenticate in CI** using the `DEPOT_TOKEN` environment variable. -#### Using Depot with our `depot build` command +**Authentication in CI:** Use `DEPOT_TOKEN` environment variable for seamless CI authentication. -Our `depot build` command is a drop-in replacement for your existing `docker build` command. +![Screenshot showing where to generate project tokens in the Depot UI](/content/assets/generate-project-token.png) -Once you've created your project in the Depot app, you can run `depot build` to build your Docker image. The [`build` command](/docs/cli/reference#depot-build) takes all of the same parameters as your normal `docker build` command. +To generate a project token: + +1. Click [`projects`](/projects) in the sidebar. +2. Click the project name. +3. In the project details page, select the `Settings` tab. +4. Scroll down to `Project Tokens` and click `Create token`. +5. Copy the generated token to your CI environment variables. + +## Alternative: Use with existing Docker commands + +Prefer to keep your existing `docker build` commands? Configure Depot as a Docker CLI plugin: ```shell -depot build -t repo/image:tag . +depot configure-docker ``` -Your first `depot build` locally will ask you to authenticate with Depot and choose the project for your build. The CLI will prompt you to save this project in a `depot.json` file in your repository. This file is used to remember your project for future builds. +Existing `docker build` commands automatically use Depot's acceleration behind the scenes. + +[Learn more about Docker CLI integration β†’](/docs/cli/reference#depot-configure-docker) + +## What's next? + +You're now building containers up to 40x faster with Depot. Here's how to get even more value from the platform. + +### Explore more acceleration + +- **[Try our GitHub Actions runners](/docs/github-actions/overview)**: 3x faster, half the cost +- **[Set up universal build caching](/docs/cache/overview)**: Speed up Go, Rust, Node.js, and more +- **[Explore the Depot container registry](/docs/registry/overview)**: Global CDN for instant image pulls + +### Optimize your setup + +- **[Advanced build configuration](/docs/container-builds/overview)**: Multi-platform builds, build arguments, and more +- **[Team collaboration features](/docs/container-builds/overview#sharing-builds)**: Share cache across your entire team +- **[Usage monitoring and limits](#usage-monitoring)**: Monitor build performance and costs + +## Monitor usage -**Note: You can also specify a `DEPOT_PROJECT_ID` environment variable instead of saving a `depot.json` file.** +Keep an eye on your build performance and costs: -#### Using Depot with your existing `docker build` command +![Gif of Depot dashboard](/content/assets/dashboard.gif) -There is the option to configure your existing `docker build` commmands to leverage Depot behind the scenes for the build. This is done by configuring Depot as a plugin for the Docker CLI. You can see our [`depot configure-docker` docs](/docs/cli/reference#depot-configure-docker) for more information. +### Set usage limits (optional) -## Running a build in CI +Want to avoid unexpected charges? Set a monthly build minute cap. -Integrating Depot into your CI workflow is a very similar process. Depot works with any CI provider. You can find guides for our most popular providers: +![Depot organization settings page showing how to set monthly build minute limits to control costs](/content/assets/usage-cap.png) -- [AWS CodeBuild](/docs/container-builds/reference/aws-codebuild) -- [Bitbucket Pipelines](/docs/container-builds/reference/bitbucket-pipelines) -- [Buildkite](/docs/container-builds/reference/buildkite) -- [CircleCI](/docs/container-builds/reference/circleci) -- [GitHub Actions](/docs/container-builds/reference/github-actions) -- [GitLab CI](/docs/container-builds/reference/gitlab-ci) -- [Google Cloud Build](/docs/container-builds/reference/google-cloud-build) -- [Jenkins](/docs/container-builds/reference/jenkins) -- [Travis CI](/docs/container-builds/reference/travis-ci) +Set your usage cap in organization settings. -## Adding a build minute usage cap +- Click `Settings` in the sidebar. +- In the `Usage` section, select one of these options: + - **Unlimited** (default): Build as much as you need. + - **Limit build minutes**: Set a monthly cap. -By default, an organization is allowed to use unlimited build minutes in a month. However, you can configure a usage cap on your organization to avoid runaway costs. +Most teams start with unlimited build minutes and adjust based on usage patterns. -1. Go to your [organizations inside of Depot](/orgs) and select your organization -2. Click on the `Settings` button -3. Under the `Usage caps` section you can choose between two options: -- **Unlimited**: By default organizations are configured to use unlimited build minutes in a month -- **Limit build minutes**: You can enter a fixed number of build minutes that your organization is allowed to use in a month. Once the limit is reached, builds will fail to start until the limit is raised or reset. diff --git a/content/overview/index.mdx b/content/overview/index.mdx index 45e0116..ca5a933 100644 --- a/content/overview/index.mdx +++ b/content/overview/index.mdx @@ -1,70 +1,148 @@ --- title: Introduction ogTitle: What is Depot? -description: Depot is a build acceleration platform that makes your entire workflow exponentially faster β€” from up to 40x faster Docker builds and 10x faster GitHub Actions Runners to accelerated remote caching for Bazel, Gradle, Turborepo, sccache, and more. +description: Depot is a build acceleration platform that makes your entire workflow exponentially faster, from up to 40x faster Docker builds and 10x faster GitHub Actions Runners to accelerated remote caching for Bazel, Gradle, Turborepo, sccache, and more. --- -Welcome to Depot! +## Welcome to Depot! -Depot is a build acceleration platform focused on making builds exponentially faster. You can use Depot to make everything run faster, from your Docker image build to your E2E test suite in GitHub Actions. +Depot makes your builds **up to 40x faster**. -Depot is a build acceleration platform that makes your entire development workflow exponentially faster. Whether you're building Docker images, running CI/CD pipelines in GitHub Actions, executing test suites in Go, or developing locally, Depot accelerates every part of your development process β€” from individual builds that finish in seconds to complete deployment workflows that run 10x faster. +Depot is a build acceleration platform that transforms slow, frustrating build processes into lightning-fast workflows that keep you in flow instead of waiting around. -## What problem is Depot solving? +![Build speed comparison: Slow vs. fast builds with Depot acceleration](/content/assets/slow-vs-fast.svg) -Slow development workflows drain productivity and happiness. Waiting for builds, tests, and deployments forces constant context switching, slows down feedback loops, and ultimately burns through engineering time and resources that should be spent building great products. +Whether you're building Docker images, running CI/CD pipelines, or developing locally, Depot gives you back hours of productive time every week by making your builds run exponentially faster. -We are developers ourselves, and we've experienced the frustration of waiting minutes or hours for builds to complete, watching CI pipelines crawl through test suites, and dealing with the complexity of setting up efficient caching across different tools. Modern development tools and CI providers simply don't prioritize performance at the level teams need. So, we built the build acceleration platform we've always wanted β€” one that makes everything exponentially faster with as little work as possible. +## The build speed problem killing productivity -## Who is Depot for? +Slow builds don't just waste time – they destroy productivity and happiness. Waiting minutes or hours for builds forces constant context switching, breaks flow state, and turns what should be quick iterations into frustrating delays. -Depot is built for any team that wants to move faster and waste less time waiting. Whether you're a DevOps Engineer optimizing CI/CD pipelines, a Platform Engineer building developer tools, a Developer who wants faster local builds, an Engineering Manager looking to improve team velocity, or any other role focused on shipping software efficiently β€” Depot can accelerate your workflows and give you back hours of productive time every week. +At Depot, we're developers ourselves, and we've lived this frustration. Watching CI pipelines crawl through test suites, waiting for Docker builds to complete, dealing with complex caching setups across different tools – modern development infrastructure simply doesn't prioritize the performance that teams need to move fast. -## How does Depot work? +Depot is the build acceleration platform we've always wanted: Exponentially faster workflows with minimal setup. -We have five integrated products that work together or independently to make your development workflows exponentially faster. +## Who benefits from Depot -### Remote container builds +**Any team tired of waiting** can use Depot to move faster: -Our remote container builds run an optimized version of BuildKit that can make your Docker image builds up to 40x faster. We support native multi-platform builds for both Intel & Arm without emulation, provide persistent shared cache that's instantly available across your team, and free up your local machine's resources by running builds on powerful remote infrastructure. +- **DevOps engineers** optimizing CI/CD pipeline performance. +- **Platform engineers** building faster developer experiences. +- **Software developers** who want lightning-fast local builds. +- **Engineering managers** looking to improve team velocity and reduce infrastructure costs. +- **Any team** that builds containers or runs automated workflows. -[Learn more about remote container builds](/docs/container-builds/overview) +## How Depot accelerates your entire workflow -### Global container registry +We offer five integrated products that work together or independently to eliminate build bottlenecks across your development process. -Depot Registry is a high-performance, globally-distributed container registry with CDN-backed image delivery. Built for speed and reliability, it ensures your container images are available instantly anywhere your applications deploy, reducing pull times and improving deployment speed. Our container registry integrates seamlessly with our remote container builds, so you can push and pull images without any additional configuration. +### Supercharged Docker builds that finish in seconds -[Learn more about Depot Registry](/docs/registry/overview) +Replace `docker build` with `depot build` for **up to 40x faster** container builds. -### Faster GitHub Actions Runners +Depot runs an optimized version of BuildKit with native multi-platform support for Intel and ARM (no slow emulation), persistent shared caching across your team, and powerful remote infrastructure that frees up your local machine. -Depot-managed GitHub Actions Runners bring our acceleration tech and expertise to your entire CI/CD workflow with up to 3x faster runners with 30% faster CPUs, 10x faster networking and caching, and unrestricted concurrency at half the cost of GitHub-hosted runners (**with true per second billing**). Our runners integrate seamlessly with our cache orchestration system, so you get dramatically faster caching without changing your existing workflows. +**Perfect for:** Teams building containers locally or in CI/CD. -[Learn more about GitHub Actions Runners](/docs/github-actions/overview) +[Learn more about remote container builds β†’](/docs/container-builds/overview) -### Universal build cache +### Global container registry with CDN speed -Depot Cache provides high-performance remote caching for development tools including Bazel, Go, Gradle, Turborepo, sccache, and Pants. Share build artifacts and test results across your entire team and CI environment, making builds incremental and achieving 2x to 20x speed improvements. The cache is instantly accessible from local development, any CI provider, and integrates automatically with our GitHub Actions runners. +Depot Registry delivers container images instantly anywhere applications deploy. -[Learn more about Depot Cache](/docs/cache/overview) +Depot's globally-distributed registry with CDN-backed delivery reduces pull times and integrates seamlessly with remote builds β€” push and pull without any additional configuration. -### Build API for Platforms +**Perfect for:** Teams deploying containers globally. -If you need to build container images programmatically or from untrusted sources, our Build API provides access to our entire container build infrastructure through gRPC, Connect, and HTTP/JSON APIs. Build images on behalf of your users in a secure, isolated environment using our CLI tools or integrate directly with our SDKs. +[Learn more about the Depot Registry β†’](/docs/registry/overview) -[Learn more about the Build API](/docs/container-builds/reference/api-overview) +### GitHub Actions runners that cost half as much and run 3x faster -## Real world impact +Get **3x faster GitHub Actions runners** with 30% faster CPUs, 10x faster networking and caching, unrestricted concurrency, and **true per-second billing** at half the cost of GitHub-hosted runners. + +Depot runners integrate with the cache system automatically β€” no workflow changes needed for dramatically faster caching. + +**Perfect for:** Teams using GitHub Actions for CI/CD. + +[Learn more about Depot's GitHub Actions Runners β†’](/docs/github-actions/overview) + +### Universal build cache for every tool + +Share build artifacts and test results across your entire team with high-performance remote caching for **Bazel, Go, Gradle, Turborepo, sccache, and Pants**. Make every build incremental and achieve 2x to 20x speed improvements. The cache works instantly from local development or any CI provider, with automatic integration with Depot GitHub Actions Runners. + +**Perfect for:** Teams using multiple build tools who want shared caching. + +[Learn more about Depot Cache β†’](/docs/cache/overview) + +### Depot Build API for platforms that build for users + +Build container images programmatically for your customers using Depot's secure, isolated infrastructure. Access Depot's entire build system through gRPC, Connect, and HTTP/JSON APIs, with SDKs available for easy integration. + +**Perfect for:** Platforms that build containers for their users. + +[Learn more about the Depot Build API β†’](/docs/container-builds/reference/api-overview) + +## Real teams, real results Teams using Depot see dramatic improvements across their entire development workflow. Here are some examples of how Depot has transformed engineering teams: -- [PostHog cut build times by 55x](/customers/posthog): Reduced from 193 minutes to 3 minutes and 26 seconds, with an average of 12-13% time savings for their GitHub Actions on Depot runners. As their Technical Lead notes: "Around here, we say Posthog ships weirdly fast, and you can't say Posthog ships weirdly fast if you're waiting for an hour and 45 minutes." -- [Hathora powers builds for game developers at scale](/customers/hathora): Using Depot at an API level to perform hundreds of builds per day on behalf of their customers, enabling game developers to deploy globally without Docker expertise. "It's become a pretty critical part of infrastructure for us. This is how our game developers get their game servers over to our platform." -- [Jane cut GitHub Actions costs in half and increased throughput by 25%](/customers/jane-app): For over 250 developers across 35 engineering teams, Jane achieved 2.4x faster end-to-end test jobs and 55% reduction in GitHub Actions spend. As Staff DevOps Engineer Alonso Suarez said: "Last year, the most impactful project we did for Engineering at Jane was migrating to Depot. It was one week's effort and one month's lead time." -- [Bastion cut build times by 6x while halving GitHub Actions spending](/customers/bastion): Achieved 6x faster Rust Docker builds, 3x faster Go builds, and 2x increase in PR throughput. Their CTO Jameel Al-Aziz noted: "Depot seems to have broken that formula. They said, hey, we'll make it both cheaper and faster." +### PostHog: 55x faster builds, 12-13% time savings across all GitHub Actions + +![PostHog GitHub Actions results](/content/assets/posthog-metrics.png) + +**Before Depot**: 193 minutes +**With Depot**: 3 minutes 26 seconds + +> "Around here, we say PostHog ships weirdly fast, and you can't say PostHog ships weirdly fast if you're waiting for an hour and 45 minutes." β€” PostHog Technical Lead + +[Read the full PostHog case study β†’](/customers/posthog) + +### Hathora: Powering hundreds of builds daily for game developers + +Using the Depot API to perform container builds at scale for Hathora customers, enabling game developers to deploy globally without Docker expertise. + +> "[Depot has] become a pretty critical part of infrastructure for us. This is how our game developers get their game servers over to our platform." β€” Hathora Team + +[Read the full Hathora case study β†’](/customers/hathora) + +### Jane: 50% cost reduction, 25% throughput increase for 250+ developers + +**Results across 35 engineering teams:** + +- 2.4x faster end-to-end test jobs +- 55% reduction in GitHub Actions spending +- One week implementation, one month lead time + +> "Last year, the most impactful project we did for Engineering at Jane was migrating to Depot. It was one week's effort and one month's lead time." β€” Staff DevOps Engineer Alonso Suarez + +[Read the full Jane case study β†’](/customers/jane-app) + +### Bastion: 6x faster builds while cutting costs in half + +- 6x faster Rust Docker builds +- 3x faster Go builds +- 2x increase in PR throughput +- 50% reduction in GitHub Actions spending + +> "Depot seems to have broken that formula. They said, hey, we'll make it both cheaper and faster." β€” CTO Jameel Al-Aziz + +[Read the full Bastion case study β†’](/customers/bastion) + +## Start building faster today + +Whether you're building a single application or managing infrastructure for hundreds of projects, Depot scales with your needs while keeping developers in flow rather than waiting for builds to complete. + +**Ready to get started?** Our quickstart guide will have you building 40x faster in under 5 minutes. + +[Get started with faster builds β†’](/docs/container-builds/quickstart) + +--- + +## AI assistant integration -Whether you're building a single application or managing infrastructure for hundreds of projects, Depot scales with your needs while maintaining the performance that keeps developers in flow state rather than waiting for builds to complete. +For AI assistants and automated tooling, we provide comprehensive documentation access: -## AI Documentation (llms.txt) +- **Quick navigation**: [`llms.txt`](/llms.txt) +- **Complete documentation**: [`llms-all.txt`](/llms-all.txt) -We provide [`llms.txt`](/llms.txt) for quick navigation and [`llms-all.txt`](/llms-all.txt) for complete documentation access, both formatted in Markdown to help AI assistants better understand Depot's capabilities. +Both files are formatted in Markdown to help AI assistants effectively understand and navigate Depot's capabilities.