{"id":"youtube:GXHdNiYBgC0","source":"youtube","sourceId":"GXHdNiYBgC0","account":"robotostudio","type":"video","title":"Vercel ship 2025: the good bits","body":"Another year, another set of features we are rapidly trying to keep up-to-date with. Vercel Ship 2025 is here, and there's a whole bunch of goodies that dropped that we specifically care about.","bodyFormat":"text","sourceUrl":"https://www.youtube.com/watch?v=GXHdNiYBgC0","canonicalUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits","sourceUrls":["https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"],"authorIds":["https://robotostudio.com/blog/author/jono#person"],"publishedAt":"2025-06-26T00:00:00.000Z","modifiedAt":"2026-08-11","checkedAt":"2026-09-17T13:02:04.791Z","language":"en","visibility":"public","topics":["ai"],"gaps":["Video authors are credited by the original Roboto page; individual transcript speakers remain unassigned."],"segments":[{"id":"segment-1","startMs":3030,"endMs":3040,"text":"Hey, how's it going? So, we're looking"},{"id":"segment-2","startMs":3040,"endMs":4950,"text":"Hey, how's it going? So, we're looking\nvery on brand today. We're going to talk"},{"id":"segment-3","startMs":4950,"endMs":4960,"text":"very on brand today. We're going to talk"},{"id":"segment-4","startMs":4960,"endMs":7349,"text":"very on brand today. We're going to talk\nabout Versailles ship. So, first of all,"},{"id":"segment-5","startMs":7349,"endMs":7359,"text":"about Versailles ship. So, first of all,"},{"id":"segment-6","startMs":7359,"endMs":8629,"text":"about Versailles ship. So, first of all,\nI'm going to tell you a little bit about"},{"id":"segment-7","startMs":8629,"endMs":8639,"text":"I'm going to tell you a little bit about"},{"id":"segment-8","startMs":8639,"endMs":9910,"text":"I'm going to tell you a little bit about\nit and we're going to do a whistle stop"},{"id":"segment-9","startMs":9910,"endMs":9920,"text":"it and we're going to do a whistle stop"},{"id":"segment-10","startMs":9920,"endMs":11030,"text":"it and we're going to do a whistle stop\ntour through all the different features"},{"id":"segment-11","startMs":11030,"endMs":11040,"text":"tour through all the different features"},{"id":"segment-12","startMs":11040,"endMs":12310,"text":"tour through all the different features\nand all the things that more"},{"id":"segment-13","startMs":12310,"endMs":12320,"text":"and all the things that more"},{"id":"segment-14","startMs":12320,"endMs":14470,"text":"and all the things that more\nspecifically we find interesting because"},{"id":"segment-15","startMs":14470,"endMs":14480,"text":"specifically we find interesting because"},{"id":"segment-16","startMs":14480,"endMs":15990,"text":"specifically we find interesting because\na lot of our stuff is focused around"},{"id":"segment-17","startMs":15990,"endMs":16000,"text":"a lot of our stuff is focused around"},{"id":"segment-18","startMs":16000,"endMs":18150,"text":"a lot of our stuff is focused around\nwebsites, clients, all that good all"},{"id":"segment-19","startMs":18150,"endMs":18160,"text":"websites, clients, all that good all"},{"id":"segment-20","startMs":18160,"endMs":20870,"text":"websites, clients, all that good all\nthat good stuff. Um, so first of all,"},{"id":"segment-21","startMs":20870,"endMs":20880,"text":"that good stuff. Um, so first of all,"},{"id":"segment-22","startMs":20880,"endMs":22630,"text":"that good stuff. Um, so first of all,\nbot ID. This is kind of interesting to"},{"id":"segment-23","startMs":22630,"endMs":22640,"text":"bot ID. This is kind of interesting to"},{"id":"segment-24","startMs":22640,"endMs":25349,"text":"bot ID. This is kind of interesting to\nus in particular um because bot ID is a"},{"id":"segment-25","startMs":25349,"endMs":25359,"text":"us in particular um because bot ID is a"},{"id":"segment-26","startMs":25359,"endMs":27189,"text":"us in particular um because bot ID is a\nalternative to Google Recapture. And if"},{"id":"segment-27","startMs":27189,"endMs":27199,"text":"alternative to Google Recapture. And if"},{"id":"segment-28","startMs":27199,"endMs":28790,"text":"alternative to Google Recapture. And if\nyou ever used Google recapture, you know"},{"id":"segment-29","startMs":28790,"endMs":28800,"text":"you ever used Google recapture, you know"},{"id":"segment-30","startMs":28800,"endMs":31109,"text":"you ever used Google recapture, you know\nit sucks. Um, Google recapture is like"},{"id":"segment-31","startMs":31109,"endMs":31119,"text":"it sucks. Um, Google recapture is like"},{"id":"segment-32","startMs":31119,"endMs":32549,"text":"it sucks. Um, Google recapture is like\none of the worst things and you've"},{"id":"segment-33","startMs":32549,"endMs":32559,"text":"one of the worst things and you've"},{"id":"segment-34","startMs":32559,"endMs":33830,"text":"one of the worst things and you've\nalways experienced it where it's like"},{"id":"segment-35","startMs":33830,"endMs":33840,"text":"always experienced it where it's like"},{"id":"segment-36","startMs":33840,"endMs":35750,"text":"always experienced it where it's like\nclick three buses or click some"},{"id":"segment-37","startMs":35750,"endMs":35760,"text":"click three buses or click some"},{"id":"segment-38","startMs":35760,"endMs":38310,"text":"click three buses or click some\ncrosswalks or do this or do that uh just"},{"id":"segment-39","startMs":38310,"endMs":38320,"text":"crosswalks or do this or do that uh just"},{"id":"segment-40","startMs":38320,"endMs":39750,"text":"crosswalks or do this or do that uh just\nto be able to fill in a form and then as"},{"id":"segment-41","startMs":39750,"endMs":39760,"text":"to be able to fill in a form and then as"},{"id":"segment-42","startMs":39760,"endMs":41190,"text":"to be able to fill in a form and then as\nsoon as you have that people just drop"},{"id":"segment-43","startMs":41190,"endMs":41200,"text":"soon as you have that people just drop"},{"id":"segment-44","startMs":41200,"endMs":43350,"text":"soon as you have that people just drop\noff completely. So this this completely"},{"id":"segment-45","startMs":43350,"endMs":43360,"text":"off completely. So this this completely"},{"id":"segment-46","startMs":43360,"endMs":45110,"text":"off completely. So this this completely\nremoves all of that. Um, this particular"},{"id":"segment-47","startMs":45110,"endMs":45120,"text":"removes all of that. Um, this particular"},{"id":"segment-48","startMs":45120,"endMs":47750,"text":"removes all of that. Um, this particular\ntool can sit on any kind of root or any"},{"id":"segment-49","startMs":47750,"endMs":47760,"text":"tool can sit on any kind of root or any"},{"id":"segment-50","startMs":47760,"endMs":50229,"text":"tool can sit on any kind of root or any\nkind of like uh function and essentially"},{"id":"segment-51","startMs":50229,"endMs":50239,"text":"kind of like uh function and essentially"},{"id":"segment-52","startMs":50239,"endMs":51750,"text":"kind of like uh function and essentially\ncheck if there is a bot and you can see"},{"id":"segment-53","startMs":51750,"endMs":51760,"text":"check if there is a bot and you can see"},{"id":"segment-54","startMs":51760,"endMs":53029,"text":"check if there is a bot and you can see\nthere's a very simple version of the"},{"id":"segment-55","startMs":53029,"endMs":53039,"text":"there's a very simple version of the"},{"id":"segment-56","startMs":53039,"endMs":55189,"text":"there's a very simple version of the\ncode here where it's saying is it a bot"},{"id":"segment-57","startMs":55189,"endMs":55199,"text":"code here where it's saying is it a bot"},{"id":"segment-58","startMs":55199,"endMs":57670,"text":"code here where it's saying is it a bot\ncheck bot ID if it is a bot access"},{"id":"segment-59","startMs":57670,"endMs":57680,"text":"check bot ID if it is a bot access"},{"id":"segment-60","startMs":57680,"endMs":60069,"text":"check bot ID if it is a bot access\ndenied. If it isn't, then totally fine."},{"id":"segment-61","startMs":60069,"endMs":60079,"text":"denied. If it isn't, then totally fine."},{"id":"segment-62","startMs":60079,"endMs":61590,"text":"denied. If it isn't, then totally fine.\nUm, that's a really, really cool"},{"id":"segment-63","startMs":61590,"endMs":61600,"text":"Um, that's a really, really cool"},{"id":"segment-64","startMs":61600,"endMs":63270,"text":"Um, that's a really, really cool\nfunctionality. It's probably the most"},{"id":"segment-65","startMs":63270,"endMs":63280,"text":"functionality. It's probably the most"},{"id":"segment-66","startMs":63280,"endMs":64469,"text":"functionality. It's probably the most\nimportant thing as far as we're"},{"id":"segment-67","startMs":64469,"endMs":64479,"text":"important thing as far as we're"},{"id":"segment-68","startMs":64479,"endMs":65750,"text":"important thing as far as we're\nconcerned that came out with Versail"},{"id":"segment-69","startMs":65750,"endMs":65760,"text":"concerned that came out with Versail"},{"id":"segment-70","startMs":65760,"endMs":67350,"text":"concerned that came out with Versail\nShip. And it gives you more granular"},{"id":"segment-71","startMs":67350,"endMs":67360,"text":"Ship. And it gives you more granular"},{"id":"segment-72","startMs":67360,"endMs":70310,"text":"Ship. And it gives you more granular\ncontrol over using these things. And let"},{"id":"segment-73","startMs":70310,"endMs":70320,"text":"control over using these things. And let"},{"id":"segment-74","startMs":70320,"endMs":71429,"text":"control over using these things. And let\nme bring you on to the next one. So, we"},{"id":"segment-75","startMs":71429,"endMs":71439,"text":"me bring you on to the next one. So, we"},{"id":"segment-76","startMs":71439,"endMs":72950,"text":"me bring you on to the next one. So, we\ngot a couple to get through today. Uh,"},{"id":"segment-77","startMs":72950,"endMs":72960,"text":"got a couple to get through today. Uh,"},{"id":"segment-78","startMs":72960,"endMs":75190,"text":"got a couple to get through today. Uh,\nthe next one is concurrent builds. So,"},{"id":"segment-79","startMs":75190,"endMs":75200,"text":"the next one is concurrent builds. So,"},{"id":"segment-80","startMs":75200,"endMs":76870,"text":"the next one is concurrent builds. So,\nif you haven't experienced this, great"},{"id":"segment-81","startMs":76870,"endMs":76880,"text":"if you haven't experienced this, great"},{"id":"segment-82","startMs":76880,"endMs":79510,"text":"if you haven't experienced this, great\nstuff. If you have, this is very, very"},{"id":"segment-83","startMs":79510,"endMs":79520,"text":"stuff. If you have, this is very, very"},{"id":"segment-84","startMs":79520,"endMs":81590,"text":"stuff. If you have, this is very, very\npowerful. So, it is where you you"},{"id":"segment-85","startMs":81590,"endMs":81600,"text":"powerful. So, it is where you you"},{"id":"segment-86","startMs":81600,"endMs":82950,"text":"powerful. So, it is where you you\nbasically make a whole bunch of changes"},{"id":"segment-87","startMs":82950,"endMs":82960,"text":"basically make a whole bunch of changes"},{"id":"segment-88","startMs":82960,"endMs":85190,"text":"basically make a whole bunch of changes\nto a website. And say the website takes"},{"id":"segment-89","startMs":85190,"endMs":85200,"text":"to a website. And say the website takes"},{"id":"segment-90","startMs":85200,"endMs":86870,"text":"to a website. And say the website takes\ntwo minutes, three minutes to build. um"},{"id":"segment-91","startMs":86870,"endMs":86880,"text":"two minutes, three minutes to build. um"},{"id":"segment-92","startMs":86880,"endMs":88630,"text":"two minutes, three minutes to build. um\nthe first website you made the change"},{"id":"segment-93","startMs":88630,"endMs":88640,"text":"the first website you made the change"},{"id":"segment-94","startMs":88640,"endMs":90870,"text":"the first website you made the change\nbut then uh oh I left in a typo. So now"},{"id":"segment-95","startMs":90870,"endMs":90880,"text":"but then uh oh I left in a typo. So now"},{"id":"segment-96","startMs":90880,"endMs":92630,"text":"but then uh oh I left in a typo. So now\nwe have two changes that we need to put"},{"id":"segment-97","startMs":92630,"endMs":92640,"text":"we have two changes that we need to put"},{"id":"segment-98","startMs":92640,"endMs":94789,"text":"we have two changes that we need to put\nin. So I do another build and while the"},{"id":"segment-99","startMs":94789,"endMs":94799,"text":"in. So I do another build and while the"},{"id":"segment-100","startMs":94799,"endMs":96550,"text":"in. So I do another build and while the\nfirst three minutes is still building"},{"id":"segment-101","startMs":96550,"endMs":96560,"text":"first three minutes is still building"},{"id":"segment-102","startMs":96560,"endMs":97910,"text":"first three minutes is still building\nyou have to then wait the 3 minutes for"},{"id":"segment-103","startMs":97910,"endMs":97920,"text":"you have to then wait the 3 minutes for"},{"id":"segment-104","startMs":97920,"endMs":99510,"text":"you have to then wait the 3 minutes for\nthe first one to finish and then a new"},{"id":"segment-105","startMs":99510,"endMs":99520,"text":"the first one to finish and then a new"},{"id":"segment-106","startMs":99520,"endMs":101109,"text":"the first one to finish and then a new\nbuild to come in and do another 3"},{"id":"segment-107","startMs":101109,"endMs":101119,"text":"build to come in and do another 3"},{"id":"segment-108","startMs":101119,"endMs":102630,"text":"build to come in and do another 3\nminutes and it's six minutes later and"},{"id":"segment-109","startMs":102630,"endMs":102640,"text":"minutes and it's six minutes later and"},{"id":"segment-110","startMs":102640,"endMs":104950,"text":"minutes and it's six minutes later and\nyou've actually seen the typo change. Um"},{"id":"segment-111","startMs":104950,"endMs":104960,"text":"you've actually seen the typo change. Um"},{"id":"segment-112","startMs":104960,"endMs":107270,"text":"you've actually seen the typo change. Um\nthis allows for ondemand concurrent"},{"id":"segment-113","startMs":107270,"endMs":107280,"text":"this allows for ondemand concurrent"},{"id":"segment-114","startMs":107280,"endMs":109830,"text":"this allows for ondemand concurrent\nbuilds which basically means um you can"},{"id":"segment-115","startMs":109830,"endMs":109840,"text":"builds which basically means um you can"},{"id":"segment-116","startMs":109840,"endMs":111190,"text":"builds which basically means um you can\nessentially run two of them at the same"},{"id":"segment-117","startMs":111190,"endMs":111200,"text":"essentially run two of them at the same"},{"id":"segment-118","startMs":111200,"endMs":112469,"text":"essentially run two of them at the same\ntime or three of them or four of them or"},{"id":"segment-119","startMs":112469,"endMs":112479,"text":"time or three of them or four of them or"},{"id":"segment-120","startMs":112479,"endMs":114550,"text":"time or three of them or four of them or\nfive of them all the way up to 32 at"},{"id":"segment-121","startMs":114550,"endMs":114560,"text":"five of them all the way up to 32 at"},{"id":"segment-122","startMs":114560,"endMs":116950,"text":"five of them all the way up to 32 at\nonce. Um, and it's on demand. So, it's"},{"id":"segment-123","startMs":116950,"endMs":116960,"text":"once. Um, and it's on demand. So, it's"},{"id":"segment-124","startMs":116960,"endMs":119109,"text":"once. Um, and it's on demand. So, it's\nnot that you have to pay for 32"},{"id":"segment-125","startMs":119109,"endMs":119119,"text":"not that you have to pay for 32"},{"id":"segment-126","startMs":119119,"endMs":122469,"text":"not that you have to pay for 32\ndifferent um, environments or whatever"},{"id":"segment-127","startMs":122469,"endMs":122479,"text":"different um, environments or whatever"},{"id":"segment-128","startMs":122479,"endMs":125030,"text":"different um, environments or whatever\nbuild systems. You just basically have"},{"id":"segment-129","startMs":125030,"endMs":125040,"text":"build systems. You just basically have"},{"id":"segment-130","startMs":125040,"endMs":127830,"text":"build systems. You just basically have\num, whenever you need it an ondemand"},{"id":"segment-131","startMs":127830,"endMs":127840,"text":"um, whenever you need it an ondemand"},{"id":"segment-132","startMs":127840,"endMs":129910,"text":"um, whenever you need it an ondemand\nconcurrent build. So, it's pretty cool"},{"id":"segment-133","startMs":129910,"endMs":129920,"text":"concurrent build. So, it's pretty cool"},{"id":"segment-134","startMs":129920,"endMs":131990,"text":"concurrent build. So, it's pretty cool\nand it's, you know, it's another step if"},{"id":"segment-135","startMs":131990,"endMs":132000,"text":"and it's, you know, it's another step if"},{"id":"segment-136","startMs":132000,"endMs":133270,"text":"and it's, you know, it's another step if\nyou'll see this in all of these"},{"id":"segment-137","startMs":133270,"endMs":133280,"text":"you'll see this in all of these"},{"id":"segment-138","startMs":133280,"endMs":135110,"text":"you'll see this in all of these\ndifferent ones. Um, it's another way"},{"id":"segment-139","startMs":135110,"endMs":135120,"text":"different ones. Um, it's another way"},{"id":"segment-140","startMs":135120,"endMs":136630,"text":"different ones. Um, it's another way\nthat Versell is doing something where"},{"id":"segment-141","startMs":136630,"endMs":136640,"text":"that Versell is doing something where"},{"id":"segment-142","startMs":136640,"endMs":138710,"text":"that Versell is doing something where\nit's not price gouging. It's actually"},{"id":"segment-143","startMs":138710,"endMs":138720,"text":"it's not price gouging. It's actually"},{"id":"segment-144","startMs":138720,"endMs":141110,"text":"it's not price gouging. It's actually\nvery very nice. Um, so yeah, let's move"},{"id":"segment-145","startMs":141110,"endMs":141120,"text":"very very nice. Um, so yeah, let's move"},{"id":"segment-146","startMs":141120,"endMs":144710,"text":"very very nice. Um, so yeah, let's move\non to the next one. Uh, AI gateway. So"},{"id":"segment-147","startMs":144710,"endMs":144720,"text":"on to the next one. Uh, AI gateway. So"},{"id":"segment-148","startMs":144720,"endMs":146470,"text":"on to the next one. Uh, AI gateway. So\nagain, if you're building AI right now,"},{"id":"segment-149","startMs":146470,"endMs":146480,"text":"again, if you're building AI right now,"},{"id":"segment-150","startMs":146480,"endMs":148150,"text":"again, if you're building AI right now,\nthis is going to be helpful for you."},{"id":"segment-151","startMs":148150,"endMs":148160,"text":"this is going to be helpful for you."},{"id":"segment-152","startMs":148160,"endMs":150229,"text":"this is going to be helpful for you.\nThis particular one is more about making"},{"id":"segment-153","startMs":150229,"endMs":150239,"text":"This particular one is more about making"},{"id":"segment-154","startMs":150239,"endMs":152710,"text":"This particular one is more about making\nthe entire development experience easier"},{"id":"segment-155","startMs":152710,"endMs":152720,"text":"the entire development experience easier"},{"id":"segment-156","startMs":152720,"endMs":155350,"text":"the entire development experience easier\nwhen you know model 1.32 is going to"},{"id":"segment-157","startMs":155350,"endMs":155360,"text":"when you know model 1.32 is going to"},{"id":"segment-158","startMs":155360,"endMs":158309,"text":"when you know model 1.32 is going to\nchange to model one through 1.33 or you"},{"id":"segment-159","startMs":158309,"endMs":158319,"text":"change to model one through 1.33 or you"},{"id":"segment-160","startMs":158319,"endMs":160309,"text":"change to model one through 1.33 or you\nknow you're using OpenAI and then all of"},{"id":"segment-161","startMs":160309,"endMs":160319,"text":"know you're using OpenAI and then all of"},{"id":"segment-162","startMs":160319,"endMs":161990,"text":"know you're using OpenAI and then all of\na sudden the next one that's better is"},{"id":"segment-163","startMs":161990,"endMs":162000,"text":"a sudden the next one that's better is"},{"id":"segment-164","startMs":162000,"endMs":164550,"text":"a sudden the next one that's better is\non Gemini or you know whatever whatever"},{"id":"segment-165","startMs":164550,"endMs":164560,"text":"on Gemini or you know whatever whatever"},{"id":"segment-166","startMs":164560,"endMs":166229,"text":"on Gemini or you know whatever whatever\nsystem you're going to be using with AI."},{"id":"segment-167","startMs":166229,"endMs":166239,"text":"system you're going to be using with AI."},{"id":"segment-168","startMs":166239,"endMs":167830,"text":"system you're going to be using with AI.\nIt's the idea that it can flick between"},{"id":"segment-169","startMs":167830,"endMs":167840,"text":"It's the idea that it can flick between"},{"id":"segment-170","startMs":167840,"endMs":170150,"text":"It's the idea that it can flick between\nany of them uh any different model any"},{"id":"segment-171","startMs":170150,"endMs":170160,"text":"any of them uh any different model any"},{"id":"segment-172","startMs":170160,"endMs":171910,"text":"any of them uh any different model any\ndifferent vendor and you just have one"},{"id":"segment-173","startMs":171910,"endMs":171920,"text":"different vendor and you just have one"},{"id":"segment-174","startMs":171920,"endMs":174790,"text":"different vendor and you just have one\nparticular hub. Um, now I think the uh"},{"id":"segment-175","startMs":174790,"endMs":174800,"text":"particular hub. Um, now I think the uh"},{"id":"segment-176","startMs":174800,"endMs":177350,"text":"particular hub. Um, now I think the uh\nwhat is it the AI SDK already is"},{"id":"segment-177","startMs":177350,"endMs":177360,"text":"what is it the AI SDK already is"},{"id":"segment-178","startMs":177360,"endMs":178949,"text":"what is it the AI SDK already is\nbasically being used by the vast"},{"id":"segment-179","startMs":178949,"endMs":178959,"text":"basically being used by the vast"},{"id":"segment-180","startMs":178959,"endMs":180869,"text":"basically being used by the vast\nmajority of AI companies out there which"},{"id":"segment-181","startMs":180869,"endMs":180879,"text":"majority of AI companies out there which"},{"id":"segment-182","startMs":180879,"endMs":182630,"text":"majority of AI companies out there which\nis really really cool. So if there is"},{"id":"segment-183","startMs":182630,"endMs":182640,"text":"is really really cool. So if there is"},{"id":"segment-184","startMs":182640,"endMs":186309,"text":"is really really cool. So if there is\nsomething where it's kind of um a AI I"},{"id":"segment-185","startMs":186309,"endMs":186319,"text":"something where it's kind of um a AI I"},{"id":"segment-186","startMs":186319,"endMs":187589,"text":"something where it's kind of um a AI I\ndon't want to say rapper I'm going to"},{"id":"segment-187","startMs":187589,"endMs":187599,"text":"don't want to say rapper I'm going to"},{"id":"segment-188","startMs":187599,"endMs":190550,"text":"don't want to say rapper I'm going to\nsay rapper but let's say AI rapper um on"},{"id":"segment-189","startMs":190550,"endMs":190560,"text":"say rapper but let's say AI rapper um on"},{"id":"segment-190","startMs":190560,"endMs":192790,"text":"say rapper but let's say AI rapper um on\ntop of you know uh some functionality"},{"id":"segment-191","startMs":192790,"endMs":192800,"text":"top of you know uh some functionality"},{"id":"segment-192","startMs":192800,"endMs":195589,"text":"top of you know uh some functionality\nlet's say uh video captioning anything"},{"id":"segment-193","startMs":195589,"endMs":195599,"text":"let's say uh video captioning anything"},{"id":"segment-194","startMs":195599,"endMs":198070,"text":"let's say uh video captioning anything\nlike that um this is really really"},{"id":"segment-195","startMs":198070,"endMs":198080,"text":"like that um this is really really"},{"id":"segment-196","startMs":198080,"endMs":199990,"text":"like that um this is really really\nuseful because all the time these models"},{"id":"segment-197","startMs":199990,"endMs":200000,"text":"useful because all the time these models"},{"id":"segment-198","startMs":200000,"endMs":201509,"text":"useful because all the time these models\nare changing like literally on a weekly"},{"id":"segment-199","startMs":201509,"endMs":201519,"text":"are changing like literally on a weekly"},{"id":"segment-200","startMs":201519,"endMs":202949,"text":"are changing like literally on a weekly\nbasis and this just stops you from"},{"id":"segment-201","startMs":202949,"endMs":202959,"text":"basis and this just stops you from"},{"id":"segment-202","startMs":202959,"endMs":205430,"text":"basis and this just stops you from\nhaving to go out find the API key make"},{"id":"segment-203","startMs":205430,"endMs":205440,"text":"having to go out find the API key make"},{"id":"segment-204","startMs":205440,"endMs":207509,"text":"having to go out find the API key make\nall the changes find all the nuances of"},{"id":"segment-205","startMs":207509,"endMs":207519,"text":"all the changes find all the nuances of"},{"id":"segment-206","startMs":207519,"endMs":209030,"text":"all the changes find all the nuances of\nthe new changes this is just you know"},{"id":"segment-207","startMs":209030,"endMs":209040,"text":"the new changes this is just you know"},{"id":"segment-208","startMs":209040,"endMs":211430,"text":"the new changes this is just you know\nyou throw in a different u literally one"},{"id":"segment-209","startMs":211430,"endMs":211440,"text":"you throw in a different u literally one"},{"id":"segment-210","startMs":211440,"endMs":213830,"text":"you throw in a different u literally one\nfine. Um, and it's fixed and that's the"},{"id":"segment-211","startMs":213830,"endMs":213840,"text":"fine. Um, and it's fixed and that's the"},{"id":"segment-212","startMs":213840,"endMs":217830,"text":"fine. Um, and it's fixed and that's the\nnew model running. Um, rolling releases."},{"id":"segment-213","startMs":217830,"endMs":217840,"text":"new model running. Um, rolling releases."},{"id":"segment-214","startMs":217840,"endMs":219750,"text":"new model running. Um, rolling releases.\nNow, if you are looking at this, first"},{"id":"segment-215","startMs":219750,"endMs":219760,"text":"Now, if you are looking at this, first"},{"id":"segment-216","startMs":219760,"endMs":221509,"text":"Now, if you are looking at this, first\nof all, why are you watching this video?"},{"id":"segment-217","startMs":221509,"endMs":221519,"text":"of all, why are you watching this video?"},{"id":"segment-218","startMs":221519,"endMs":223430,"text":"of all, why are you watching this video?\nBecause this is far too large for this"},{"id":"segment-219","startMs":223430,"endMs":223440,"text":"Because this is far too large for this"},{"id":"segment-220","startMs":223440,"endMs":225589,"text":"Because this is far too large for this\nvideo. But essentially, rolling releases"},{"id":"segment-221","startMs":225589,"endMs":225599,"text":"video. But essentially, rolling releases"},{"id":"segment-222","startMs":225599,"endMs":227430,"text":"video. But essentially, rolling releases\nis when you have a massive, massive"},{"id":"segment-223","startMs":227430,"endMs":227440,"text":"is when you have a massive, massive"},{"id":"segment-224","startMs":227440,"endMs":229030,"text":"is when you have a massive, massive\ncompany and you basically want to roll"},{"id":"segment-225","startMs":229030,"endMs":229040,"text":"company and you basically want to roll"},{"id":"segment-226","startMs":229040,"endMs":231670,"text":"company and you basically want to roll\nout a certain amount of um the new"},{"id":"segment-227","startMs":231670,"endMs":231680,"text":"out a certain amount of um the new"},{"id":"segment-228","startMs":231680,"endMs":234149,"text":"out a certain amount of um the new\ndeployment to see if things are broken."},{"id":"segment-229","startMs":234149,"endMs":234159,"text":"deployment to see if things are broken."},{"id":"segment-230","startMs":234159,"endMs":235430,"text":"deployment to see if things are broken.\num it's really really powerful because"},{"id":"segment-231","startMs":235430,"endMs":235440,"text":"um it's really really powerful because"},{"id":"segment-232","startMs":235440,"endMs":237190,"text":"um it's really really powerful because\nit means that you can you know uh say"},{"id":"segment-233","startMs":237190,"endMs":237200,"text":"it means that you can you know uh say"},{"id":"segment-234","startMs":237200,"endMs":239030,"text":"it means that you can you know uh say\nyou make an absolute dud of a change and"},{"id":"segment-235","startMs":239030,"endMs":239040,"text":"you make an absolute dud of a change and"},{"id":"segment-236","startMs":239040,"endMs":241830,"text":"you make an absolute dud of a change and\nyou push it to prod um and all of a"},{"id":"segment-237","startMs":241830,"endMs":241840,"text":"you push it to prod um and all of a"},{"id":"segment-238","startMs":241840,"endMs":243750,"text":"you push it to prod um and all of a\nsudden the performance goes down to 20%."},{"id":"segment-239","startMs":243750,"endMs":243760,"text":"sudden the performance goes down to 20%."},{"id":"segment-240","startMs":243760,"endMs":244949,"text":"sudden the performance goes down to 20%.\nThis is going to be able to warn you"},{"id":"segment-241","startMs":244949,"endMs":244959,"text":"This is going to be able to warn you"},{"id":"segment-242","startMs":244959,"endMs":246949,"text":"This is going to be able to warn you\nbefore you distribute it to 100% of your"},{"id":"segment-243","startMs":246949,"endMs":246959,"text":"before you distribute it to 100% of your"},{"id":"segment-244","startMs":246959,"endMs":248630,"text":"before you distribute it to 100% of your\ncustomers and maybe you'll find out at"},{"id":"segment-245","startMs":248630,"endMs":248640,"text":"customers and maybe you'll find out at"},{"id":"segment-246","startMs":248640,"endMs":250710,"text":"customers and maybe you'll find out at\nlike 5% and you'll go uh oh I need to"},{"id":"segment-247","startMs":250710,"endMs":250720,"text":"like 5% and you'll go uh oh I need to"},{"id":"segment-248","startMs":250720,"endMs":253350,"text":"like 5% and you'll go uh oh I need to\nroll that back instantly. Hit the button"},{"id":"segment-249","startMs":253350,"endMs":253360,"text":"roll that back instantly. Hit the button"},{"id":"segment-250","startMs":253360,"endMs":255509,"text":"roll that back instantly. Hit the button\nall good. But it's really nice really"},{"id":"segment-251","startMs":255509,"endMs":255519,"text":"all good. But it's really nice really"},{"id":"segment-252","startMs":255519,"endMs":257590,"text":"all good. But it's really nice really\nnice uh development experience again."},{"id":"segment-253","startMs":257590,"endMs":257600,"text":"nice uh development experience again."},{"id":"segment-254","startMs":257600,"endMs":259030,"text":"nice uh development experience again.\nUm, and I want to talk a little bit"},{"id":"segment-255","startMs":259030,"endMs":259040,"text":"Um, and I want to talk a little bit"},{"id":"segment-256","startMs":259040,"endMs":260870,"text":"Um, and I want to talk a little bit\nabout the firewall because the firewall"},{"id":"segment-257","startMs":260870,"endMs":260880,"text":"about the firewall because the firewall"},{"id":"segment-258","startMs":260880,"endMs":262390,"text":"about the firewall because the firewall\nkeeps getting improved and literally"},{"id":"segment-259","startMs":262390,"endMs":262400,"text":"keeps getting improved and literally"},{"id":"segment-260","startMs":262400,"endMs":265350,"text":"keeps getting improved and literally\nonly today um I got challenged uh with"},{"id":"segment-261","startMs":265350,"endMs":265360,"text":"only today um I got challenged uh with"},{"id":"segment-262","startMs":265360,"endMs":266950,"text":"only today um I got challenged uh with\nit. Well, somebody got challenged on the"},{"id":"segment-263","startMs":266950,"endMs":266960,"text":"it. Well, somebody got challenged on the"},{"id":"segment-264","startMs":266960,"endMs":269990,"text":"it. Well, somebody got challenged on the\nwebsite with the DOS um and basically 12"},{"id":"segment-265","startMs":269990,"endMs":270000,"text":"website with the DOS um and basically 12"},{"id":"segment-266","startMs":270000,"endMs":271670,"text":"website with the DOS um and basically 12\npeople got denied which is great. So,"},{"id":"segment-267","startMs":271670,"endMs":271680,"text":"people got denied which is great. So,"},{"id":"segment-268","startMs":271680,"endMs":273270,"text":"people got denied which is great. So,\nit's always running. It's always"},{"id":"segment-269","startMs":273270,"endMs":273280,"text":"it's always running. It's always"},{"id":"segment-270","startMs":273280,"endMs":275110,"text":"it's always running. It's always\nfantastic. And frankly, if you're"},{"id":"segment-271","startMs":275110,"endMs":275120,"text":"fantastic. And frankly, if you're"},{"id":"segment-272","startMs":275120,"endMs":277189,"text":"fantastic. And frankly, if you're\nsetting it up just nice and native the"},{"id":"segment-273","startMs":277189,"endMs":277199,"text":"setting it up just nice and native the"},{"id":"segment-274","startMs":277199,"endMs":279189,"text":"setting it up just nice and native the\nway that it's done through Versel, it"},{"id":"segment-275","startMs":279189,"endMs":279199,"text":"way that it's done through Versel, it"},{"id":"segment-276","startMs":279199,"endMs":281110,"text":"way that it's done through Versel, it\njust works. I haven't had to think about"},{"id":"segment-277","startMs":281110,"endMs":281120,"text":"just works. I haven't had to think about"},{"id":"segment-278","startMs":281120,"endMs":282790,"text":"just works. I haven't had to think about\nany of this stuff. It just does"},{"id":"segment-279","startMs":282790,"endMs":282800,"text":"any of this stuff. It just does"},{"id":"segment-280","startMs":282800,"endMs":284790,"text":"any of this stuff. It just does\neverything it needs to do. And that's"},{"id":"segment-281","startMs":284790,"endMs":284800,"text":"everything it needs to do. And that's"},{"id":"segment-282","startMs":284800,"endMs":286629,"text":"everything it needs to do. And that's\nexactly what I want, more hands-off"},{"id":"segment-283","startMs":286629,"endMs":286639,"text":"exactly what I want, more hands-off"},{"id":"segment-284","startMs":286639,"endMs":289749,"text":"exactly what I want, more hands-off\nstuff. And then the Versail agent. So"},{"id":"segment-285","startMs":289749,"endMs":289759,"text":"stuff. And then the Versail agent. So"},{"id":"segment-286","startMs":289759,"endMs":291270,"text":"stuff. And then the Versail agent. So\nthis ties in very very nicely with the"},{"id":"segment-287","startMs":291270,"endMs":291280,"text":"this ties in very very nicely with the"},{"id":"segment-288","startMs":291280,"endMs":293270,"text":"this ties in very very nicely with the\nfirewalls because Versail agents are"},{"id":"segment-289","startMs":293270,"endMs":293280,"text":"firewalls because Versail agents are"},{"id":"segment-290","startMs":293280,"endMs":295350,"text":"firewalls because Versail agents are\nvery very neat in the way that you can"},{"id":"segment-291","startMs":295350,"endMs":295360,"text":"very very neat in the way that you can"},{"id":"segment-292","startMs":295360,"endMs":297430,"text":"very very neat in the way that you can\nbasically debug a good chunk of what's"},{"id":"segment-293","startMs":297430,"endMs":297440,"text":"basically debug a good chunk of what's"},{"id":"segment-294","startMs":297440,"endMs":299510,"text":"basically debug a good chunk of what's\nwrong. So for example, if I pick this"},{"id":"segment-295","startMs":299510,"endMs":299520,"text":"wrong. So for example, if I pick this"},{"id":"segment-296","startMs":299520,"endMs":302310,"text":"wrong. So for example, if I pick this\nhere, I can drag this bit and I can say,"},{"id":"segment-297","startMs":302310,"endMs":302320,"text":"here, I can drag this bit and I can say,"},{"id":"segment-298","startMs":302320,"endMs":304390,"text":"here, I can drag this bit and I can say,\nyou know, uh what's what's happened"},{"id":"segment-299","startMs":304390,"endMs":304400,"text":"you know, uh what's what's happened"},{"id":"segment-300","startMs":304400,"endMs":307430,"text":"you know, uh what's what's happened\nhere? What can I do to improve it? Um"},{"id":"segment-301","startMs":307430,"endMs":307440,"text":"here? What can I do to improve it? Um"},{"id":"segment-302","startMs":307440,"endMs":308950,"text":"here? What can I do to improve it? Um\nhow do I stop this from happening in the"},{"id":"segment-303","startMs":308950,"endMs":308960,"text":"how do I stop this from happening in the"},{"id":"segment-304","startMs":308960,"endMs":310469,"text":"how do I stop this from happening in the\nfuture? This is a great way of using"},{"id":"segment-305","startMs":310469,"endMs":310479,"text":"future? This is a great way of using"},{"id":"segment-306","startMs":310479,"endMs":313029,"text":"future? This is a great way of using\nlike uh LLMs to be able to do a lot of"},{"id":"segment-307","startMs":313029,"endMs":313039,"text":"like uh LLMs to be able to do a lot of"},{"id":"segment-308","startMs":313039,"endMs":314950,"text":"like uh LLMs to be able to do a lot of\nthe, you know, kind of grunt work that"},{"id":"segment-309","startMs":314950,"endMs":314960,"text":"the, you know, kind of grunt work that"},{"id":"segment-310","startMs":314960,"endMs":316230,"text":"the, you know, kind of grunt work that\nyou don't want to have to do and the"},{"id":"segment-311","startMs":316230,"endMs":316240,"text":"you don't want to have to do and the"},{"id":"segment-312","startMs":316240,"endMs":317510,"text":"you don't want to have to do and the\ndebugging work that you don't really"},{"id":"segment-313","startMs":317510,"endMs":317520,"text":"debugging work that you don't really"},{"id":"segment-314","startMs":317520,"endMs":319110,"text":"debugging work that you don't really\nwant to have to do and just make your"},{"id":"segment-315","startMs":319110,"endMs":319120,"text":"want to have to do and just make your"},{"id":"segment-316","startMs":319120,"endMs":321110,"text":"want to have to do and just make your\nwebsites more secure and better and"},{"id":"segment-317","startMs":321110,"endMs":321120,"text":"websites more secure and better and"},{"id":"segment-318","startMs":321120,"endMs":324230,"text":"websites more secure and better and\nnicer. And then finally, we have micro"},{"id":"segment-319","startMs":324230,"endMs":324240,"text":"nicer. And then finally, we have micro"},{"id":"segment-320","startMs":324240,"endMs":325909,"text":"nicer. And then finally, we have micro\nfrontends that absolutely nobody knows"},{"id":"segment-321","startMs":325909,"endMs":325919,"text":"frontends that absolutely nobody knows"},{"id":"segment-322","startMs":325919,"endMs":327749,"text":"frontends that absolutely nobody knows\nwhat they do. Um, at some point"},{"id":"segment-323","startMs":327749,"endMs":327759,"text":"what they do. Um, at some point"},{"id":"segment-324","startMs":327759,"endMs":329110,"text":"what they do. Um, at some point\nsomebody's going to find out why we've"},{"id":"segment-325","startMs":329110,"endMs":329120,"text":"somebody's going to find out why we've"},{"id":"segment-326","startMs":329120,"endMs":330870,"text":"somebody's going to find out why we've\nbuilt microrends, but there's now"},{"id":"segment-327","startMs":330870,"endMs":330880,"text":"built microrends, but there's now"},{"id":"segment-328","startMs":330880,"endMs":333029,"text":"built microrends, but there's now\nmicrorend support, which is great. So"},{"id":"segment-329","startMs":333029,"endMs":333039,"text":"microrend support, which is great. So"},{"id":"segment-330","startMs":333039,"endMs":334310,"text":"microrend support, which is great. So\nyeah, have a great day everybody."},{"id":"segment-331","startMs":334310,"endMs":334320,"text":"yeah, have a great day everybody."},{"id":"segment-332","startMs":334320,"endMs":337280,"text":"yeah, have a great day everybody.\nBye-bye."}],"transcript":"Hey, how's it going? So we're looking very on brand today. We're going to talk about Vercel Ship. So first of all, I'm going to tell you a little bit about it and we're going to do a whistle stop tour through all the different features and all the things that more specifically we find interesting because a lot of our stuff is focused around websites, clients, all that good stuff.\n\nUm, so first of all, Bot ID. This is kind of interesting to us in particular because Bot ID is an alternative to Google reCAPTCHA. And if you've ever used Google reCAPTCHA, you know it sucks. Um, Google reCAPTCHA is like one of the worst things and you've always experienced it where it's like click three buses or click some crosswalks or do this or do that just to be able to fill in a form, and then as soon as you have that, people just drop off completely. So this completely removes all of that. Um, this particular tool can sit on any kind of route or any kind of like function, and essentially check if there is a bot. And you can see there's a very simple version of the code here where it's saying: is it a bot? Check Bot ID. If it is a bot, access denied. If it isn't, then totally fine. Um, that's a really, really cool functionality. It's probably the most important thing, as far as we're concerned, that came out with Vercel Ship. And it gives you more granular control over using these things.\n\nAnd let me bring you on to the next one. So we got a couple to get through today. Uh, the next one is concurrent builds. So if you haven't experienced this, great stuff. If you have, this is very, very powerful. So it is where you basically make a whole bunch of changes to a website. And say the website takes two minutes, three minutes to build. Um, the first website, you made the change, but then uh oh, I left in a typo. So now we have two changes that we need to put in. So I do another build, and while the first three minutes is still building, you have to then wait the three minutes for the first one to finish, and then a new build comes in and does another three minutes, and it's six minutes later and you've actually seen the typo change.\n\nUm, this allows for on-demand concurrent builds, which basically means um you can essentially run two of them at the same time or three of them or four of them or five of them all the way up to 32 at once. Um, and it's on demand. So it's not that you have to pay for 32 different um environments or whatever build systems. You just basically have um, whenever you need it, an on-demand concurrent build. So it's pretty cool, and it's, you know, it's another step if you'll see this in all of these different ones. Um, it's another way that Vercel is doing something where it's not price gouging. It's actually very, very nice. Um, so yeah, let's move on to the next one.\n\nUh, AI gateway. So again, if you're building AI right now, this is going to be helpful for you. This particular one is more about making the entire development experience easier when you know model 1.32 is going to change to model 1.33, or you know you're using OpenAI and then all of a sudden the next one that's better is on Gemini, or you know whatever system you're going to be using with AI. It's the idea that it can flick between any of them, any different model, any different vendor, and you just have one particular hub.\n\nUm, now I think the uh what is it, the AI SDK already is basically being used by the vast majority of AI companies out there, which is really, really cool. So if there is something where it's kind of um an AI (I don't want to say wrapper, I'm going to say wrapper) um on top of you know some functionality, let's say uh video captioning, anything like that. Um, this is really, really useful because all the time these models are changing, like literally on a weekly basis. And this just stops you from having to go out, find the API key, make all the changes, find all the nuances of the new changes. This is just, you know, you throw in a different URL, literally one line. Um, and it's fixed, and that's the new model running.\n\nUm, rolling releases. Now, if you are looking at this, first of all, why are you watching this video? Because this is far too large for this video. But essentially, rolling releases is when you have a massive, massive company, and you basically want to roll out a certain amount of um the new deployment to see if things are broken. Um, it's really, really powerful because it means that you can, you know, uh say you make an absolute dud of a change and you push it to prod. Um, and all of a sudden the performance goes down to 20%. This is going to be able to warn you before you distribute it to 100% of your customers, and maybe you'll find out at like 5%, and you'll go uh oh, I need to roll that back instantly. Hit the button, all good. But it's really nice, really nice uh development experience again.\n\nUm, and I want to talk a little bit about the firewall because the firewall keeps getting improved, and literally only today um I got challenged uh with it. Well, somebody got challenged on the website with a DDoS, um and basically 12 people got denied, which is great. So it's always running. It's always fantastic. And frankly, if you're setting it up just nice and native, the way that it's done through Vercel, it just works. I haven't had to think about any of this stuff. It just does everything it needs to do. And that's exactly what I want: more hands-off stuff.\n\nAnd then the Vercel agent. So this ties in very, very nicely with the firewalls because Vercel agents are very, very neat in the way that you can basically debug a good chunk of what's wrong. So for example, if I pick this here, I can drag this bit, and I can say, you know, uh what's what's happened here? What can I do to improve it? Um, how do I stop this from happening in the future? This is a great way of using like uh LLMs to be able to do a lot of the, you know, kind of grunt work that you don't want to have to do, and the debugging work that you don't really want to have to do, and just make your websites more secure and better and nicer.\n\nAnd then finally, we have micro frontends, that absolutely nobody knows what they do. Um, at some point somebody's going to find out why we've built microfrontends, but there's now microfrontend support, which is great.\n\nSo yeah, have a great day everybody. Bye-bye.","transcriptOrigin":"Edited transcript from the original Roboto page","thumbnailUrl":"https://img.youtube.com/vi/GXHdNiYBgC0/maxresdefault.jpg","durationSeconds":336,"videoId":"GXHdNiYBgC0","publisherName":"Roboto Studio","faqs":[{"question":"What was announced at Vercel Ship 2025?","answer":"The standout launches were BotID (a reCAPTCHA alternative), Vercel AI Gateway (one endpoint for many AI models), on-demand concurrent builds (up to 32 in parallel), rolling releases, an upgraded Firewall, the Vercel Agent for incident debugging, and microfrontend support. The shape is consistent: most of these features remove a workflow tax rather than adding a new product.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"},{"question":"What is Vercel AI Gateway?","answer":"Vercel AI Gateway is a single endpoint that proxies requests to any AI model or provider. Switching from OpenAI to Anthropic to Gemini becomes a one-line change instead of swapping API keys, retrofitting auth, and rewriting client code. It pairs with the AI SDK, which already powers a lot of production AI apps, and is mostly aimed at teams that wrap LLMs in their own products.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"},{"question":"What is Vercel BotID?","answer":"BotID is Vercel's bot detection product. You call `checkBotId()` from a route or function, and if the request is a bot you deny it. There's no captcha, no \"click all the crosswalks\" puzzle, just a yes/no decision the platform makes for you. It can sit on any route, not just forms, which is what makes it more flexible than something like reCAPTCHA.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"},{"question":"Is BotID a reCAPTCHA alternative?","answer":"Yes. BotID is positioned as a reCAPTCHA replacement. The selling point is the user experience: reCAPTCHA's puzzles cause real form drop-off, and BotID handles bot detection silently in the background instead. Because it's part of Vercel's platform, it can run on any route or function rather than only on forms.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"},{"question":"What are Vercel concurrent builds?","answer":"Concurrent builds let multiple deployments build at the same time instead of queueing. Push a fix on top of a still-building deploy and it runs in parallel rather than waiting another three minutes. They're on-demand and scale up to 32 simultaneous builds, so you only pay for the parallelism you actually use.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"},{"question":"What are Vercel rolling releases?","answer":"Rolling releases gradually expose a new deployment to a percentage of traffic instead of flipping it to 100% in one go. If you ship a regression and performance tanks, you catch it at maybe 5% of traffic and roll back before it hits everyone. It's mainly aimed at large-scale production apps where a bad deploy is genuinely expensive.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"},{"question":"What is Vercel Agent?","answer":"Vercel Agent is an LLM-powered debugger built into the Vercel dashboard. You select a chunk of logs or traffic, ask what's going wrong and how to prevent it, and the agent walks you through diagnosis and fixes. It pairs especially well with the Firewall, since most of the \"what is this attack pattern\" grunt work moves off your plate.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"},{"question":"How does the Vercel Firewall work?","answer":"The Firewall ships native DDoS protection and challenge-based filtering on top of every Vercel project. It runs continuously in the background, blocks bad traffic without manual rules in the common case, and surfaces challenges in the dashboard. The Vercel Ship 2025 update tightened the integration with BotID and Vercel Agent so investigation and response are mostly hands-off.","sourceUrl":"https://robotostudio.com/videos/vercel-ship-2025-the-good-bits"}],"path":"/videos/GXHdNiYBgC0/vercel-ship-2025-the-good-bits","indexable":false,"contentHash":"f4bc1d6d9a94fd34f09f5ee452449bcdab25383133914e8eac3028fabee71e23","representations":{"html":"https://bestsanityagency.com/videos/GXHdNiYBgC0/vercel-ship-2025-the-good-bits","markdown":"https://bestsanityagency.com/videos/GXHdNiYBgC0/vercel-ship-2025-the-good-bits.md","json":"https://bestsanityagency.com/videos/GXHdNiYBgC0/vercel-ship-2025-the-good-bits.json"},"generation":"bcb598ae5ec44a3005ea0356","jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://robotostudio.com/#organization","name":"Roboto Studio","url":"https://robotostudio.com/","sameAs":["https://clutch.co/profile/roboto-studio","https://www.youtube.com/@robotostudio","https://x.com/studioroboto"]},{"@type":"Person","@id":"https://robotostudio.com/blog/author/jono#person","name":"Jono Alford","url":"https://robotostudio.com/blog/author/jono","sameAs":["https://dev.to/jonoroboto","https://x.com/jonoalford","https://www.reddit.com/user/jonoalford/"],"worksFor":{"@id":"https://robotostudio.com/#organization"}},{"@type":"Person","@id":"https://robotostudio.com/blog/author/sne#person","name":"Sne Tripathi","url":"https://robotostudio.com/blog/author/sne","sameAs":["https://x.com/sne_hil"],"worksFor":{"@id":"https://robotostudio.com/#organization"}},{"@type":"WebSite","@id":"https://bestsanityagency.com/#website","url":"https://bestsanityagency.com","name":"Roboto Studio evidence","publisher":{"@id":"https://robotostudio.com/#organization"}},{"@type":"WebPage","@id":"https://bestsanityagency.com/videos/GXHdNiYBgC0/vercel-ship-2025-the-good-bits#page","url":"https://bestsanityagency.com/videos/GXHdNiYBgC0/vercel-ship-2025-the-good-bits","name":"Vercel ship 2025: the good bits","publisher":{"@id":"https://robotostudio.com/#organization"},"mainEntity":{"@id":"https://www.youtube.com/watch?v=GXHdNiYBgC0"},"isPartOf":{"@id":"https://bestsanityagency.com/#website"}},{"@id":"https://www.youtube.com/watch?v=GXHdNiYBgC0","name":"Vercel ship 2025: the good bits","url":"https://www.youtube.com/watch?v=GXHdNiYBgC0","datePublished":"2025-06-26T00:00:00.000Z","dateModified":"2026-08-11","inLanguage":"en","author":[{"@id":"https://robotostudio.com/blog/author/jono#person"}],"@type":"VideoObject","description":"Another year, another set of features we are rapidly trying to keep up-to-date with. Vercel Ship 2025 is here, and there's a whole bunch of goodies that dropped that we specifically care about.","transcript":"Hey, how's it going? So we're looking very on brand today. We're going to talk about Vercel Ship. So first of all, I'm going to tell you a little bit about it and we're going to do a whistle stop tour through all the different features and all the things that more specifically we find interesting because a lot of our stuff is focused around websites, clients, all that good stuff.\n\nUm, so first of all, Bot ID. This is kind of interesting to us in particular because Bot ID is an alternative to Google reCAPTCHA. And if you've ever used Google reCAPTCHA, you know it sucks. Um, Google reCAPTCHA is like one of the worst things and you've always experienced it where it's like click three buses or click some crosswalks or do this or do that just to be able to fill in a form, and then as soon as you have that, people just drop off completely. So this completely removes all of that. Um, this particular tool can sit on any kind of route or any kind of like function, and essentially check if there is a bot. And you can see there's a very simple version of the code here where it's saying: is it a bot? Check Bot ID. If it is a bot, access denied. If it isn't, then totally fine. Um, that's a really, really cool functionality. It's probably the most important thing, as far as we're concerned, that came out with Vercel Ship. And it gives you more granular control over using these things.\n\nAnd let me bring you on to the next one. So we got a couple to get through today. Uh, the next one is concurrent builds. So if you haven't experienced this, great stuff. If you have, this is very, very powerful. So it is where you basically make a whole bunch of changes to a website. And say the website takes two minutes, three minutes to build. Um, the first website, you made the change, but then uh oh, I left in a typo. So now we have two changes that we need to put in. So I do another build, and while the first three minutes is still building, you have to then wait the three minutes for the first one to finish, and then a new build comes in and does another three minutes, and it's six minutes later and you've actually seen the typo change.\n\nUm, this allows for on-demand concurrent builds, which basically means um you can essentially run two of them at the same time or three of them or four of them or five of them all the way up to 32 at once. Um, and it's on demand. So it's not that you have to pay for 32 different um environments or whatever build systems. You just basically have um, whenever you need it, an on-demand concurrent build. So it's pretty cool, and it's, you know, it's another step if you'll see this in all of these different ones. Um, it's another way that Vercel is doing something where it's not price gouging. It's actually very, very nice. Um, so yeah, let's move on to the next one.\n\nUh, AI gateway. So again, if you're building AI right now, this is going to be helpful for you. This particular one is more about making the entire development experience easier when you know model 1.32 is going to change to model 1.33, or you know you're using OpenAI and then all of a sudden the next one that's better is on Gemini, or you know whatever system you're going to be using with AI. It's the idea that it can flick between any of them, any different model, any different vendor, and you just have one particular hub.\n\nUm, now I think the uh what is it, the AI SDK already is basically being used by the vast majority of AI companies out there, which is really, really cool. So if there is something where it's kind of um an AI (I don't want to say wrapper, I'm going to say wrapper) um on top of you know some functionality, let's say uh video captioning, anything like that. Um, this is really, really useful because all the time these models are changing, like literally on a weekly basis. And this just stops you from having to go out, find the API key, make all the changes, find all the nuances of the new changes. This is just, you know, you throw in a different URL, literally one line. Um, and it's fixed, and that's the new model running.\n\nUm, rolling releases. Now, if you are looking at this, first of all, why are you watching this video? Because this is far too large for this video. But essentially, rolling releases is when you have a massive, massive company, and you basically want to roll out a certain amount of um the new deployment to see if things are broken. Um, it's really, really powerful because it means that you can, you know, uh say you make an absolute dud of a change and you push it to prod. Um, and all of a sudden the performance goes down to 20%. This is going to be able to warn you before you distribute it to 100% of your customers, and maybe you'll find out at like 5%, and you'll go uh oh, I need to roll that back instantly. Hit the button, all good. But it's really nice, really nice uh development experience again.\n\nUm, and I want to talk a little bit about the firewall because the firewall keeps getting improved, and literally only today um I got challenged uh with it. Well, somebody got challenged on the website with a DDoS, um and basically 12 people got denied, which is great. So it's always running. It's always fantastic. And frankly, if you're setting it up just nice and native, the way that it's done through Vercel, it just works. I haven't had to think about any of this stuff. It just does everything it needs to do. And that's exactly what I want: more hands-off stuff.\n\nAnd then the Vercel agent. So this ties in very, very nicely with the firewalls because Vercel agents are very, very neat in the way that you can basically debug a good chunk of what's wrong. So for example, if I pick this here, I can drag this bit, and I can say, you know, uh what's what's happened here? What can I do to improve it? Um, how do I stop this from happening in the future? This is a great way of using like uh LLMs to be able to do a lot of the, you know, kind of grunt work that you don't want to have to do, and the debugging work that you don't really want to have to do, and just make your websites more secure and better and nicer.\n\nAnd then finally, we have micro frontends, that absolutely nobody knows what they do. Um, at some point somebody's going to find out why we've built microfrontends, but there's now microfrontend support, which is great.\n\nSo yeah, have a great day everybody. Bye-bye.","thumbnailUrl":"https://img.youtube.com/vi/GXHdNiYBgC0/maxresdefault.jpg","embedUrl":"https://www.youtube.com/embed/GXHdNiYBgC0","uploadDate":"2025-06-26T00:00:00.000Z","duration":"PT336S","publisher":{"@type":"Organization","name":"Roboto Studio"},"caption":{"@type":"MediaObject","contentUrl":"https://bestsanityagency.com/videos/GXHdNiYBgC0/vercel-ship-2025-the-good-bits.vtt","encodingFormat":"text/vtt"}}]}}