{"id":"youtube:CNPjWyVQeC0","source":"youtube","sourceId":"CNPjWyVQeC0","account":"robotostudio","type":"video","title":"Getting the most out of Turbo Start","body":"Rough cut process of building page builder blocks within Turbo Start Sanity. Watch the schema, queries, and components come together in real time.","bodyFormat":"text","sourceUrl":"https://www.youtube.com/watch?v=CNPjWyVQeC0","canonicalUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start","sourceUrls":["https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"],"authorIds":["https://robotostudio.com/blog/author/jono#person"],"publishedAt":"2025-03-20T00:00:00.000Z","modifiedAt":"2026-08-11","checkedAt":"2026-09-17T13:02:04.791Z","language":"en","visibility":"public","topics":["sanity","nextjs","editorial-experience","ai"],"gaps":["Video authors are credited by the original Roboto page; individual transcript speakers remain unassigned."],"segments":[{"id":"segment-1","startMs":4349,"endMs":4359,"text":"hey how's it going so I want to do this"},{"id":"segment-2","startMs":4359,"endMs":5710,"text":"hey how's it going so I want to do this\nvery quick video because a lot of people"},{"id":"segment-3","startMs":5710,"endMs":5720,"text":"very quick video because a lot of people"},{"id":"segment-4","startMs":5720,"endMs":8030,"text":"very quick video because a lot of people\nhave been asking me how to get the most"},{"id":"segment-5","startMs":8030,"endMs":8040,"text":"have been asking me how to get the most"},{"id":"segment-6","startMs":8040,"endMs":11030,"text":"have been asking me how to get the most\nout of Turbo and I want to get I want to"},{"id":"segment-7","startMs":11030,"endMs":11040,"text":"out of Turbo and I want to get I want to"},{"id":"segment-8","startMs":11040,"endMs":12549,"text":"out of Turbo and I want to get I want to\nbasically get right into it talk about"},{"id":"segment-9","startMs":12549,"endMs":12559,"text":"basically get right into it talk about"},{"id":"segment-10","startMs":12559,"endMs":14190,"text":"basically get right into it talk about\nhow we actually build websites and our"},{"id":"segment-11","startMs":14190,"endMs":14200,"text":"how we actually build websites and our"},{"id":"segment-12","startMs":14200,"endMs":16390,"text":"how we actually build websites and our\ndevelopment flow and show you all the"},{"id":"segment-13","startMs":16390,"endMs":16400,"text":"development flow and show you all the"},{"id":"segment-14","startMs":16400,"endMs":17710,"text":"development flow and show you all the\ndifferent ways that you can actually use"},{"id":"segment-15","startMs":17710,"endMs":17720,"text":"different ways that you can actually use"},{"id":"segment-16","startMs":17720,"endMs":19710,"text":"different ways that you can actually use\nthis um but from the very start I want"},{"id":"segment-17","startMs":19710,"endMs":19720,"text":"this um but from the very start I want"},{"id":"segment-18","startMs":19720,"endMs":21029,"text":"this um but from the very start I want\nto talk about how this is actually"},{"id":"segment-19","startMs":21029,"endMs":21039,"text":"to talk about how this is actually"},{"id":"segment-20","startMs":21039,"endMs":23109,"text":"to talk about how this is actually\nstructured why it's structured that way"},{"id":"segment-21","startMs":23109,"endMs":23119,"text":"structured why it's structured that way"},{"id":"segment-22","startMs":23119,"endMs":24990,"text":"structured why it's structured that way\nand just go through a little few things"},{"id":"segment-23","startMs":24990,"endMs":25000,"text":"and just go through a little few things"},{"id":"segment-24","startMs":25000,"endMs":26189,"text":"and just go through a little few things\nso first of all you'll notice that we"},{"id":"segment-25","startMs":26189,"endMs":26199,"text":"so first of all you'll notice that we"},{"id":"segment-26","startMs":26199,"endMs":28550,"text":"so first of all you'll notice that we\nhave this apps um this apps is because"},{"id":"segment-27","startMs":28550,"endMs":28560,"text":"have this apps um this apps is because"},{"id":"segment-28","startMs":28560,"endMs":30269,"text":"have this apps um this apps is because\nit's a mono repo and you can see that we"},{"id":"segment-29","startMs":30269,"endMs":30279,"text":"it's a mono repo and you can see that we"},{"id":"segment-30","startMs":30279,"endMs":32350,"text":"it's a mono repo and you can see that we\nhave a pmpm file and if you press"},{"id":"segment-31","startMs":32350,"endMs":32360,"text":"have a pmpm file and if you press"},{"id":"segment-32","startMs":32360,"endMs":33830,"text":"have a pmpm file and if you press\ncommand p and you go look for some"},{"id":"segment-33","startMs":33830,"endMs":33840,"text":"command p and you go look for some"},{"id":"segment-34","startMs":33840,"endMs":35270,"text":"command p and you go look for some\npackages you'll notice there's a hell of"},{"id":"segment-35","startMs":35270,"endMs":35280,"text":"packages you'll notice there's a hell of"},{"id":"segment-36","startMs":35280,"endMs":37229,"text":"packages you'll notice there's a hell of\na lot of different packages in here"},{"id":"segment-37","startMs":37229,"endMs":37239,"text":"a lot of different packages in here"},{"id":"segment-38","startMs":37239,"endMs":38549,"text":"a lot of different packages in here\nthere is this main one that basically"},{"id":"segment-39","startMs":38549,"endMs":38559,"text":"there is this main one that basically"},{"id":"segment-40","startMs":38559,"endMs":40990,"text":"there is this main one that basically\nsits at the very top level uh very easy"},{"id":"segment-41","startMs":40990,"endMs":41000,"text":"sits at the very top level uh very easy"},{"id":"segment-42","startMs":41000,"endMs":43310,"text":"sits at the very top level uh very easy\npitf to do but don't do this is"},{"id":"segment-43","startMs":43310,"endMs":43320,"text":"pitf to do but don't do this is"},{"id":"segment-44","startMs":43320,"endMs":46110,"text":"pitf to do but don't do this is\ninstalling things on the route um you"},{"id":"segment-45","startMs":46110,"endMs":46120,"text":"installing things on the route um you"},{"id":"segment-46","startMs":46120,"endMs":47430,"text":"installing things on the route um you\ndon't want to do this because you don't"},{"id":"segment-47","startMs":47430,"endMs":47440,"text":"don't want to do this because you don't"},{"id":"segment-48","startMs":47440,"endMs":49790,"text":"don't want to do this because you don't\nneed to have many packages in The Roots"},{"id":"segment-49","startMs":49790,"endMs":49800,"text":"need to have many packages in The Roots"},{"id":"segment-50","startMs":49800,"endMs":51709,"text":"need to have many packages in The Roots\npackage.json you can see that they have"},{"id":"segment-51","startMs":51709,"endMs":51719,"text":"package.json you can see that they have"},{"id":"segment-52","startMs":51719,"endMs":54189,"text":"package.json you can see that they have\nvery very few inside of here um and the"},{"id":"segment-53","startMs":54189,"endMs":54199,"text":"very very few inside of here um and the"},{"id":"segment-54","startMs":54199,"endMs":57150,"text":"very very few inside of here um and the\nsame uh so when it comes to actually"},{"id":"segment-55","startMs":57150,"endMs":57160,"text":"same uh so when it comes to actually"},{"id":"segment-56","startMs":57160,"endMs":58630,"text":"same uh so when it comes to actually\nbuilding the user interface of this and"},{"id":"segment-57","startMs":58630,"endMs":58640,"text":"building the user interface of this and"},{"id":"segment-58","startMs":58640,"endMs":61349,"text":"building the user interface of this and\nusing things from things like Shad CN UI"},{"id":"segment-59","startMs":61349,"endMs":61359,"text":"using things from things like Shad CN UI"},{"id":"segment-60","startMs":61359,"endMs":63229,"text":"using things from things like Shad CN UI\nwhich I definitely recommend using"},{"id":"segment-61","startMs":63229,"endMs":63239,"text":"which I definitely recommend using"},{"id":"segment-62","startMs":63239,"endMs":65750,"text":"which I definitely recommend using\nthey're going to go into the packages UI"},{"id":"segment-63","startMs":65750,"endMs":65760,"text":"they're going to go into the packages UI"},{"id":"segment-64","startMs":65760,"endMs":67950,"text":"they're going to go into the packages UI\npackage.json that's where it goes into"},{"id":"segment-65","startMs":67950,"endMs":67960,"text":"package.json that's where it goes into"},{"id":"segment-66","startMs":67960,"endMs":69590,"text":"package.json that's where it goes into\nso you can see already we have radx"},{"id":"segment-67","startMs":69590,"endMs":69600,"text":"so you can see already we have radx"},{"id":"segment-68","startMs":69600,"endMs":71230,"text":"so you can see already we have radx\nreact accordians and all this kind of"},{"id":"segment-69","startMs":71230,"endMs":71240,"text":"react accordians and all this kind of"},{"id":"segment-70","startMs":71240,"endMs":74870,"text":"react accordians and all this kind of\ngood stuff um and now with that being"},{"id":"segment-71","startMs":74870,"endMs":74880,"text":"good stuff um and now with that being"},{"id":"segment-72","startMs":74880,"endMs":77030,"text":"good stuff um and now with that being\nsaid uh the majority of stuff you're"},{"id":"segment-73","startMs":77030,"endMs":77040,"text":"said uh the majority of stuff you're"},{"id":"segment-74","startMs":77040,"endMs":79270,"text":"said uh the majority of stuff you're\nprobably going to install uh that's not"},{"id":"segment-75","startMs":79270,"endMs":79280,"text":"probably going to install uh that's not"},{"id":"segment-76","startMs":79280,"endMs":81149,"text":"probably going to install uh that's not\nrelated to Shaden is going to be in"},{"id":"segment-77","startMs":81149,"endMs":81159,"text":"related to Shaden is going to be in"},{"id":"segment-78","startMs":81159,"endMs":84469,"text":"related to Shaden is going to be in\npackage doj uh. Json in the web folder"},{"id":"segment-79","startMs":84469,"endMs":84479,"text":"package doj uh. Json in the web folder"},{"id":"segment-80","startMs":84479,"endMs":85270,"text":"package doj uh. Json in the web folder\nhowever something that's kind of"},{"id":"segment-81","startMs":85270,"endMs":85280,"text":"however something that's kind of"},{"id":"segment-82","startMs":85280,"endMs":86710,"text":"however something that's kind of\ninteresting about this if you try"},{"id":"segment-83","startMs":86710,"endMs":86720,"text":"interesting about this if you try"},{"id":"segment-84","startMs":86720,"endMs":88749,"text":"interesting about this if you try\ninstalling Shaden in the web folder"},{"id":"segment-85","startMs":88749,"endMs":88759,"text":"installing Shaden in the web folder"},{"id":"segment-86","startMs":88759,"endMs":90630,"text":"installing Shaden in the web folder\nit'll automatically get extracted out"},{"id":"segment-87","startMs":90630,"endMs":90640,"text":"it'll automatically get extracted out"},{"id":"segment-88","startMs":90640,"endMs":94109,"text":"it'll automatically get extracted out\ninto the UI uh part of the website which"},{"id":"segment-89","startMs":94109,"endMs":94119,"text":"into the UI uh part of the website which"},{"id":"segment-90","startMs":94119,"endMs":95149,"text":"into the UI uh part of the website which\nis kind of"},{"id":"segment-91","startMs":95149,"endMs":95159,"text":"is kind of"},{"id":"segment-92","startMs":95159,"endMs":98069,"text":"is kind of\ncool um you have environmental examples"},{"id":"segment-93","startMs":98069,"endMs":98079,"text":"cool um you have environmental examples"},{"id":"segment-94","startMs":98079,"endMs":100109,"text":"cool um you have environmental examples\ninside of here an environmental dolal"},{"id":"segment-95","startMs":100109,"endMs":100119,"text":"inside of here an environmental dolal"},{"id":"segment-96","startMs":100119,"endMs":101870,"text":"inside of here an environmental dolal\nthat gets generated when you first spin"},{"id":"segment-97","startMs":101870,"endMs":101880,"text":"that gets generated when you first spin"},{"id":"segment-98","startMs":101880,"endMs":103789,"text":"that gets generated when you first spin\nthis up um but right now we're going to"},{"id":"segment-99","startMs":103789,"endMs":103799,"text":"this up um but right now we're going to"},{"id":"segment-100","startMs":103799,"endMs":106670,"text":"this up um but right now we're going to\nmake sure we get started so let's run uh"},{"id":"segment-101","startMs":106670,"endMs":106680,"text":"make sure we get started so let's run uh"},{"id":"segment-102","startMs":106680,"endMs":109149,"text":"make sure we get started so let's run uh\nPRD this is just the post install so I'm"},{"id":"segment-103","startMs":109149,"endMs":109159,"text":"PRD this is just the post install so I'm"},{"id":"segment-104","startMs":109159,"endMs":112310,"text":"PRD this is just the post install so I'm\nusing pmpm runev make sure you're using"},{"id":"segment-105","startMs":112310,"endMs":112320,"text":"using pmpm runev make sure you're using"},{"id":"segment-106","startMs":112320,"endMs":115469,"text":"using pmpm runev make sure you're using\npmpm um let me get rid of that let's do"},{"id":"segment-107","startMs":115469,"endMs":115479,"text":"pmpm um let me get rid of that let's do"},{"id":"segment-108","startMs":115479,"endMs":117990,"text":"pmpm um let me get rid of that let's do\nthat again um so you should 100% use"},{"id":"segment-109","startMs":117990,"endMs":118000,"text":"that again um so you should 100% use"},{"id":"segment-110","startMs":118000,"endMs":120230,"text":"that again um so you should 100% use\npmpm rather than mpm because it's going"},{"id":"segment-111","startMs":120230,"endMs":120240,"text":"pmpm rather than mpm because it's going"},{"id":"segment-112","startMs":120240,"endMs":122550,"text":"pmpm rather than mpm because it's going\nto save you a whole bunch of uh data"},{"id":"segment-113","startMs":122550,"endMs":122560,"text":"to save you a whole bunch of uh data"},{"id":"segment-114","startMs":122560,"endMs":124469,"text":"to save you a whole bunch of uh data\nwhen you're actually using um these"},{"id":"segment-115","startMs":124469,"endMs":124479,"text":"when you're actually using um these"},{"id":"segment-116","startMs":124479,"endMs":126310,"text":"when you're actually using um these\ntools cuz we install a hell of a lot of"},{"id":"segment-117","startMs":126310,"endMs":126320,"text":"tools cuz we install a hell of a lot of"},{"id":"segment-118","startMs":126320,"endMs":129109,"text":"tools cuz we install a hell of a lot of\nyou know next sanity in hundreds of"},{"id":"segment-119","startMs":129109,"endMs":129119,"text":"you know next sanity in hundreds of"},{"id":"segment-120","startMs":129119,"endMs":131589,"text":"you know next sanity in hundreds of\nprojects um so yeah here we go here's"},{"id":"segment-121","startMs":131589,"endMs":131599,"text":"projects um so yeah here we go here's"},{"id":"segment-122","startMs":131599,"endMs":133470,"text":"projects um so yeah here we go here's\nthe first thing you'll probably see um"},{"id":"segment-123","startMs":133470,"endMs":133480,"text":"the first thing you'll probably see um"},{"id":"segment-124","startMs":133480,"endMs":134630,"text":"the first thing you'll probably see um\nand you can have this in dark mode you"},{"id":"segment-125","startMs":134630,"endMs":134640,"text":"and you can have this in dark mode you"},{"id":"segment-126","startMs":134640,"endMs":136150,"text":"and you can have this in dark mode you\ncan have this in light mode all of this"},{"id":"segment-127","startMs":136150,"endMs":136160,"text":"can have this in light mode all of this"},{"id":"segment-128","startMs":136160,"endMs":139390,"text":"can have this in light mode all of this\ngood stuff uh or system um this is all"},{"id":"segment-129","startMs":139390,"endMs":139400,"text":"good stuff uh or system um this is all"},{"id":"segment-130","startMs":139400,"endMs":141750,"text":"good stuff uh or system um this is all\njust data that's taken from Faker and"},{"id":"segment-131","startMs":141750,"endMs":141760,"text":"just data that's taken from Faker and"},{"id":"segment-132","startMs":141760,"endMs":143509,"text":"just data that's taken from Faker and\npopulated inside of here so you can"},{"id":"segment-133","startMs":143509,"endMs":143519,"text":"populated inside of here so you can"},{"id":"segment-134","startMs":143519,"endMs":145030,"text":"populated inside of here so you can\ntweak all of this and change it however"},{"id":"segment-135","startMs":145030,"endMs":145040,"text":"tweak all of this and change it however"},{"id":"segment-136","startMs":145040,"endMs":147030,"text":"tweak all of this and change it however\nyou want um but realistically what you"},{"id":"segment-137","startMs":147030,"endMs":147040,"text":"you want um but realistically what you"},{"id":"segment-138","startMs":147040,"endMs":149030,"text":"you want um but realistically what you\nwant to be doing is building your first"},{"id":"segment-139","startMs":149030,"endMs":149040,"text":"want to be doing is building your first"},{"id":"segment-140","startMs":149040,"endMs":151030,"text":"want to be doing is building your first\npage builder block now today I'm only"},{"id":"segment-141","startMs":151030,"endMs":151040,"text":"page builder block now today I'm only"},{"id":"segment-142","startMs":151040,"endMs":152910,"text":"page builder block now today I'm only\ngoing to really focus on the page"},{"id":"segment-143","startMs":152910,"endMs":152920,"text":"going to really focus on the page"},{"id":"segment-144","startMs":152920,"endMs":154270,"text":"going to really focus on the page\nbuilder block side of things because"},{"id":"segment-145","startMs":154270,"endMs":154280,"text":"builder block side of things because"},{"id":"segment-146","startMs":154280,"endMs":157070,"text":"builder block side of things because\nthat's kind of the most important um but"},{"id":"segment-147","startMs":157070,"endMs":157080,"text":"that's kind of the most important um but"},{"id":"segment-148","startMs":157080,"endMs":159190,"text":"that's kind of the most important um but\nultimately we have this thing called"},{"id":"segment-149","startMs":159190,"endMs":159200,"text":"ultimately we have this thing called"},{"id":"segment-150","startMs":159200,"endMs":161110,"text":"ultimately we have this thing called\npage builder uh you'll notice there's"},{"id":"segment-151","startMs":161110,"endMs":161120,"text":"page builder uh you'll notice there's"},{"id":"segment-152","startMs":161120,"endMs":163270,"text":"page builder uh you'll notice there's\ntwo files one of them is the definitions"},{"id":"segment-153","startMs":163270,"endMs":163280,"text":"two files one of them is the definitions"},{"id":"segment-154","startMs":163280,"endMs":165430,"text":"two files one of them is the definitions\ninside of schema types uh always pay"},{"id":"segment-155","startMs":165430,"endMs":165440,"text":"inside of schema types uh always pay"},{"id":"segment-156","startMs":165440,"endMs":166830,"text":"inside of schema types uh always pay\nattention to this thing you see where it"},{"id":"segment-157","startMs":166830,"endMs":166840,"text":"attention to this thing you see where it"},{"id":"segment-158","startMs":166840,"endMs":170149,"text":"attention to this thing you see where it\nsays studio so Studio here web here um"},{"id":"segment-159","startMs":170149,"endMs":170159,"text":"says studio so Studio here web here um"},{"id":"segment-160","startMs":170159,"endMs":171990,"text":"says studio so Studio here web here um\nthe web and the the general rule of"},{"id":"segment-161","startMs":171990,"endMs":172000,"text":"the web and the the general rule of"},{"id":"segment-162","startMs":172000,"endMs":173589,"text":"the web and the the general rule of\nthumb although this is not always the"},{"id":"segment-163","startMs":173589,"endMs":173599,"text":"thumb although this is not always the"},{"id":"segment-164","startMs":173599,"endMs":175509,"text":"thumb although this is not always the\nperfect way of looking at it most of the"},{"id":"segment-165","startMs":175509,"endMs":175519,"text":"perfect way of looking at it most of the"},{"id":"segment-166","startMs":175519,"endMs":177030,"text":"perfect way of looking at it most of the\ntime it's going to be TS is going to be"},{"id":"segment-167","startMs":177030,"endMs":177040,"text":"time it's going to be TS is going to be"},{"id":"segment-168","startMs":177040,"endMs":178670,"text":"time it's going to be TS is going to be\ninside of the studio so the sanity"},{"id":"segment-169","startMs":178670,"endMs":178680,"text":"inside of the studio so the sanity"},{"id":"segment-170","startMs":178680,"endMs":181750,"text":"inside of the studio so the sanity\nstudio and then the other times. TSX is"},{"id":"segment-171","startMs":181750,"endMs":181760,"text":"studio and then the other times. TSX is"},{"id":"segment-172","startMs":181760,"endMs":183550,"text":"studio and then the other times. TSX is\ngoing to be in the actual webside of the"},{"id":"segment-173","startMs":183550,"endMs":183560,"text":"going to be in the actual webside of the"},{"id":"segment-174","startMs":183560,"endMs":186309,"text":"going to be in the actual webside of the\nwebsite so the nextjs environment I'll"},{"id":"segment-175","startMs":186309,"endMs":186319,"text":"website so the nextjs environment I'll"},{"id":"segment-176","startMs":186319,"endMs":187509,"text":"website so the nextjs environment I'll\ngive you an example here so let's go to"},{"id":"segment-177","startMs":187509,"endMs":187519,"text":"give you an example here so let's go to"},{"id":"segment-178","startMs":187519,"endMs":189910,"text":"give you an example here so let's go to\npage builder um let's see how this is"},{"id":"segment-179","startMs":189910,"endMs":189920,"text":"page builder um let's see how this is"},{"id":"segment-180","startMs":189920,"endMs":192229,"text":"page builder um let's see how this is\nactually built Okay cool so this is"},{"id":"segment-181","startMs":192229,"endMs":192239,"text":"actually built Okay cool so this is"},{"id":"segment-182","startMs":192239,"endMs":194390,"text":"actually built Okay cool so this is\nessentially array it's going through the"},{"id":"segment-183","startMs":194390,"endMs":194400,"text":"essentially array it's going through the"},{"id":"segment-184","startMs":194400,"endMs":197110,"text":"essentially array it's going through the\nuh array and it's mapping each block to"},{"id":"segment-185","startMs":197110,"endMs":197120,"text":"uh array and it's mapping each block to"},{"id":"segment-186","startMs":197120,"endMs":198990,"text":"uh array and it's mapping each block to\neach member inside of that so let's hit"},{"id":"segment-187","startMs":198990,"endMs":199000,"text":"each member inside of that so let's hit"},{"id":"segment-188","startMs":199000,"endMs":200670,"text":"each member inside of that so let's hit\npage builder blocks and see how that"},{"id":"segment-189","startMs":200670,"endMs":200680,"text":"page builder blocks and see how that"},{"id":"segment-190","startMs":200680,"endMs":203190,"text":"page builder blocks and see how that\nworks cool this is how we handle our"},{"id":"segment-191","startMs":203190,"endMs":203200,"text":"works cool this is how we handle our"},{"id":"segment-192","startMs":203200,"endMs":204509,"text":"works cool this is how we handle our\npage builder blocks and how we"},{"id":"segment-193","startMs":204509,"endMs":204519,"text":"page builder blocks and how we"},{"id":"segment-194","startMs":204519,"endMs":206309,"text":"page builder blocks and how we\nessentially assort them so let's go"},{"id":"segment-195","startMs":206309,"endMs":206319,"text":"essentially assort them so let's go"},{"id":"segment-196","startMs":206319,"endMs":208670,"text":"essentially assort them so let's go\nclick one of these let's go see hero and"},{"id":"segment-197","startMs":208670,"endMs":208680,"text":"click one of these let's go see hero and"},{"id":"segment-198","startMs":208680,"endMs":210990,"text":"click one of these let's go see hero and\nhere is a hero block now one thing that"},{"id":"segment-199","startMs":210990,"endMs":211000,"text":"here is a hero block now one thing that"},{"id":"segment-200","startMs":211000,"endMs":212949,"text":"here is a hero block now one thing that\nwe are going to do to improve turbo"},{"id":"segment-201","startMs":212949,"endMs":212959,"text":"we are going to do to improve turbo"},{"id":"segment-202","startMs":212959,"endMs":214789,"text":"we are going to do to improve turbo\nstart in the future is putting in some"},{"id":"segment-203","startMs":214789,"endMs":214799,"text":"start in the future is putting in some"},{"id":"segment-204","startMs":214799,"endMs":216830,"text":"start in the future is putting in some\nrules um I actually would recommend"},{"id":"segment-205","startMs":216830,"endMs":216840,"text":"rules um I actually would recommend"},{"id":"segment-206","startMs":216840,"endMs":219030,"text":"rules um I actually would recommend\nputting in these rules inside of Sanity"},{"id":"segment-207","startMs":219030,"endMs":219040,"text":"putting in these rules inside of Sanity"},{"id":"segment-208","startMs":219040,"endMs":221990,"text":"putting in these rules inside of Sanity\num inside of cursor sorry not sanity um"},{"id":"segment-209","startMs":221990,"endMs":222000,"text":"um inside of cursor sorry not sanity um"},{"id":"segment-210","startMs":222000,"endMs":223710,"text":"um inside of cursor sorry not sanity um\nso you can see if you go into I believe"},{"id":"segment-211","startMs":223710,"endMs":223720,"text":"so you can see if you go into I believe"},{"id":"segment-212","startMs":223720,"endMs":225429,"text":"so you can see if you go into I believe\nit's rules inside of here you can start"},{"id":"segment-213","startMs":225429,"endMs":225439,"text":"it's rules inside of here you can start"},{"id":"segment-214","startMs":225439,"endMs":227350,"text":"it's rules inside of here you can start\ncreating project rules uh we are going"},{"id":"segment-215","startMs":227350,"endMs":227360,"text":"creating project rules uh we are going"},{"id":"segment-216","startMs":227360,"endMs":229030,"text":"creating project rules uh we are going\nto include some project rules at a later"},{"id":"segment-217","startMs":229030,"endMs":229040,"text":"to include some project rules at a later"},{"id":"segment-218","startMs":229040,"endMs":231630,"text":"to include some project rules at a later\ndate um but if you are trying to use as"},{"id":"segment-219","startMs":231630,"endMs":231640,"text":"date um but if you are trying to use as"},{"id":"segment-220","startMs":231640,"endMs":233949,"text":"date um but if you are trying to use as\nmuch as you can from today outside of"},{"id":"segment-221","startMs":233949,"endMs":233959,"text":"much as you can from today outside of"},{"id":"segment-222","startMs":233959,"endMs":236789,"text":"much as you can from today outside of\ncursor that's the way you do it um with"},{"id":"segment-223","startMs":236789,"endMs":236799,"text":"cursor that's the way you do it um with"},{"id":"segment-224","startMs":236799,"endMs":239309,"text":"cursor that's the way you do it um with\nthat being said uh let's then move on to"},{"id":"segment-225","startMs":239309,"endMs":239319,"text":"that being said uh let's then move on to"},{"id":"segment-226","startMs":239319,"endMs":241830,"text":"that being said uh let's then move on to\ncreating our first schema um and you can"},{"id":"segment-227","startMs":241830,"endMs":241840,"text":"creating our first schema um and you can"},{"id":"segment-228","startMs":241840,"endMs":244030,"text":"creating our first schema um and you can\ndo a lot of the schema generation with"},{"id":"segment-229","startMs":244030,"endMs":244040,"text":"do a lot of the schema generation with"},{"id":"segment-230","startMs":244040,"endMs":245990,"text":"do a lot of the schema generation with\nAI but I would highly recommend going"},{"id":"segment-231","startMs":245990,"endMs":246000,"text":"AI but I would highly recommend going"},{"id":"segment-232","startMs":246000,"endMs":248149,"text":"AI but I would highly recommend going\nthrough the sanity learn um but for the"},{"id":"segment-233","startMs":248149,"endMs":248159,"text":"through the sanity learn um but for the"},{"id":"segment-234","startMs":248159,"endMs":249589,"text":"through the sanity learn um but for the\ntime being we're going to go for a brand"},{"id":"segment-235","startMs":249589,"endMs":249599,"text":"time being we're going to go for a brand"},{"id":"segment-236","startMs":249599,"endMs":253710,"text":"time being we're going to go for a brand\nnew schema called uh example uh example"},{"id":"segment-237","startMs":253710,"endMs":253720,"text":"new schema called uh example uh example"},{"id":"segment-238","startMs":253720,"endMs":257509,"text":"new schema called uh example uh example\nblock um and all this is going to be is"},{"id":"segment-239","startMs":257509,"endMs":257519,"text":"block um and all this is going to be is"},{"id":"segment-240","startMs":257519,"endMs":260110,"text":"block um and all this is going to be is\na image a title and a rich text and I'll"},{"id":"segment-241","startMs":260110,"endMs":260120,"text":"a image a title and a rich text and I'll"},{"id":"segment-242","startMs":260120,"endMs":262390,"text":"a image a title and a rich text and I'll\nshow you how that works so there is an"},{"id":"segment-243","startMs":262390,"endMs":262400,"text":"show you how that works so there is an"},{"id":"segment-244","startMs":262400,"endMs":265390,"text":"show you how that works so there is an\nextension that's quite useful uh called"},{"id":"segment-245","startMs":265390,"endMs":265400,"text":"extension that's quite useful uh called"},{"id":"segment-246","startMs":265400,"endMs":269550,"text":"extension that's quite useful uh called\nsanity what is it sanity Snippets I"},{"id":"segment-247","startMs":269550,"endMs":269560,"text":"sanity what is it sanity Snippets I"},{"id":"segment-248","startMs":269560,"endMs":271310,"text":"sanity what is it sanity Snippets I\nthink I think it's this one um where it"},{"id":"segment-249","startMs":271310,"endMs":271320,"text":"think I think it's this one um where it"},{"id":"segment-250","startMs":271320,"endMs":273029,"text":"think I think it's this one um where it\njust essentially allows you to put a"},{"id":"segment-251","startMs":273029,"endMs":273039,"text":"just essentially allows you to put a"},{"id":"segment-252","startMs":273039,"endMs":276390,"text":"just essentially allows you to put a\nsanity schemer in so if I go"},{"id":"segment-253","startMs":276390,"endMs":276400,"text":"sanity schemer in so if I go"},{"id":"segment-254","startMs":276400,"endMs":278670,"text":"sanity schemer in so if I go\nuh I've forgot the exact way that you do"},{"id":"segment-255","startMs":278670,"endMs":278680,"text":"uh I've forgot the exact way that you do"},{"id":"segment-256","startMs":278680,"endMs":280830,"text":"uh I've forgot the exact way that you do\nthis now um essentially I'm going to go"},{"id":"segment-257","startMs":280830,"endMs":280840,"text":"this now um essentially I'm going to go"},{"id":"segment-258","startMs":280840,"endMs":282830,"text":"this now um essentially I'm going to go\ntake it from another one because it's"},{"id":"segment-259","startMs":282830,"endMs":282840,"text":"take it from another one because it's"},{"id":"segment-260","startMs":282840,"endMs":284909,"text":"take it from another one because it's\nbeen too long since I've done this"},{"id":"segment-261","startMs":284909,"endMs":284919,"text":"been too long since I've done this"},{"id":"segment-262","startMs":284919,"endMs":287590,"text":"been too long since I've done this\nmanually um these days I'm actually"},{"id":"segment-263","startMs":287590,"endMs":287600,"text":"manually um these days I'm actually"},{"id":"segment-264","startMs":287600,"endMs":290909,"text":"manually um these days I'm actually\nusing um AI a lot to be able to generate"},{"id":"segment-265","startMs":290909,"endMs":290919,"text":"using um AI a lot to be able to generate"},{"id":"segment-266","startMs":290919,"endMs":293150,"text":"using um AI a lot to be able to generate\nthis stuff which is pretty poor but bear"},{"id":"segment-267","startMs":293150,"endMs":293160,"text":"this stuff which is pretty poor but bear"},{"id":"segment-268","startMs":293160,"endMs":295790,"text":"this stuff which is pretty poor but bear\nwith me so example block um let's put"},{"id":"segment-269","startMs":295790,"endMs":295800,"text":"with me so example block um let's put"},{"id":"segment-270","startMs":295800,"endMs":299830,"text":"with me so example block um let's put\nthis in so let's go uh create a schema"},{"id":"segment-271","startMs":299830,"endMs":299840,"text":"this in so let's go uh create a schema"},{"id":"segment-272","startMs":299840,"endMs":303590,"text":"this in so let's go uh create a schema\nthat uses um title because we always use"},{"id":"segment-273","startMs":303590,"endMs":303600,"text":"that uses um title because we always use"},{"id":"segment-274","startMs":303600,"endMs":305230,"text":"that uses um title because we always use\ntitles as a title if you keep"},{"id":"segment-275","startMs":305230,"endMs":305240,"text":"titles as a title if you keep"},{"id":"segment-276","startMs":305240,"endMs":306870,"text":"titles as a title if you keep\nstandardizing the fields always keep"},{"id":"segment-277","startMs":306870,"endMs":306880,"text":"standardizing the fields always keep"},{"id":"segment-278","startMs":306880,"endMs":310189,"text":"standardizing the fields always keep\nthat in the back of your mind um Rich"},{"id":"segment-279","startMs":310189,"endMs":310199,"text":"that in the back of your mind um Rich"},{"id":"segment-280","startMs":310199,"endMs":313070,"text":"that in the back of your mind um Rich\ntext and an"},{"id":"segment-281","startMs":313070,"endMs":313080,"text":"text and an"},{"id":"segment-282","startMs":313080,"endMs":315350,"text":"text and an\nimage and we're going to hit enter and"},{"id":"segment-283","startMs":315350,"endMs":315360,"text":"image and we're going to hit enter and"},{"id":"segment-284","startMs":315360,"endMs":316950,"text":"image and we're going to hit enter and\nthis is going to check check the example"},{"id":"segment-285","startMs":316950,"endMs":316960,"text":"this is going to check check the example"},{"id":"segment-286","startMs":316960,"endMs":319830,"text":"this is going to check check the example\nblock I am using the um what is it"},{"id":"segment-287","startMs":319830,"endMs":319840,"text":"block I am using the um what is it"},{"id":"segment-288","startMs":319840,"endMs":325870,"text":"block I am using the um what is it\ncalled Claude 3.7 thinking Max um and"},{"id":"segment-289","startMs":325870,"endMs":325880,"text":"called Claude 3.7 thinking Max um and"},{"id":"segment-290","startMs":325880,"endMs":329189,"text":"called Claude 3.7 thinking Max um and\nit's it's good it's good as basically"},{"id":"segment-291","startMs":329189,"endMs":329199,"text":"it's it's good it's good as basically"},{"id":"segment-292","startMs":329199,"endMs":331150,"text":"it's it's good it's good as basically\nthe regular one um I just thought I'd"},{"id":"segment-293","startMs":331150,"endMs":331160,"text":"the regular one um I just thought I'd"},{"id":"segment-294","startMs":331160,"endMs":332710,"text":"the regular one um I just thought I'd\nsee if it gets it right first time on"},{"id":"segment-295","startMs":332710,"endMs":332720,"text":"see if it gets it right first time on"},{"id":"segment-296","startMs":332720,"endMs":336029,"text":"see if it gets it right first time on\nthis um and I am using the agent you can"},{"id":"segment-297","startMs":336029,"endMs":336039,"text":"this um and I am using the agent you can"},{"id":"segment-298","startMs":336039,"endMs":338150,"text":"this um and I am using the agent you can\ndo this with command K as well um but"},{"id":"segment-299","startMs":338150,"endMs":338160,"text":"do this with command K as well um but"},{"id":"segment-300","startMs":338160,"endMs":339990,"text":"do this with command K as well um but\nthis is just a nice quick easy way to do"},{"id":"segment-301","startMs":339990,"endMs":340000,"text":"this is just a nice quick easy way to do"},{"id":"segment-302","startMs":340000,"endMs":341950,"text":"this is just a nice quick easy way to do\nit um and for most people that are"},{"id":"segment-303","startMs":341950,"endMs":341960,"text":"it um and for most people that are"},{"id":"segment-304","startMs":341960,"endMs":343309,"text":"it um and for most people that are\nwatching this I'm guessing a lot of"},{"id":"segment-305","startMs":343309,"endMs":343319,"text":"watching this I'm guessing a lot of"},{"id":"segment-306","startMs":343319,"endMs":344790,"text":"watching this I'm guessing a lot of\ndevelopers these days are just actually"},{"id":"segment-307","startMs":344790,"endMs":344800,"text":"developers these days are just actually"},{"id":"segment-308","startMs":344800,"endMs":346870,"text":"developers these days are just actually\nblasting these things out with AI I"},{"id":"segment-309","startMs":346870,"endMs":346880,"text":"blasting these things out with AI I"},{"id":"segment-310","startMs":346880,"endMs":348790,"text":"blasting these things out with AI I\ncannot tell you how important it is to"},{"id":"segment-311","startMs":348790,"endMs":348800,"text":"cannot tell you how important it is to"},{"id":"segment-312","startMs":348800,"endMs":350510,"text":"cannot tell you how important it is to\nnot make a fool of yourself like myself"},{"id":"segment-313","startMs":350510,"endMs":350520,"text":"not make a fool of yourself like myself"},{"id":"segment-314","startMs":350520,"endMs":351790,"text":"not make a fool of yourself like myself\nwhere you try actually writing one of"},{"id":"segment-315","startMs":351790,"endMs":351800,"text":"where you try actually writing one of"},{"id":"segment-316","startMs":351800,"endMs":353830,"text":"where you try actually writing one of\nthese things out manually and forgetting"},{"id":"segment-317","startMs":353830,"endMs":353840,"text":"these things out manually and forgetting"},{"id":"segment-318","startMs":353840,"endMs":357870,"text":"these things out manually and forgetting\nhow you do it um so we'll see this so"},{"id":"segment-319","startMs":357870,"endMs":357880,"text":"how you do it um so we'll see this so"},{"id":"segment-320","startMs":357880,"endMs":360909,"text":"how you do it um so we'll see this so\ncreate a new schema that uses this"},{"id":"segment-321","startMs":360909,"endMs":360919,"text":"create a new schema that uses this"},{"id":"segment-322","startMs":360919,"endMs":363110,"text":"create a new schema that uses this\nso first first mistake and this is"},{"id":"segment-323","startMs":363110,"endMs":363120,"text":"so first first mistake and this is"},{"id":"segment-324","startMs":363120,"endMs":365510,"text":"so first first mistake and this is\nactually very helpful to to use so"},{"id":"segment-325","startMs":365510,"endMs":365520,"text":"actually very helpful to to use so"},{"id":"segment-326","startMs":365520,"endMs":366990,"text":"actually very helpful to to use so\ninstead of calling instead of using the"},{"id":"segment-327","startMs":366990,"endMs":367000,"text":"instead of calling instead of using the"},{"id":"segment-328","startMs":367000,"endMs":369550,"text":"instead of calling instead of using the\nexample block um it's created a brand"},{"id":"segment-329","startMs":369550,"endMs":369560,"text":"example block um it's created a brand"},{"id":"segment-330","startMs":369560,"endMs":371430,"text":"example block um it's created a brand\nnew block called content with image so"},{"id":"segment-331","startMs":371430,"endMs":371440,"text":"new block called content with image so"},{"id":"segment-332","startMs":371440,"endMs":372950,"text":"new block called content with image so\nsomething to be aware of that AI does"},{"id":"segment-333","startMs":372950,"endMs":372960,"text":"something to be aware of that AI does"},{"id":"segment-334","startMs":372960,"endMs":375189,"text":"something to be aware of that AI does\nvery often is it generates a hell of a"},{"id":"segment-335","startMs":375189,"endMs":375199,"text":"very often is it generates a hell of a"},{"id":"segment-336","startMs":375199,"endMs":378710,"text":"very often is it generates a hell of a\nlot of um code but it's very poor at"},{"id":"segment-337","startMs":378710,"endMs":378720,"text":"lot of um code but it's very poor at"},{"id":"segment-338","startMs":378720,"endMs":381550,"text":"lot of um code but it's very poor at\nremoving that code um you can also see"},{"id":"segment-339","startMs":381550,"endMs":381560,"text":"removing that code um you can also see"},{"id":"segment-340","startMs":381560,"endMs":382909,"text":"removing that code um you can also see\nso I'll get rid of this example block"},{"id":"segment-341","startMs":382909,"endMs":382919,"text":"so I'll get rid of this example block"},{"id":"segment-342","startMs":382919,"endMs":384110,"text":"so I'll get rid of this example block\nand we'll stick with what we've what"},{"id":"segment-343","startMs":384110,"endMs":384120,"text":"and we'll stick with what we've what"},{"id":"segment-344","startMs":384120,"endMs":385990,"text":"and we'll stick with what we've what\nit's created which is this content with"},{"id":"segment-345","startMs":385990,"endMs":386000,"text":"it's created which is this content with"},{"id":"segment-346","startMs":386000,"endMs":388070,"text":"it's created which is this content with\nimage um you'll notice that we have this"},{"id":"segment-347","startMs":388070,"endMs":388080,"text":"image um you'll notice that we have this"},{"id":"segment-348","startMs":388080,"endMs":390110,"text":"image um you'll notice that we have this\ndefined field defined timee this is just"},{"id":"segment-349","startMs":390110,"endMs":390120,"text":"defined field defined timee this is just"},{"id":"segment-350","startMs":390120,"endMs":391990,"text":"defined field defined timee this is just\nsanity and this is typescripts which is"},{"id":"segment-351","startMs":391990,"endMs":392000,"text":"sanity and this is typescripts which is"},{"id":"segment-352","startMs":392000,"endMs":393749,"text":"sanity and this is typescripts which is\nreally helpful um something to know"},{"id":"segment-353","startMs":393749,"endMs":393759,"text":"really helpful um something to know"},{"id":"segment-354","startMs":393759,"endMs":395550,"text":"really helpful um something to know\nabout the project as well the whole"},{"id":"segment-355","startMs":395550,"endMs":395560,"text":"about the project as well the whole"},{"id":"segment-356","startMs":395560,"endMs":398629,"text":"about the project as well the whole\nproject generates types for you so as"},{"id":"segment-357","startMs":398629,"endMs":398639,"text":"project generates types for you so as"},{"id":"segment-358","startMs":398639,"endMs":400150,"text":"project generates types for you so as\nsoon as we have included this within the"},{"id":"segment-359","startMs":400150,"endMs":400160,"text":"soon as we have included this within the"},{"id":"segment-360","startMs":400160,"endMs":403350,"text":"soon as we have included this within the\nindex um and we will we will also let's"},{"id":"segment-361","startMs":403350,"endMs":403360,"text":"index um and we will we will also let's"},{"id":"segment-362","startMs":403360,"endMs":405350,"text":"index um and we will we will also let's\nsee where this is getting pulled into"},{"id":"segment-363","startMs":405350,"endMs":405360,"text":"see where this is getting pulled into"},{"id":"segment-364","startMs":405360,"endMs":407029,"text":"see where this is getting pulled into\nYep this is correct so this is inside of"},{"id":"segment-365","startMs":407029,"endMs":407039,"text":"Yep this is correct so this is inside of"},{"id":"segment-366","startMs":407039,"endMs":409150,"text":"Yep this is correct so this is inside of\nthe index um let me double check that"},{"id":"segment-367","startMs":409150,"endMs":409160,"text":"the index um let me double check that"},{"id":"segment-368","startMs":409160,"endMs":411309,"text":"the index um let me double check that\nit's inside of the page builder it will"},{"id":"segment-369","startMs":411309,"endMs":411319,"text":"it's inside of the page builder it will"},{"id":"segment-370","startMs":411319,"endMs":413550,"text":"it's inside of the page builder it will\nbe because uh that's where the blocks"},{"id":"segment-371","startMs":413550,"endMs":413560,"text":"be because uh that's where the blocks"},{"id":"segment-372","startMs":413560,"endMs":416070,"text":"be because uh that's where the blocks\nare coming from so this is wonderful now"},{"id":"segment-373","startMs":416070,"endMs":416080,"text":"are coming from so this is wonderful now"},{"id":"segment-374","startMs":416080,"endMs":418230,"text":"are coming from so this is wonderful now\nthe next thing we want to do is we want"},{"id":"segment-375","startMs":418230,"endMs":418240,"text":"the next thing we want to do is we want"},{"id":"segment-376","startMs":418240,"endMs":423550,"text":"the next thing we want to do is we want\nto run mpm run type um so PN PM PM I use"},{"id":"segment-377","startMs":423550,"endMs":423560,"text":"to run mpm run type um so PN PM PM I use"},{"id":"segment-378","startMs":423560,"endMs":429390,"text":"to run mpm run type um so PN PM PM I use\nPN as a a little tiny version so PN run"},{"id":"segment-379","startMs":429390,"endMs":429400,"text":"PN as a a little tiny version so PN run"},{"id":"segment-380","startMs":429400,"endMs":434110,"text":"PN as a a little tiny version so PN run\ntype and what this will do is you will"},{"id":"segment-381","startMs":434110,"endMs":434120,"text":"type and what this will do is you will"},{"id":"segment-382","startMs":434120,"endMs":436670,"text":"type and what this will do is you will\nforget that it's not actually included"},{"id":"segment-383","startMs":436670,"endMs":436680,"text":"forget that it's not actually included"},{"id":"segment-384","startMs":436680,"endMs":438350,"text":"forget that it's not actually included\non you can actually set this up so you"},{"id":"segment-385","startMs":438350,"endMs":438360,"text":"on you can actually set this up so you"},{"id":"segment-386","startMs":438360,"endMs":440230,"text":"on you can actually set this up so you\ncan do it from the root directory but I"},{"id":"segment-387","startMs":440230,"endMs":440240,"text":"can do it from the root directory but I"},{"id":"segment-388","startMs":440240,"endMs":442189,"text":"can do it from the root directory but I\nhaven't inside of Turbo so we will make"},{"id":"segment-389","startMs":442189,"endMs":442199,"text":"haven't inside of Turbo so we will make"},{"id":"segment-390","startMs":442199,"endMs":444270,"text":"haven't inside of Turbo so we will make\nsure that we get that soon um again I'm"},{"id":"segment-391","startMs":444270,"endMs":444280,"text":"sure that we get that soon um again I'm"},{"id":"segment-392","startMs":444280,"endMs":445869,"text":"sure that we get that soon um again I'm\nmaking sure that we hit all of these"},{"id":"segment-393","startMs":445869,"endMs":445879,"text":"making sure that we hit all of these"},{"id":"segment-394","startMs":445879,"endMs":448550,"text":"making sure that we hit all of these\nerrors intentionally um to try and"},{"id":"segment-395","startMs":448550,"endMs":448560,"text":"errors intentionally um to try and"},{"id":"segment-396","startMs":448560,"endMs":450670,"text":"errors intentionally um to try and\nprovide some education with all of this"},{"id":"segment-397","startMs":450670,"endMs":450680,"text":"provide some education with all of this"},{"id":"segment-398","startMs":450680,"endMs":452110,"text":"provide some education with all of this\num because it actually is worth knowing"},{"id":"segment-399","startMs":452110,"endMs":452120,"text":"um because it actually is worth knowing"},{"id":"segment-400","startMs":452120,"endMs":454990,"text":"um because it actually is worth knowing\nand you can see that we had 45 schemers"},{"id":"segment-401","startMs":454990,"endMs":455000,"text":"and you can see that we had 45 schemers"},{"id":"segment-402","startMs":455000,"endMs":457869,"text":"and you can see that we had 45 schemers\ncreated 45 schemers types and 13 grck"},{"id":"segment-403","startMs":457869,"endMs":457879,"text":"created 45 schemers types and 13 grck"},{"id":"segment-404","startMs":457879,"endMs":460350,"text":"created 45 schemers types and 13 grck\nqueries um so if I flip back very"},{"id":"segment-405","startMs":460350,"endMs":460360,"text":"queries um so if I flip back very"},{"id":"segment-406","startMs":460360,"endMs":463350,"text":"queries um so if I flip back very\nquickly um you will now notice that if I"},{"id":"segment-407","startMs":463350,"endMs":463360,"text":"quickly um you will now notice that if I"},{"id":"segment-408","startMs":463360,"endMs":466029,"text":"quickly um you will now notice that if I\ngo ahead and I build an equivalent block"},{"id":"segment-409","startMs":466029,"endMs":466039,"text":"go ahead and I build an equivalent block"},{"id":"segment-410","startMs":466039,"endMs":468110,"text":"go ahead and I build an equivalent block\nso content with image um I'm going to go"},{"id":"segment-411","startMs":468110,"endMs":468120,"text":"so content with image um I'm going to go"},{"id":"segment-412","startMs":468120,"endMs":470189,"text":"so content with image um I'm going to go\nahead and find uh another block that"},{"id":"segment-413","startMs":470189,"endMs":470199,"text":"ahead and find uh another block that"},{"id":"segment-414","startMs":470199,"endMs":472790,"text":"ahead and find uh another block that\nexists on this so hero. TSX you'll"},{"id":"segment-415","startMs":472790,"endMs":472800,"text":"exists on this so hero. TSX you'll"},{"id":"segment-416","startMs":472800,"endMs":475230,"text":"exists on this so hero. TSX you'll\nnotice that they are always named the"},{"id":"segment-417","startMs":475230,"endMs":475240,"text":"notice that they are always named the"},{"id":"segment-418","startMs":475240,"endMs":479950,"text":"notice that they are always named the\nsame thing so hero. TSX hero. TS um so"},{"id":"segment-419","startMs":479950,"endMs":479960,"text":"same thing so hero. TSX hero. TS um so"},{"id":"segment-420","startMs":479960,"endMs":481469,"text":"same thing so hero. TSX hero. TS um so\nlet's go here and you'll notice it's in"},{"id":"segment-421","startMs":481469,"endMs":481479,"text":"let's go here and you'll notice it's in"},{"id":"segment-422","startMs":481479,"endMs":483309,"text":"let's go here and you'll notice it's in\nthe sections um and what we're going to"},{"id":"segment-423","startMs":483309,"endMs":483319,"text":"the sections um and what we're going to"},{"id":"segment-424","startMs":483319,"endMs":484790,"text":"the sections um and what we're going to\ndo we're going to do a brand new file"},{"id":"segment-425","startMs":484790,"endMs":484800,"text":"do we're going to do a brand new file"},{"id":"segment-426","startMs":484800,"endMs":485869,"text":"do we're going to do a brand new file\nand we're going to call it the same as"},{"id":"segment-427","startMs":485869,"endMs":485879,"text":"and we're going to call it the same as"},{"id":"segment-428","startMs":485879,"endMs":490990,"text":"and we're going to call it the same as\nwhat we have so content with image. TSX"},{"id":"segment-429","startMs":490990,"endMs":491000,"text":"what we have so content with image. TSX"},{"id":"segment-430","startMs":491000,"endMs":493309,"text":"what we have so content with image. TSX\nokay now um what we can do is is we can"},{"id":"segment-431","startMs":493309,"endMs":493319,"text":"okay now um what we can do is is we can"},{"id":"segment-432","startMs":493319,"endMs":495390,"text":"okay now um what we can do is is we can\ngo back to here we can pop this in and"},{"id":"segment-433","startMs":495390,"endMs":495400,"text":"go back to here we can pop this in and"},{"id":"segment-434","startMs":495400,"endMs":499589,"text":"go back to here we can pop this in and\nwe can say um uh let's get content with"},{"id":"segment-435","startMs":499589,"endMs":499599,"text":"we can say um uh let's get content with"},{"id":"segment-436","startMs":499599,"endMs":501629,"text":"we can say um uh let's get content with\nimage let's pull both versions so that"},{"id":"segment-437","startMs":501629,"endMs":501639,"text":"image let's pull both versions so that"},{"id":"segment-438","startMs":501639,"endMs":503309,"text":"image let's pull both versions so that\nversion this version get rid of example"},{"id":"segment-439","startMs":503309,"endMs":503319,"text":"version this version get rid of example"},{"id":"segment-440","startMs":503319,"endMs":505350,"text":"version this version get rid of example\nblock cuz we don't need it anymore and"},{"id":"segment-441","startMs":505350,"endMs":505360,"text":"block cuz we don't need it anymore and"},{"id":"segment-442","startMs":505360,"endMs":510390,"text":"block cuz we don't need it anymore and\nsay I would like to create a b basic"},{"id":"segment-443","startMs":510390,"endMs":510400,"text":"say I would like to create a b basic"},{"id":"segment-444","startMs":510400,"endMs":515870,"text":"say I would like to create a b basic\nblock with um content with"},{"id":"segment-445","startMs":515870,"endMs":515880,"text":"block with um content with"},{"id":"segment-446","startMs":515880,"endMs":519709,"text":"block with um content with\nimage schema can you use and again we"},{"id":"segment-447","startMs":519709,"endMs":519719,"text":"image schema can you use and again we"},{"id":"segment-448","startMs":519719,"endMs":521670,"text":"image schema can you use and again we\ncan use other ones so like one of the"},{"id":"segment-449","startMs":521670,"endMs":521680,"text":"can use other ones so like one of the"},{"id":"segment-450","startMs":521680,"endMs":522990,"text":"can use other ones so like one of the\nthings that I would always recommend is"},{"id":"segment-451","startMs":522990,"endMs":523000,"text":"things that I would always recommend is"},{"id":"segment-452","startMs":523000,"endMs":526389,"text":"things that I would always recommend is\nvery helpful is using another component"},{"id":"segment-453","startMs":526389,"endMs":526399,"text":"very helpful is using another component"},{"id":"segment-454","startMs":526399,"endMs":528230,"text":"very helpful is using another component\nto opinionate what this one's going to"},{"id":"segment-455","startMs":528230,"endMs":528240,"text":"to opinionate what this one's going to"},{"id":"segment-456","startMs":528240,"endMs":531269,"text":"to opinionate what this one's going to\ndo so uh can you use at"},{"id":"segment-457","startMs":531269,"endMs":531279,"text":"do so uh can you use at"},{"id":"segment-458","startMs":531279,"endMs":537829,"text":"do so uh can you use at\nhero. TSX to see how we handle images"},{"id":"segment-459","startMs":537829,"endMs":537839,"text":"hero. TSX to see how we handle images"},{"id":"segment-460","startMs":537839,"endMs":540350,"text":"hero. TSX to see how we handle images\nand Rich Text Etc"},{"id":"segment-461","startMs":540350,"endMs":540360,"text":"and Rich Text Etc"},{"id":"segment-462","startMs":540360,"endMs":542269,"text":"and Rich Text Etc\num so going to hit enter again and"},{"id":"segment-463","startMs":542269,"endMs":542279,"text":"um so going to hit enter again and"},{"id":"segment-464","startMs":542279,"endMs":543350,"text":"um so going to hit enter again and\nyou'll see this should hopefully"},{"id":"segment-465","startMs":543350,"endMs":543360,"text":"you'll see this should hopefully"},{"id":"segment-466","startMs":543360,"endMs":546430,"text":"you'll see this should hopefully\npopulate this content with image the one"},{"id":"segment-467","startMs":546430,"endMs":546440,"text":"populate this content with image the one"},{"id":"segment-468","startMs":546440,"endMs":548030,"text":"populate this content with image the one\nthing that might be interesting is"},{"id":"segment-469","startMs":548030,"endMs":548040,"text":"thing that might be interesting is"},{"id":"segment-470","startMs":548040,"endMs":550750,"text":"thing that might be interesting is\nwhether it gets the type correct or not"},{"id":"segment-471","startMs":550750,"endMs":550760,"text":"whether it gets the type correct or not"},{"id":"segment-472","startMs":550760,"endMs":552509,"text":"whether it gets the type correct or not\num because it's generated that type but"},{"id":"segment-473","startMs":552509,"endMs":552519,"text":"um because it's generated that type but"},{"id":"segment-474","startMs":552519,"endMs":554350,"text":"um because it's generated that type but\nalso the type generation file is"},{"id":"segment-475","startMs":554350,"endMs":554360,"text":"also the type generation file is"},{"id":"segment-476","startMs":554360,"endMs":556509,"text":"also the type generation file is\nabsolutely massive it looks like it did"},{"id":"segment-477","startMs":556509,"endMs":556519,"text":"absolutely massive it looks like it did"},{"id":"segment-478","startMs":556519,"endMs":559829,"text":"absolutely massive it looks like it did\nit correctly yep um you'll see that we"},{"id":"segment-479","startMs":559829,"endMs":559839,"text":"it correctly yep um you'll see that we"},{"id":"segment-480","startMs":559839,"endMs":561269,"text":"it correctly yep um you'll see that we\nnow have this now the thing is is we"},{"id":"segment-481","startMs":561269,"endMs":561279,"text":"now have this now the thing is is we"},{"id":"segment-482","startMs":561279,"endMs":562949,"text":"now have this now the thing is is we\ndon't have this left right so can you"},{"id":"segment-483","startMs":562949,"endMs":562959,"text":"don't have this left right so can you"},{"id":"segment-484","startMs":562959,"endMs":564829,"text":"don't have this left right so can you\nsee we have this image position but I"},{"id":"segment-485","startMs":564829,"endMs":564839,"text":"see we have this image position but I"},{"id":"segment-486","startMs":564839,"endMs":568670,"text":"see we have this image position but I\nunless it did include that on the do we"},{"id":"segment-487","startMs":568670,"endMs":568680,"text":"unless it did include that on the do we"},{"id":"segment-488","startMs":568680,"endMs":570190,"text":"unless it did include that on the do we\nhave a left right in here oh we do have"},{"id":"segment-489","startMs":570190,"endMs":570200,"text":"have a left right in here oh we do have"},{"id":"segment-490","startMs":570200,"endMs":573470,"text":"have a left right in here oh we do have\na left right okay cool so that's fine"},{"id":"segment-491","startMs":573470,"endMs":573480,"text":"a left right okay cool so that's fine"},{"id":"segment-492","startMs":573480,"endMs":575509,"text":"a left right okay cool so that's fine\nlet's see what it's it's uh complaining"},{"id":"segment-493","startMs":575509,"endMs":575519,"text":"let's see what it's it's uh complaining"},{"id":"segment-494","startMs":575519,"endMs":579350,"text":"let's see what it's it's uh complaining\nabout here ah this image asset that's"},{"id":"segment-495","startMs":579350,"endMs":579360,"text":"about here ah this image asset that's"},{"id":"segment-496","startMs":579360,"endMs":582030,"text":"about here ah this image asset that's\ninteresting let's see what it does I'm"},{"id":"segment-497","startMs":582030,"endMs":582040,"text":"interesting let's see what it does I'm"},{"id":"segment-498","startMs":582040,"endMs":583509,"text":"interesting let's see what it does I'm\nreally curious as to whether it will fix"},{"id":"segment-499","startMs":583509,"endMs":583519,"text":"really curious as to whether it will fix"},{"id":"segment-500","startMs":583519,"endMs":585310,"text":"really curious as to whether it will fix\nit or"},{"id":"segment-501","startMs":585310,"endMs":585320,"text":"it or"},{"id":"segment-502","startMs":585320,"endMs":588110,"text":"it or\nnot so we can have a quick look on here"},{"id":"segment-503","startMs":588110,"endMs":588120,"text":"not so we can have a quick look on here"},{"id":"segment-504","startMs":588120,"endMs":591870,"text":"not so we can have a quick look on here\nas to how the sanity hero image asset"},{"id":"segment-505","startMs":591870,"endMs":591880,"text":"as to how the sanity hero image asset"},{"id":"segment-506","startMs":591880,"endMs":595350,"text":"as to how the sanity hero image asset\nworked so image let's have a quick look"},{"id":"segment-507","startMs":595350,"endMs":595360,"text":"worked so image let's have a quick look"},{"id":"segment-508","startMs":595360,"endMs":601069,"text":"worked so image let's have a quick look\nhero page builder type hero"},{"id":"segment-509","startMs":603230,"endMs":603240,"text":"let's see let's move back and see what's"},{"id":"segment-510","startMs":603240,"endMs":605509,"text":"let's see let's move back and see what's\ngoing"},{"id":"segment-511","startMs":609990,"endMs":610000,"text":"on asset image where's the problem here"},{"id":"segment-512","startMs":610000,"endMs":614350,"text":"on asset image where's the problem here\nproperty asset which is declared on okay"},{"id":"segment-513","startMs":614350,"endMs":614360,"text":"property asset which is declared on okay"},{"id":"segment-514","startMs":614360,"endMs":616670,"text":"property asset which is declared on okay\nso let's go check this out let's go"},{"id":"segment-515","startMs":616670,"endMs":616680,"text":"so let's go check this out let's go"},{"id":"segment-516","startMs":616680,"endMs":619230,"text":"so let's go check this out let's go\ncheck um what this might be getting"},{"id":"segment-517","startMs":619230,"endMs":619240,"text":"check um what this might be getting"},{"id":"segment-518","startMs":619240,"endMs":622630,"text":"check um what this might be getting\ncaused by I have a feeling this is to do"},{"id":"segment-519","startMs":622630,"endMs":622640,"text":"caused by I have a feeling this is to do"},{"id":"segment-520","startMs":622640,"endMs":624870,"text":"caused by I have a feeling this is to do\nwith the query so let's go check the"},{"id":"segment-521","startMs":624870,"endMs":624880,"text":"with the query so let's go check the"},{"id":"segment-522","startMs":624880,"endMs":627750,"text":"with the query so let's go check the\nqueries out and you'll notice there is"},{"id":"segment-523","startMs":627750,"endMs":627760,"text":"queries out and you'll notice there is"},{"id":"segment-524","startMs":627760,"endMs":629550,"text":"queries out and you'll notice there is\nan image fragment on here let's see if"},{"id":"segment-525","startMs":629550,"endMs":629560,"text":"an image fragment on here let's see if"},{"id":"segment-526","startMs":629560,"endMs":632670,"text":"an image fragment on here let's see if\nthere's one for um let's stop this okay"},{"id":"segment-527","startMs":632670,"endMs":632680,"text":"there's one for um let's stop this okay"},{"id":"segment-528","startMs":632680,"endMs":634389,"text":"there's one for um let's stop this okay\nwe'll accept what it's got so far that's"},{"id":"segment-529","startMs":634389,"endMs":634399,"text":"we'll accept what it's got so far that's"},{"id":"segment-530","startMs":634399,"endMs":639750,"text":"we'll accept what it's got so far that's\nfine um and we will look at the herob"},{"id":"segment-531","startMs":639750,"endMs":639760,"text":"fine um and we will look at the herob"},{"id":"segment-532","startMs":639760,"endMs":641750,"text":"fine um and we will look at the herob\nBlock so if we go to herob block inside"},{"id":"segment-533","startMs":641750,"endMs":641760,"text":"Block so if we go to herob block inside"},{"id":"segment-534","startMs":641760,"endMs":644310,"text":"Block so if we go to herob block inside\nof here I notice that there is a image"},{"id":"segment-535","startMs":644310,"endMs":644320,"text":"of here I notice that there is a image"},{"id":"segment-536","startMs":644320,"endMs":646509,"text":"of here I notice that there is a image\nfragment and a rich text fragment now"},{"id":"segment-537","startMs":646509,"endMs":646519,"text":"fragment and a rich text fragment now"},{"id":"segment-538","startMs":646519,"endMs":648790,"text":"fragment and a rich text fragment now\nthis is the way that we handle Gro so if"},{"id":"segment-539","startMs":648790,"endMs":648800,"text":"this is the way that we handle Gro so if"},{"id":"segment-540","startMs":648800,"endMs":650949,"text":"this is the way that we handle Gro so if\nwe go one below we were going to say"},{"id":"segment-541","startMs":650949,"endMs":650959,"text":"we go one below we were going to say"},{"id":"segment-542","startMs":650959,"endMs":652509,"text":"we go one below we were going to say\ncontent with image block let's take that"},{"id":"segment-543","startMs":652509,"endMs":652519,"text":"content with image block let's take that"},{"id":"segment-544","startMs":652519,"endMs":655910,"text":"content with image block let's take that\nfor now um and we want the that's"},{"id":"segment-545","startMs":655910,"endMs":655920,"text":"for now um and we want the that's"},{"id":"segment-546","startMs":655920,"endMs":659550,"text":"for now um and we want the that's\nactually exactly what we want um"},{"id":"segment-547","startMs":659550,"endMs":659560,"text":"actually exactly what we want um"},{"id":"segment-548","startMs":659560,"endMs":661470,"text":"actually exactly what we want um\nso let's just finish that one off"},{"id":"segment-549","startMs":661470,"endMs":661480,"text":"so let's just finish that one off"},{"id":"segment-550","startMs":661480,"endMs":663949,"text":"so let's just finish that one off\nperfect and then let's take this content"},{"id":"segment-551","startMs":663949,"endMs":663959,"text":"perfect and then let's take this content"},{"id":"segment-552","startMs":663959,"endMs":665949,"text":"perfect and then let's take this content\nwith image block and Pop That Into the"},{"id":"segment-553","startMs":665949,"endMs":665959,"text":"with image block and Pop That Into the"},{"id":"segment-554","startMs":665959,"endMs":668030,"text":"with image block and Pop That Into the\npage builder wherever that is is it down"},{"id":"segment-555","startMs":668030,"endMs":668040,"text":"page builder wherever that is is it down"},{"id":"segment-556","startMs":668040,"endMs":671269,"text":"page builder wherever that is is it down\nhere"},{"id":"segment-557","startMs":675949,"endMs":675959,"text":"yep perfect now if we pop"},{"id":"segment-558","startMs":675959,"endMs":679069,"text":"yep perfect now if we pop\nback um and we run this"},{"id":"segment-559","startMs":679069,"endMs":679079,"text":"back um and we run this"},{"id":"segment-560","startMs":679079,"endMs":683269,"text":"back um and we run this\nagain so let's run the PN run"},{"id":"segment-561","startMs":683269,"endMs":683279,"text":"again so let's run the PN run"},{"id":"segment-562","startMs":683279,"endMs":686069,"text":"again so let's run the PN run\ntype see if it breaks and we'll go"},{"id":"segment-563","startMs":686069,"endMs":686079,"text":"type see if it breaks and we'll go"},{"id":"segment-564","startMs":686079,"endMs":687430,"text":"type see if it breaks and we'll go\nthrough if it breaks as well cuz that'll"},{"id":"segment-565","startMs":687430,"endMs":687440,"text":"through if it breaks as well cuz that'll"},{"id":"segment-566","startMs":687440,"endMs":689790,"text":"through if it breaks as well cuz that'll\nbe really helpful um this just means"},{"id":"segment-567","startMs":689790,"endMs":689800,"text":"be really helpful um this just means"},{"id":"segment-568","startMs":689800,"endMs":691269,"text":"be really helpful um this just means\nthat everything that you're writing up"},{"id":"segment-569","startMs":691269,"endMs":691279,"text":"that everything that you're writing up"},{"id":"segment-570","startMs":691279,"endMs":693949,"text":"that everything that you're writing up\nis actually like fully fully typescript"},{"id":"segment-571","startMs":693949,"endMs":693959,"text":"is actually like fully fully typescript"},{"id":"segment-572","startMs":693959,"endMs":696310,"text":"is actually like fully fully typescript\nand you'll see bada bing bada boom it"},{"id":"segment-573","startMs":696310,"endMs":696320,"text":"and you'll see bada bing bada boom it"},{"id":"segment-574","startMs":696320,"endMs":699030,"text":"and you'll see bada bing bada boom it\njust went green which is great news so"},{"id":"segment-575","startMs":699030,"endMs":699040,"text":"just went green which is great news so"},{"id":"segment-576","startMs":699040,"endMs":700990,"text":"just went green which is great news so\nthat's worked and it was all down to a"},{"id":"segment-577","startMs":700990,"endMs":701000,"text":"that's worked and it was all down to a"},{"id":"segment-578","startMs":701000,"endMs":702829,"text":"that's worked and it was all down to a\ncouple different files so the query file"},{"id":"segment-579","startMs":702829,"endMs":702839,"text":"couple different files so the query file"},{"id":"segment-580","startMs":702839,"endMs":705030,"text":"couple different files so the query file\nwith sanity um and making sure we're"},{"id":"segment-581","startMs":705030,"endMs":705040,"text":"with sanity um and making sure we're"},{"id":"segment-582","startMs":705040,"endMs":706910,"text":"with sanity um and making sure we're\nusing these fragments the reason why"},{"id":"segment-583","startMs":706910,"endMs":706920,"text":"using these fragments the reason why"},{"id":"segment-584","startMs":706920,"endMs":708870,"text":"using these fragments the reason why\nthese fragments are so useful is at"},{"id":"segment-585","startMs":708870,"endMs":708880,"text":"these fragments are so useful is at"},{"id":"segment-586","startMs":708880,"endMs":710590,"text":"these fragments are so useful is at\nfirst it seems like a lot of fuss and a"},{"id":"segment-587","startMs":710590,"endMs":710600,"text":"first it seems like a lot of fuss and a"},{"id":"segment-588","startMs":710600,"endMs":712910,"text":"first it seems like a lot of fuss and a\nlot of hassle but as the website scales"},{"id":"segment-589","startMs":712910,"endMs":712920,"text":"lot of hassle but as the website scales"},{"id":"segment-590","startMs":712920,"endMs":715790,"text":"lot of hassle but as the website scales\nand you have like 600 700 Pages um this"},{"id":"segment-591","startMs":715790,"endMs":715800,"text":"and you have like 600 700 Pages um this"},{"id":"segment-592","startMs":715800,"endMs":718190,"text":"and you have like 600 700 Pages um this\nis not a lot of hassle what is a lot of"},{"id":"segment-593","startMs":718190,"endMs":718200,"text":"is not a lot of hassle what is a lot of"},{"id":"segment-594","startMs":718200,"endMs":719790,"text":"is not a lot of hassle what is a lot of\nhassle is trying to figure figure out"},{"id":"segment-595","startMs":719790,"endMs":719800,"text":"hassle is trying to figure figure out"},{"id":"segment-596","startMs":719800,"endMs":722190,"text":"hassle is trying to figure figure out\nwhy your uh queries are timing out"},{"id":"segment-597","startMs":722190,"endMs":722200,"text":"why your uh queries are timing out"},{"id":"segment-598","startMs":722200,"endMs":723750,"text":"why your uh queries are timing out\nbecause you're pulling so much data in"},{"id":"segment-599","startMs":723750,"endMs":723760,"text":"because you're pulling so much data in"},{"id":"segment-600","startMs":723760,"endMs":726030,"text":"because you're pulling so much data in\none go um so I definitely recommend"},{"id":"segment-601","startMs":726030,"endMs":726040,"text":"one go um so I definitely recommend"},{"id":"segment-602","startMs":726040,"endMs":726949,"text":"one go um so I definitely recommend\ndoing"},{"id":"segment-603","startMs":726949,"endMs":726959,"text":"doing"},{"id":"segment-604","startMs":726959,"endMs":729870,"text":"doing\nthis um and as you can see this is now"},{"id":"segment-605","startMs":729870,"endMs":729880,"text":"this um and as you can see this is now"},{"id":"segment-606","startMs":729880,"endMs":732870,"text":"this um and as you can see this is now\nall wired up let's go on to Arc and"},{"id":"segment-607","startMs":732870,"endMs":732880,"text":"all wired up let's go on to Arc and"},{"id":"segment-608","startMs":732880,"endMs":735110,"text":"all wired up let's go on to Arc and\nlet's go into Local Host"},{"id":"segment-609","startMs":735110,"endMs":735120,"text":"let's go into Local Host"},{"id":"segment-610","startMs":735120,"endMs":737750,"text":"let's go into Local Host\n3333 which is the sanity"},{"id":"segment-611","startMs":737750,"endMs":737760,"text":"3333 which is the sanity"},{"id":"segment-612","startMs":737760,"endMs":741269,"text":"3333 which is the sanity\nenvironment and inside of here we"},{"id":"segment-613","startMs":741269,"endMs":741279,"text":"environment and inside of here we"},{"id":"segment-614","startMs":741279,"endMs":744590,"text":"environment and inside of here we\nshould give it a couple seconds oh here"},{"id":"segment-615","startMs":744590,"endMs":744600,"text":"should give it a couple seconds oh here"},{"id":"segment-616","startMs":744600,"endMs":746670,"text":"should give it a couple seconds oh here\nwe go let's log"},{"id":"segment-617","startMs":746670,"endMs":746680,"text":"we go let's log"},{"id":"segment-618","startMs":746680,"endMs":749269,"text":"we go let's log\nin I'm really hoping it doesn't come up"},{"id":"segment-619","startMs":749269,"endMs":749279,"text":"in I'm really hoping it doesn't come up"},{"id":"segment-620","startMs":749279,"endMs":751509,"text":"in I'm really hoping it doesn't come up\nwith the"},{"id":"segment-621","startMs":751509,"endMs":751519,"text":"with the"},{"id":"segment-622","startMs":751519,"endMs":755150,"text":"with the\nor Okay cool so let's go to structure"},{"id":"segment-623","startMs":755150,"endMs":755160,"text":"or Okay cool so let's go to structure"},{"id":"segment-624","startMs":755160,"endMs":756829,"text":"or Okay cool so let's go to structure\nlet's go to Pages we can do this through"},{"id":"segment-625","startMs":756829,"endMs":756839,"text":"let's go to Pages we can do this through"},{"id":"segment-626","startMs":756839,"endMs":759710,"text":"let's go to Pages we can do this through\nthe actual presentation um but for"},{"id":"segment-627","startMs":759710,"endMs":759720,"text":"the actual presentation um but for"},{"id":"segment-628","startMs":759720,"endMs":761590,"text":"the actual presentation um but for\nexample let's take this page and let's"},{"id":"segment-629","startMs":761590,"endMs":761600,"text":"example let's take this page and let's"},{"id":"segment-630","startMs":761600,"endMs":762710,"text":"example let's take this page and let's\nhit the"},{"id":"segment-631","startMs":762710,"endMs":762720,"text":"hit the"},{"id":"segment-632","startMs":762720,"endMs":765470,"text":"hit the\nplus what is this get rid of"},{"id":"segment-633","startMs":765470,"endMs":765480,"text":"plus what is this get rid of"},{"id":"segment-634","startMs":765480,"endMs":767430,"text":"plus what is this get rid of\nthat and let's"},{"id":"segment-635","startMs":767430,"endMs":767440,"text":"that and let's"},{"id":"segment-636","startMs":767440,"endMs":770750,"text":"that and let's\ndo content with image so this was it so"},{"id":"segment-637","startMs":770750,"endMs":770760,"text":"do content with image so this was it so"},{"id":"segment-638","startMs":770760,"endMs":772550,"text":"do content with image so this was it so\nwe know that if this works this is"},{"id":"segment-639","startMs":772550,"endMs":772560,"text":"we know that if this works this is"},{"id":"segment-640","startMs":772560,"endMs":774470,"text":"we know that if this works this is\nactually working so write content with"},{"id":"segment-641","startMs":774470,"endMs":774480,"text":"actually working so write content with"},{"id":"segment-642","startMs":774480,"endMs":780069,"text":"actually working so write content with\nimage content with image title Rich t"},{"id":"segment-643","startMs":780069,"endMs":780079,"text":"image content with image title Rich t"},{"id":"segment-644","startMs":780079,"endMs":781949,"text":"image content with image title Rich t\nnextt let's choose an image from"},{"id":"segment-645","startMs":781949,"endMs":781959,"text":"nextt let's choose an image from"},{"id":"segment-646","startMs":781959,"endMs":783829,"text":"nextt let's choose an image from\nwhatever's in the uh"},{"id":"segment-647","startMs":783829,"endMs":783839,"text":"whatever's in the uh"},{"id":"segment-648","startMs":783839,"endMs":786509,"text":"whatever's in the uh\nenvironment oh that one's not so good"},{"id":"segment-649","startMs":786509,"endMs":786519,"text":"environment oh that one's not so good"},{"id":"segment-650","startMs":786519,"endMs":788870,"text":"environment oh that one's not so good\nlet's pick one from"},{"id":"segment-651","startMs":788870,"endMs":788880,"text":"let's pick one from"},{"id":"segment-652","startMs":788880,"endMs":792110,"text":"let's pick one from\nunsplash uh let's go for this nice"},{"id":"segment-653","startMs":792110,"endMs":792120,"text":"unsplash uh let's go for this nice"},{"id":"segment-654","startMs":792120,"endMs":793310,"text":"unsplash uh let's go for this nice\ncoffee looking"},{"id":"segment-655","startMs":793310,"endMs":793320,"text":"coffee looking"},{"id":"segment-656","startMs":793320,"endMs":796230,"text":"coffee looking\nthing let's wait for that to"},{"id":"segment-657","startMs":796230,"endMs":796240,"text":"thing let's wait for that to"},{"id":"segment-658","startMs":796240,"endMs":797949,"text":"thing let's wait for that to\ndownload and then we're going to hit"},{"id":"segment-659","startMs":797949,"endMs":797959,"text":"download and then we're going to hit"},{"id":"segment-660","startMs":797959,"endMs":801550,"text":"download and then we're going to hit\npublish and this"},{"id":"segment-661","startMs":806590,"endMs":806600,"text":"should lovely little bit of Rich text to"},{"id":"segment-662","startMs":806600,"endMs":809790,"text":"should lovely little bit of Rich text to\ncompliment"},{"id":"segment-663","startMs":822629,"endMs":822639,"text":"battery okay and what we're going to do"},{"id":"segment-664","startMs":822639,"endMs":824629,"text":"battery okay and what we're going to do\nwe're going to hit we can open this so"},{"id":"segment-665","startMs":824629,"endMs":824639,"text":"we're going to hit we can open this so"},{"id":"segment-666","startMs":824639,"endMs":827710,"text":"we're going to hit we can open this so\nwe can actually go back pages go into"},{"id":"segment-667","startMs":827710,"endMs":827720,"text":"we can actually go back pages go into"},{"id":"segment-668","startMs":827720,"endMs":829710,"text":"we can actually go back pages go into\nhere and open it this way opening"},{"id":"segment-669","startMs":829710,"endMs":829720,"text":"here and open it this way opening"},{"id":"segment-670","startMs":829720,"endMs":831990,"text":"here and open it this way opening\npresentation should open straight away"},{"id":"segment-671","startMs":831990,"endMs":832000,"text":"presentation should open straight away"},{"id":"segment-672","startMs":832000,"endMs":840829,"text":"presentation should open straight away\nand we'll see if it's in there"},{"id":"segment-673","startMs":843350,"endMs":843360,"text":"ooh component not found with block type"},{"id":"segment-674","startMs":843360,"endMs":844870,"text":"ooh component not found with block type\ncontent with image now let's find out"},{"id":"segment-675","startMs":844870,"endMs":844880,"text":"content with image now let's find out"},{"id":"segment-676","startMs":844880,"endMs":847870,"text":"content with image now let's find out\nhow we fix that so remember how we had"},{"id":"segment-677","startMs":847870,"endMs":847880,"text":"how we fix that so remember how we had"},{"id":"segment-678","startMs":847880,"endMs":850910,"text":"how we fix that so remember how we had\nthis page builder here the problem is"},{"id":"segment-679","startMs":850910,"endMs":850920,"text":"this page builder here the problem is"},{"id":"segment-680","startMs":850920,"endMs":852509,"text":"this page builder here the problem is\nthat we have another page builder here"},{"id":"segment-681","startMs":852509,"endMs":852519,"text":"that we have another page builder here"},{"id":"segment-682","startMs":852519,"endMs":855269,"text":"that we have another page builder here\nthat we forgot to put it in so if we pop"},{"id":"segment-683","startMs":855269,"endMs":855279,"text":"that we forgot to put it in so if we pop"},{"id":"segment-684","startMs":855279,"endMs":858470,"text":"that we forgot to put it in so if we pop\ndown a level you'll see that we have"},{"id":"segment-685","startMs":858470,"endMs":858480,"text":"down a level you'll see that we have"},{"id":"segment-686","startMs":858480,"endMs":861110,"text":"down a level you'll see that we have\ncontent image with block or"},{"id":"segment-687","startMs":861110,"endMs":861120,"text":"content image with block or"},{"id":"segment-688","startMs":861120,"endMs":863870,"text":"content image with block or\ncontent with image block and now we've"},{"id":"segment-689","startMs":863870,"endMs":863880,"text":"content with image block and now we've"},{"id":"segment-690","startMs":863880,"endMs":865790,"text":"content with image block and now we've\nadded those two so again it's just"},{"id":"segment-691","startMs":865790,"endMs":865800,"text":"added those two so again it's just"},{"id":"segment-692","startMs":865800,"endMs":869470,"text":"added those two so again it's just\nliterally um the actual string and then"},{"id":"segment-693","startMs":869470,"endMs":869480,"text":"literally um the actual string and then"},{"id":"segment-694","startMs":869480,"endMs":872749,"text":"literally um the actual string and then\nthis version that is the uh actual"},{"id":"segment-695","startMs":872749,"endMs":872759,"text":"this version that is the uh actual"},{"id":"segment-696","startMs":872759,"endMs":876430,"text":"this version that is the uh actual\ncomponent itself so in theory that"},{"id":"segment-697","startMs":876430,"endMs":876440,"text":"component itself so in theory that"},{"id":"segment-698","startMs":876440,"endMs":878030,"text":"component itself so in theory that\nshould have just worked and we'll see if"},{"id":"segment-699","startMs":878030,"endMs":878040,"text":"should have just worked and we'll see if"},{"id":"segment-700","startMs":878040,"endMs":882389,"text":"should have just worked and we'll see if\nit has and there you go that is a full"},{"id":"segment-701","startMs":882389,"endMs":882399,"text":"it has and there you go that is a full"},{"id":"segment-702","startMs":882399,"endMs":884749,"text":"it has and there you go that is a full\nsanity block being built for a page"},{"id":"segment-703","startMs":884749,"endMs":884759,"text":"sanity block being built for a page"},{"id":"segment-704","startMs":884759,"endMs":886629,"text":"sanity block being built for a page\nbuilder from start to finish uh it took"},{"id":"segment-705","startMs":886629,"endMs":886639,"text":"builder from start to finish uh it took"},{"id":"segment-706","startMs":886639,"endMs":889030,"text":"builder from start to finish uh it took\nus less than 15 minutes which is great"},{"id":"segment-707","startMs":889030,"endMs":889040,"text":"us less than 15 minutes which is great"},{"id":"segment-708","startMs":889040,"endMs":890470,"text":"us less than 15 minutes which is great\num but this is a very very simple"},{"id":"segment-709","startMs":890470,"endMs":890480,"text":"um but this is a very very simple"},{"id":"segment-710","startMs":890480,"endMs":892509,"text":"um but this is a very very simple\nversion as your website scales this will"},{"id":"segment-711","startMs":892509,"endMs":892519,"text":"version as your website scales this will"},{"id":"segment-712","startMs":892519,"endMs":894150,"text":"version as your website scales this will\nscale with it and this will be very very"},{"id":"segment-713","startMs":894150,"endMs":894160,"text":"scale with it and this will be very very"},{"id":"segment-714","startMs":894160,"endMs":895949,"text":"scale with it and this will be very very\ngood for building these kind of websites"},{"id":"segment-715","startMs":895949,"endMs":895959,"text":"good for building these kind of websites"},{"id":"segment-716","startMs":895959,"endMs":898230,"text":"good for building these kind of websites\nbut this is the Baseline for building"},{"id":"segment-717","startMs":898230,"endMs":898240,"text":"but this is the Baseline for building"},{"id":"segment-718","startMs":898240,"endMs":899870,"text":"but this is the Baseline for building\nthese blocks and what you can"},{"id":"segment-719","startMs":899870,"endMs":899880,"text":"these blocks and what you can"},{"id":"segment-720","startMs":899880,"endMs":902829,"text":"these blocks and what you can\nessentially do with the project um yeah"},{"id":"segment-721","startMs":902829,"endMs":902839,"text":"essentially do with the project um yeah"},{"id":"segment-722","startMs":902839,"endMs":907480,"text":"essentially do with the project um yeah\nhave a great day take care bye-bye"}],"transcript":"Hey, how's it going? So I want to do this very quick video because a lot of people have been asking me how to get the most out of Turbo, and I want to basically get right into it, talk about how we actually build websites and our development flow, and show you all the different ways that you can actually use this. But from the very start, I want to talk about how this is actually structured, why it's structured that way, and just go through a few things.\n\nSo first of all, you'll notice that we have this apps. This apps is because it's a monorepo, and you can see that we have a pnpm file. And if you press command P and you go look for some packages, you'll notice there's a hell of a lot of different packages in here. There is this main one that basically sits at the very top level. Very easy pitfall to do, but don't do this: installing things on the root. You don't want to do this because you don't need to have many packages in the root's package.json. You can see that they have very, very few inside of here. And the same applies here. So when it comes to actually building the user interface of this and using things from things like Shad CN UI, which I definitely recommend using, they're going to go into the packages UI package.json. That's where it goes in. So you can see already we have Radix, React accordions, and all this kind of good stuff.\n\nAnd now with that being said, the majority of stuff you're probably going to install that's not related to Shad CN is going to be in package.json in the web folder. However, something that's kind of interesting about this: if you try installing Shad CN in the web folder, it'll automatically get extracted out into the UI part of the website, which is kind of cool. You have environmental examples inside of here, an environment file that gets generated when you first spin this up. But right now we're going to make sure we get started. So let's run prd. This is just the post install. So I'm using pnpm run. Make sure you're using pnpm. Let me get rid of that. Let's do that again.\n\nSo you should 100% use pnpm rather than npm because it's going to save you a whole bunch of data when you're actually using these tools, because we install a hell of a lot, you know, Next and Sanity in hundreds of projects. So yeah, here we go. Here's the first thing you'll probably see. And you can have this in dark mode, you can have this in light mode, all of this good stuff, or system. This is all just data that's taken from Faker and populated inside of here. So you can tweak all of this and change it however you want.\n\nBut realistically, what you want to be doing is building your first page builder block. Now today I'm only going to really focus on the page builder block side of things because that's kind of the most important. But ultimately we have this thing called page builder. You'll notice there's two files. One of them is the definitions inside of schema types. Always pay attention to this thing. You see where it says studio? So studio here, web here. The web and the general rule of thumb (although this is not always the perfect way of looking at it): most of the time .ts is going to be inside of the studio, so the Sanity Studio, and then the other times .tsx is going to be in the actual web side of the website, so the Next.js environment.\n\nI'll give you an example here. So let's go to page builder. Let's see how this is actually built. Okay, cool. So this is essentially an array. It's going through the array and it's mapping each block to each member inside of that. So let's hit page builder blocks and see how that works. Cool, this is how we handle our page builder blocks and how we essentially assert them. So let's go click one of these. Let's go see hero, and here is a hero block.\n\nNow one thing that we are going to do to improve Turbo start in the future is putting in some rules. I actually would recommend putting in these rules inside of Cursor. Sorry, not Sanity, inside of Cursor. So you can see if you go into, I believe it's rules inside of here, you can start creating project rules. We are going to include some project rules at a later date. But if you are trying to use as much as you can from today outside of Cursor, that's the way you do it.\n\nWith that being said, let's then move on to creating our first schema. And you can do a lot of the schema generation with AI, but I would highly recommend going through the Sanity learn. But for the time being, we're going to go for a brand new schema called example block. And all this is going to be is an image, a title, and a rich text, and I'll show you how that works.\n\nSo there is an extension that's quite useful called Sanity Snippets, I think. It just essentially allows you to put a Sanity schema in. So if I go (I've forgot the exact way that you do this now), essentially I'm going to go take it from another one because it's been too long since I've done this manually. These days I'm actually using AI a lot to be able to generate this stuff, which is pretty poor, but bear with me.\n\nExample block. Let's put this in. So let's go create a schema that uses a title (because we always use titles as a title; if you keep standardizing the fields, always keep that in the back of your mind), rich text and an image, and we're going to hit enter. And this is going to generate the example block. I am using Claude 3.5 thinking. It's good, basically as good as the regular one. I just thought I'd see if it gets it right first time on this. And I'm using the agent. You can do this with command K as well, but this is just a nice, quick, easy way to do it.\n\nAnd for most people that are watching this, I'm guessing a lot of developers these days are just actually blasting these things out with AI. I cannot tell you how important it is to not make a fool of yourself like myself where you try actually writing one of these things out manually and forgetting how you do it. So we'll see this. So create a new schema that uses this. So first mistake, and this is actually very helpful to use: instead of calling it example block, it's created a brand new block called content with image. So something to be aware of that AI does very often is it generates a hell of a lot of code, but it's very poor at removing that code. You can also see here: I'll get rid of this example block and we'll stick with what it's created, which is this content with image. You'll notice that we have this defined field. This is just Sanity and this is TypeScript, which is really helpful.\n\nSomething to know about the project as well: the whole project generates types for you. So as soon as we have included this within the index (and we will, we will also), let's see where this is getting pulled into. Yep, this is correct. So this is inside of the index. Let me double check that it's inside of the page builder. It will be, because that's where the blocks are coming from. So this is wonderful.\n\nNow the next thing we want to do is we want to run pnpm run type. So pnpm run type. And what this will do: you will forget that it's not actually included. You can actually set this up so you can do it from the root directory, but I haven't inside of Turbo, so we will make sure that we get that soon. Again, I'm making sure that we hit all of these errors intentionally to try and provide some education with all of this, because it actually is worth knowing. And you can see that we had 45 schemas created, 45 schema types, and 13 GraphQL queries.\n\nSo if I flip back very quickly, you will now notice that if I go ahead and I build an equivalent block (so content with image), I'm going to go ahead and find another block that exists on this. So hero.tsx. You'll notice that they are always named the same thing: hero.tsx, hero.ts. So let's go here, and you'll notice it's in the sections. And what we're going to do, we're going to do a brand new file and we're going to call it the same as what we have: content with image.tsx.\n\nOkay, now what we can do is we can go back to here, we can pop this in, and we can say: let's get content with image, let's pull both versions. So that version, this version, get rid of example block because we don't need it anymore. And say: I would like to create a basic block with content with image schema. And again, we can use other ones. So like one of the things that I would always recommend is very helpful is using another component to opinionated what this one's going to do. So can you use at hero.tsx to see how we handle images and rich text, etc.? So going to hit enter again, and you'll see this should hopefully populate this content with image. The one thing that might be interesting is whether it gets the type correct or not, because it's generated that type. But also the type generation file is absolutely massive. It looks like it did it correctly. Yep. You'll see that we now have this.\n\nNow the thing is, we don't have this left right. So can you see we have this image position? But did it include that? Do we have a left right in here? Oh, we do have a left right. Okay, cool, so that's fine. Let's see what it's complaining about here. Ah, this image asset. That's interesting. Let's see what it does. I'm really curious as to whether it will fix it or not. So we can have a quick look on here as to how the Sanity hero image asset worked. So, image. Let's have a quick look. Hero page builder type hero. Let's see. Let's move back and see what's going on. Asset image. Where's the problem here? Property asset, which is declared on... okay, so let's go check this out. Let's go check what this might be getting caused by. I have a feeling this is to do with the query. So let's go check the queries out. And you'll notice there is an image fragment on here. Let's see if there's one for... let's stop this. Okay, we'll accept what it's got so far. That's fine. And we will look at the hero block.\n\nSo if we go to hero block inside of here, I notice that there is an image fragment and a rich text fragment. Now this is the way that we handle GraphQL. So if we go one below, we were going to say content with image block. Let's take that for now. And we want that. That's actually exactly what we want. So let's just finish that one off. Perfect. And then let's take this content with image block and pop that into the page builder, wherever that is. Is it down here? Yep, perfect.\n\nNow if we pop back and we run this again (so let's run the pnpm run type), see if it breaks, and we'll go through if it breaks as well, because that'll be really helpful. This just means that everything that you're writing up is actually fully TypeScript. And you'll see: bada bing, bada boom, it just went green, which is great news. So that's worked, and it was all down to a couple different files: the query file with Sanity and making sure we're using these fragments.\n\nThe reason why these fragments are so useful is that at first it seems like a lot of fuss and a lot of hassle, but as the website scales and you have like 600, 700 pages, this is not a lot of hassle. What is a lot of hassle is trying to figure out why your queries are timing out because you're pulling so much data in one go. So I definitely recommend doing this. And as you can see, this is now all wired up.\n\nLet's go on to Arc and let's go into localhost 3333, which is the Sanity environment. And inside of here we should give it a couple seconds. Oh, here we go. Let's log in. I'm really hoping it doesn't come up with an error. Okay, cool. So let's go to structure. Let's go to pages. We can do this through the actual presentation, but for example, let's take this page and let's hit the plus. What is this? Get rid of that. And let's do content with image. So this was it. So we know that if this works, this is actually working. So write \"content with image\". Content with image title, rich text. Let's choose an image from whatever's in the environment. Oh, that one's not so good. Let's pick one from Unsplash. Let's go for this nice coffee-looking thing. Let's wait for that to download, and then we're going to hit publish. And this should be lovely. A little bit of rich text to complement the block. Okay, hit publish. Ignore the low battery. Okay, and what we're going to do: we can open this. So we can actually go back, pages, go into here, and open it this way. Opening presentation should open straight away, and we'll see if it's in there.\n\nOoh, component not found with block type content with image. Now let's find out how we fix that. So remember how we had this page builder here? The problem is that we have another page builder here that we forgot to put it in. So if we pop down a level, you'll see that we have content image with block, or content with image block. And now we've added those two. So again, it's just literally the actual string and then this version that is the actual component itself. So in theory that should have just worked, and we'll see if it has. And there you go. That is a full Sanity block being built for a page builder from start to finish. It took us less than 15 minutes, which is great. But this is a very, very simple version. As your website scales, this will scale with it, and this will be very, very good for building these kind of websites. But this is the baseline for building these blocks and what you can essentially do with the project.\n\nYeah, have a great day. Take care. Bye-bye.","transcriptOrigin":"Edited transcript from the original Roboto page","thumbnailUrl":"https://img.youtube.com/vi/CNPjWyVQeC0/maxresdefault.jpg","durationSeconds":906,"videoId":"CNPjWyVQeC0","publisherName":"Roboto Studio","faqs":[{"question":"What is Turbo Start?","answer":"Turbo Start is Roboto Studio's open-source Next.js + Sanity boilerplate, structured as a pnpm monorepo with separate apps for the Next.js website and the Sanity Studio. It's designed to give teams a working page builder, type generation, and a sensible starting structure on day one rather than wiring everything from scratch.","sourceUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"},{"question":"How is Turbo Start structured?","answer":"Turbo Start is a pnpm monorepo with two main apps, `studio` for Sanity and `web` for Next.js, plus a shared UI package. Schema files live as `.ts` inside the studio, and matching React components live as `.tsx` inside the web app. The root `package.json` stays deliberately small so dependencies belong to the workspace that uses them.","sourceUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"},{"question":"How do you add a new page builder block to Sanity in Turbo Start?","answer":"Create a schema definition in the studio app, register it inside the page builder array, run `pnpm run type` to regenerate the TypeScript types, then add a matching `.tsx` section component in the web app and wire it into the page builder block resolver. After that the editor can place the block from inside Sanity Studio.","sourceUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"},{"question":"How do you create a Sanity schema?","answer":"A Sanity schema is a `defineType` object that lists fields like title, rich text, and image. In Turbo Start the schema lives next to its sibling components, you generate types from it with `pnpm run type`, and you reference it from the page builder index so it shows up as a block option in the studio.","sourceUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"},{"question":"How does Sanity work with Next.js?","answer":"Sanity stores content and exposes it through GROQ queries; Next.js fetches that data and renders it server-side. In Turbo Start the two are split into a monorepo so you keep schema, type generation, and rendering in one repo while still deploying the studio and the website separately.","sourceUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"},{"question":"Should I use pnpm with Turbo Start?","answer":"Yes. Turbo Start expects pnpm, and that's the reason the workspaces and dependency hoisting line up correctly. Using npm or yarn will produce duplicated installs and inconsistent lockfiles, which gets painful fast across many Sanity and Next.js projects.","sourceUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"},{"question":"Why does Turbo Start use GROQ fragments for queries?","answer":"Fragments like `_image` and `_richText` keep blocks composable, so a hero block and a content-with-image block can share the same image query without duplicating fields. It feels overkill on a small site, but at 600 or 700 pages it's what stops your queries from timing out by over-fetching.","sourceUrl":"https://robotostudio.com/videos/getting-the-most-out-of-turbo-start"}],"path":"/videos/CNPjWyVQeC0/getting-the-most-out-of-turbo-start","indexable":false,"contentHash":"a539c93ecd7ab61ef5993f015812d123e86aa3e25b67d5d35403df0faf95311e","representations":{"html":"https://bestsanityagency.com/videos/CNPjWyVQeC0/getting-the-most-out-of-turbo-start","markdown":"https://bestsanityagency.com/videos/CNPjWyVQeC0/getting-the-most-out-of-turbo-start.md","json":"https://bestsanityagency.com/videos/CNPjWyVQeC0/getting-the-most-out-of-turbo-start.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/CNPjWyVQeC0/getting-the-most-out-of-turbo-start#page","url":"https://bestsanityagency.com/videos/CNPjWyVQeC0/getting-the-most-out-of-turbo-start","name":"Getting the most out of Turbo Start","publisher":{"@id":"https://robotostudio.com/#organization"},"mainEntity":{"@id":"https://www.youtube.com/watch?v=CNPjWyVQeC0"},"isPartOf":{"@id":"https://bestsanityagency.com/#website"}},{"@id":"https://www.youtube.com/watch?v=CNPjWyVQeC0","name":"Getting the most out of Turbo Start","url":"https://www.youtube.com/watch?v=CNPjWyVQeC0","datePublished":"2025-03-20T00:00:00.000Z","dateModified":"2026-08-11","inLanguage":"en","author":[{"@id":"https://robotostudio.com/blog/author/jono#person"}],"@type":"VideoObject","description":"Rough cut process of building page builder blocks within Turbo Start Sanity. Watch the schema, queries, and components come together in real time.","transcript":"Hey, how's it going? So I want to do this very quick video because a lot of people have been asking me how to get the most out of Turbo, and I want to basically get right into it, talk about how we actually build websites and our development flow, and show you all the different ways that you can actually use this. But from the very start, I want to talk about how this is actually structured, why it's structured that way, and just go through a few things.\n\nSo first of all, you'll notice that we have this apps. This apps is because it's a monorepo, and you can see that we have a pnpm file. And if you press command P and you go look for some packages, you'll notice there's a hell of a lot of different packages in here. There is this main one that basically sits at the very top level. Very easy pitfall to do, but don't do this: installing things on the root. You don't want to do this because you don't need to have many packages in the root's package.json. You can see that they have very, very few inside of here. And the same applies here. So when it comes to actually building the user interface of this and using things from things like Shad CN UI, which I definitely recommend using, they're going to go into the packages UI package.json. That's where it goes in. So you can see already we have Radix, React accordions, and all this kind of good stuff.\n\nAnd now with that being said, the majority of stuff you're probably going to install that's not related to Shad CN is going to be in package.json in the web folder. However, something that's kind of interesting about this: if you try installing Shad CN in the web folder, it'll automatically get extracted out into the UI part of the website, which is kind of cool. You have environmental examples inside of here, an environment file that gets generated when you first spin this up. But right now we're going to make sure we get started. So let's run prd. This is just the post install. So I'm using pnpm run. Make sure you're using pnpm. Let me get rid of that. Let's do that again.\n\nSo you should 100% use pnpm rather than npm because it's going to save you a whole bunch of data when you're actually using these tools, because we install a hell of a lot, you know, Next and Sanity in hundreds of projects. So yeah, here we go. Here's the first thing you'll probably see. And you can have this in dark mode, you can have this in light mode, all of this good stuff, or system. This is all just data that's taken from Faker and populated inside of here. So you can tweak all of this and change it however you want.\n\nBut realistically, what you want to be doing is building your first page builder block. Now today I'm only going to really focus on the page builder block side of things because that's kind of the most important. But ultimately we have this thing called page builder. You'll notice there's two files. One of them is the definitions inside of schema types. Always pay attention to this thing. You see where it says studio? So studio here, web here. The web and the general rule of thumb (although this is not always the perfect way of looking at it): most of the time .ts is going to be inside of the studio, so the Sanity Studio, and then the other times .tsx is going to be in the actual web side of the website, so the Next.js environment.\n\nI'll give you an example here. So let's go to page builder. Let's see how this is actually built. Okay, cool. So this is essentially an array. It's going through the array and it's mapping each block to each member inside of that. So let's hit page builder blocks and see how that works. Cool, this is how we handle our page builder blocks and how we essentially assert them. So let's go click one of these. Let's go see hero, and here is a hero block.\n\nNow one thing that we are going to do to improve Turbo start in the future is putting in some rules. I actually would recommend putting in these rules inside of Cursor. Sorry, not Sanity, inside of Cursor. So you can see if you go into, I believe it's rules inside of here, you can start creating project rules. We are going to include some project rules at a later date. But if you are trying to use as much as you can from today outside of Cursor, that's the way you do it.\n\nWith that being said, let's then move on to creating our first schema. And you can do a lot of the schema generation with AI, but I would highly recommend going through the Sanity learn. But for the time being, we're going to go for a brand new schema called example block. And all this is going to be is an image, a title, and a rich text, and I'll show you how that works.\n\nSo there is an extension that's quite useful called Sanity Snippets, I think. It just essentially allows you to put a Sanity schema in. So if I go (I've forgot the exact way that you do this now), essentially I'm going to go take it from another one because it's been too long since I've done this manually. These days I'm actually using AI a lot to be able to generate this stuff, which is pretty poor, but bear with me.\n\nExample block. Let's put this in. So let's go create a schema that uses a title (because we always use titles as a title; if you keep standardizing the fields, always keep that in the back of your mind), rich text and an image, and we're going to hit enter. And this is going to generate the example block. I am using Claude 3.5 thinking. It's good, basically as good as the regular one. I just thought I'd see if it gets it right first time on this. And I'm using the agent. You can do this with command K as well, but this is just a nice, quick, easy way to do it.\n\nAnd for most people that are watching this, I'm guessing a lot of developers these days are just actually blasting these things out with AI. I cannot tell you how important it is to not make a fool of yourself like myself where you try actually writing one of these things out manually and forgetting how you do it. So we'll see this. So create a new schema that uses this. So first mistake, and this is actually very helpful to use: instead of calling it example block, it's created a brand new block called content with image. So something to be aware of that AI does very often is it generates a hell of a lot of code, but it's very poor at removing that code. You can also see here: I'll get rid of this example block and we'll stick with what it's created, which is this content with image. You'll notice that we have this defined field. This is just Sanity and this is TypeScript, which is really helpful.\n\nSomething to know about the project as well: the whole project generates types for you. So as soon as we have included this within the index (and we will, we will also), let's see where this is getting pulled into. Yep, this is correct. So this is inside of the index. Let me double check that it's inside of the page builder. It will be, because that's where the blocks are coming from. So this is wonderful.\n\nNow the next thing we want to do is we want to run pnpm run type. So pnpm run type. And what this will do: you will forget that it's not actually included. You can actually set this up so you can do it from the root directory, but I haven't inside of Turbo, so we will make sure that we get that soon. Again, I'm making sure that we hit all of these errors intentionally to try and provide some education with all of this, because it actually is worth knowing. And you can see that we had 45 schemas created, 45 schema types, and 13 GraphQL queries.\n\nSo if I flip back very quickly, you will now notice that if I go ahead and I build an equivalent block (so content with image), I'm going to go ahead and find another block that exists on this. So hero.tsx. You'll notice that they are always named the same thing: hero.tsx, hero.ts. So let's go here, and you'll notice it's in the sections. And what we're going to do, we're going to do a brand new file and we're going to call it the same as what we have: content with image.tsx.\n\nOkay, now what we can do is we can go back to here, we can pop this in, and we can say: let's get content with image, let's pull both versions. So that version, this version, get rid of example block because we don't need it anymore. And say: I would like to create a basic block with content with image schema. And again, we can use other ones. So like one of the things that I would always recommend is very helpful is using another component to opinionated what this one's going to do. So can you use at hero.tsx to see how we handle images and rich text, etc.? So going to hit enter again, and you'll see this should hopefully populate this content with image. The one thing that might be interesting is whether it gets the type correct or not, because it's generated that type. But also the type generation file is absolutely massive. It looks like it did it correctly. Yep. You'll see that we now have this.\n\nNow the thing is, we don't have this left right. So can you see we have this image position? But did it include that? Do we have a left right in here? Oh, we do have a left right. Okay, cool, so that's fine. Let's see what it's complaining about here. Ah, this image asset. That's interesting. Let's see what it does. I'm really curious as to whether it will fix it or not. So we can have a quick look on here as to how the Sanity hero image asset worked. So, image. Let's have a quick look. Hero page builder type hero. Let's see. Let's move back and see what's going on. Asset image. Where's the problem here? Property asset, which is declared on... okay, so let's go check this out. Let's go check what this might be getting caused by. I have a feeling this is to do with the query. So let's go check the queries out. And you'll notice there is an image fragment on here. Let's see if there's one for... let's stop this. Okay, we'll accept what it's got so far. That's fine. And we will look at the hero block.\n\nSo if we go to hero block inside of here, I notice that there is an image fragment and a rich text fragment. Now this is the way that we handle GraphQL. So if we go one below, we were going to say content with image block. Let's take that for now. And we want that. That's actually exactly what we want. So let's just finish that one off. Perfect. And then let's take this content with image block and pop that into the page builder, wherever that is. Is it down here? Yep, perfect.\n\nNow if we pop back and we run this again (so let's run the pnpm run type), see if it breaks, and we'll go through if it breaks as well, because that'll be really helpful. This just means that everything that you're writing up is actually fully TypeScript. And you'll see: bada bing, bada boom, it just went green, which is great news. So that's worked, and it was all down to a couple different files: the query file with Sanity and making sure we're using these fragments.\n\nThe reason why these fragments are so useful is that at first it seems like a lot of fuss and a lot of hassle, but as the website scales and you have like 600, 700 pages, this is not a lot of hassle. What is a lot of hassle is trying to figure out why your queries are timing out because you're pulling so much data in one go. So I definitely recommend doing this. And as you can see, this is now all wired up.\n\nLet's go on to Arc and let's go into localhost 3333, which is the Sanity environment. And inside of here we should give it a couple seconds. Oh, here we go. Let's log in. I'm really hoping it doesn't come up with an error. Okay, cool. So let's go to structure. Let's go to pages. We can do this through the actual presentation, but for example, let's take this page and let's hit the plus. What is this? Get rid of that. And let's do content with image. So this was it. So we know that if this works, this is actually working. So write \"content with image\". Content with image title, rich text. Let's choose an image from whatever's in the environment. Oh, that one's not so good. Let's pick one from Unsplash. Let's go for this nice coffee-looking thing. Let's wait for that to download, and then we're going to hit publish. And this should be lovely. A little bit of rich text to complement the block. Okay, hit publish. Ignore the low battery. Okay, and what we're going to do: we can open this. So we can actually go back, pages, go into here, and open it this way. Opening presentation should open straight away, and we'll see if it's in there.\n\nOoh, component not found with block type content with image. Now let's find out how we fix that. So remember how we had this page builder here? The problem is that we have another page builder here that we forgot to put it in. So if we pop down a level, you'll see that we have content image with block, or content with image block. And now we've added those two. So again, it's just literally the actual string and then this version that is the actual component itself. So in theory that should have just worked, and we'll see if it has. And there you go. That is a full Sanity block being built for a page builder from start to finish. It took us less than 15 minutes, which is great. But this is a very, very simple version. As your website scales, this will scale with it, and this will be very, very good for building these kind of websites. But this is the baseline for building these blocks and what you can essentially do with the project.\n\nYeah, have a great day. Take care. Bye-bye.","thumbnailUrl":"https://img.youtube.com/vi/CNPjWyVQeC0/maxresdefault.jpg","embedUrl":"https://www.youtube.com/embed/CNPjWyVQeC0","uploadDate":"2025-03-20T00:00:00.000Z","duration":"PT906S","publisher":{"@type":"Organization","name":"Roboto Studio"},"caption":{"@type":"MediaObject","contentUrl":"https://bestsanityagency.com/videos/CNPjWyVQeC0/getting-the-most-out-of-turbo-start.vtt","encodingFormat":"text/vtt"}}]}}