[{"data":1,"prerenderedAt":108},["ShallowReactive",2],{"blog-post-booking-calendar-nextjs":3},[4,16,21,27,38,65,73,82,89],{"component":5,"data":6},"BlogPostHeader",{"slug":7,"kind":8,"title":9,"publishedAt":10,"duration":11,"author":12},"booking-calendar-nextjs","video","[Booking calendar in Next.js from scratch]","[20 Sep 2026]","24:18",{"name":13,"role":14,"initials":15},"Michael","Fullstack developer","SW",{"component":17,"data":18},"BlogPostCover",{"cover":19},{"type":8,"title":20,"duration":11},"\u003CCalendar \u002F>",{"component":22,"data":23},"BlogPostSource",{"kind":8,"source":24},{"name":25,"url":26},"YouTube","https:\u002F\u002Fwww.youtube.com\u002F",{"component":28,"data":29},"BlogPostChapter",{"id":30,"name":31,"hidden":32,"blocks":33},"intro","About the video",true,[34],{"component":35,"data":36},"BlogPostText",{"text":37},"[What the viewer will build and who the video is for.]",{"component":28,"data":39},{"id":40,"name":41,"blocks":42},"chapters","Chapters",[43],{"component":44,"data":45},"BlogPostTable",{"columns":46,"rows":49},[47,48],"Time","Chapter",[50,53,56,59,62],[51,52],"00:00","[Intro]",[54,55],"02:14","[Data model]",[57,58],"08:40","[Calendar UI]",[60,61],"15:05","[Availability API]",[63,64],"21:30","[Deploy]",{"component":28,"data":66},{"id":67,"name":68,"blocks":69},"summary","Summary",[70],{"component":35,"data":71},{"text":72},"[The key points of the video as text.]",{"component":28,"data":74},{"id":75,"name":76,"blocks":77},"code","Code from the video",[78],{"component":79,"data":80},"BlogPostCode",{"code":81},"\u002F\u002F [snippet from the video]\nexport async function getSlots(date: string) {\n  \u002F\u002F ...\n}",{"component":83,"data":84},"BlogPostTags",{"tags":85},[86,87,88],"Next.js","Booking","Tutorial",{"component":90,"data":91},"BlogPostRelated",{"items":92},[93,99],{"slug":94,"kind":8,"title":95,"cover":96},"lighthouse-100","[Lighthouse 100 in 30 minutes]",{"type":8,"title":97,"duration":98},"100 \u002F 100","31:05",{"slug":100,"kind":101,"title":102,"cover":103},"cwv-watch","tool","[cwv-watch]",{"type":104,"title":105,"command":106,"output":107},"terminal","github.com\u002F[user]\u002Fcwv-watch","uses: [user]\u002Fcwv-watch@v1","✓ LCP 1.8s · CLS 0.02 · INP 90ms",1792947429218]