<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Syllabind — Not Another Bootcamp: Syllabi]]></title><description><![CDATA[Syllabi will be posted here.]]></description><link>https://laijingchu.substack.com/s/syllabi</link><image><url>https://substackcdn.com/image/fetch/$s_!92Nb!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd881d9ad-0193-4f63-833d-fa19138b7d5d_192x192.png</url><title>Syllabind — Not Another Bootcamp: Syllabi</title><link>https://laijingchu.substack.com/s/syllabi</link></image><generator>Substack</generator><lastBuildDate>Mon, 11 May 2026 20:15:08 GMT</lastBuildDate><atom:link href="https://laijingchu.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Lai Jing Chu]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[laijingchu@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[laijingchu@substack.com]]></itunes:email><itunes:name><![CDATA[Lai Jing Chu]]></itunes:name></itunes:owner><itunes:author><![CDATA[Lai Jing Chu]]></itunes:author><googleplay:owner><![CDATA[laijingchu@substack.com]]></googleplay:owner><googleplay:email><![CDATA[laijingchu@substack.com]]></googleplay:email><googleplay:author><![CDATA[Lai Jing Chu]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[📙 Frontend Code Literacy for Designers in the AI era — A 6-week syllabus]]></title><description><![CDATA[Build code confidence and regain creative control over vibe&#8209;coding tools.]]></description><link>https://laijingchu.substack.com/p/frontend-code-literacy-for-designers</link><guid isPermaLink="false">https://laijingchu.substack.com/p/frontend-code-literacy-for-designers</guid><dc:creator><![CDATA[Lai Jing Chu]]></dc:creator><pubDate>Tue, 21 Apr 2026 04:18:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b0ef273f-acd2-4287-b7ea-b7840ed68af7_2400x1260.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>&#10024; It&#8217;s a lot more fun to learn something new together. I&#8217;m running a 6&#8209;week, book&#8209;club style workshop that goes through this syllabus week by week, starting May 7, 2026. We&#8217;ll discuss the readings, walk through the resources, and share our projects in a small group setting (capped at 10 designers). If you&#8217;d like to join the first cohort, <a href="https://docs.google.com/forms/d/e/1FAIpQLSd0-KQA4Mw7bNNR2mSsgXQr7Q94XScKYd20EJxUrqzZ8Q0sqw/viewform">register your interest here</a>.</em></p><div><hr></div><p>Hi there, I&#8217;m Lai-Jing. I&#8217;m a digital product designer and product manager, a design educator and mentor, a career pivoter from architecture, and a compulsive bookmark collector&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0B6g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0B6g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 424w, https://substackcdn.com/image/fetch/$s_!0B6g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 848w, https://substackcdn.com/image/fetch/$s_!0B6g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 1272w, https://substackcdn.com/image/fetch/$s_!0B6g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0B6g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png" width="1166" height="705" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1166,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:406824,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://laijingchu.substack.com/i/194868304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0B6g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 424w, https://substackcdn.com/image/fetch/$s_!0B6g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 848w, https://substackcdn.com/image/fetch/$s_!0B6g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 1272w, https://substackcdn.com/image/fetch/$s_!0B6g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd74f8a9-49a3-415c-b9c9-87d94c124553_1166x705.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Me starting to mind-map my resources</figcaption></figure></div><p>Are you perpetually drowning in an ocean of fragmented content pieces?</p><p>Trying to learn from AI and tutorials&#8212;yet still feeling like you don&#8217;t have real command over your knowledge?</p><p>Then Syllabind is for you.</p><p>I&#8217;m connecting my best resources into focused, manageable syllabi&#8212;with practical exercises that pull you out of tutorial hell, help you stay sharp, and sort signal from noise. Everything here is based on paths I&#8217;ve already walked myself.</p><p><em>This guide is a 6&#8209;week syllabus for creatives to build code literacy and regain creative control over vibe&#8209;coding tools.</em></p><div><hr></div><p style="text-align: center;">Subscribe to get updates on more syllabi like this.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://laijingchu.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This is a reader-supported publication.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l8ds!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l8ds!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 424w, https://substackcdn.com/image/fetch/$s_!l8ds!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 848w, https://substackcdn.com/image/fetch/$s_!l8ds!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!l8ds!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l8ds!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:489527,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://laijingchu.substack.com/i/194868304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!l8ds!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 424w, https://substackcdn.com/image/fetch/$s_!l8ds!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 848w, https://substackcdn.com/image/fetch/$s_!l8ds!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!l8ds!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84796d50-2320-4126-b942-76335340b1c3_2400x1260.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Syllabus cover image</figcaption></figure></div><p>It is 2026. Every day, a new &#8220;vibe coding&#8221; or &#8220;vibe designing&#8221; product or feature seems to ship. And while AI can impress us with decent designs from a single prompt, we still don&#8217;t have reliable, fine-grained control over the result. Somehow, even a simple change (like tweaking spacing) becomes difficult because the AI just &#8220;doesn&#8217;t get it,&#8221; and more opinionated creative expression feels even harder to achieve.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SsP5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SsP5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 424w, https://substackcdn.com/image/fetch/$s_!SsP5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 848w, https://substackcdn.com/image/fetch/$s_!SsP5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 1272w, https://substackcdn.com/image/fetch/$s_!SsP5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SsP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp" width="1226" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1226,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SsP5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 424w, https://substackcdn.com/image/fetch/$s_!SsP5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 848w, https://substackcdn.com/image/fetch/$s_!SsP5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 1272w, https://substackcdn.com/image/fetch/$s_!SsP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b3491a-e86a-4744-95b3-216f891de05c_1226x835.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Susanna Nevalainen <a href="https://contra.com/p/Xsg727bX-moxy-3-d-mockup-studio-less-flat-more-fab?r=lai_jing_chu_i5adi8jv">writes about</a> how her award-winning Figma Make prototype required understanding of code and 3D libraries to come true</figcaption></figure></div><p>When prompting fails, code literacy becomes your lever for creative control. Understanding what&#8217;s possible (and what&#8217;s fragile) in today&#8217;s programming languages, frameworks, and libraries helps you course-correct when things go wrong&#8212;and push further when creativity is warranted. Let AI handle settings and authentication screens while you focus on the attention-grabbing moments and the highest-value capabilities that actually reach users.</p><p>Let AI be your best friend that makes your dreams come true, not the enemy that steals your job. With AI, we can go far by learning the right programming concepts without memorizing syntax. This binder uses that shift to our (designers&#8217;) advantage: you&#8217;ll move quickly through the main ideas, then collaborate with an LLM to realize your creative vision&#8212;with the vocabulary to describe constraints, evaluate output, and debug with confidence.</p><h3>Learning outcomes</h3><p>By the end of this binder, you will be able to:</p><ul><li><p><strong>Steer AI-generated frontend work</strong> by writing clear prompts, reading the code it produces, finding the right files, and making targeted edits.</p></li><li><p><strong>Establish a &#8220;design-to-code-and-back loop&#8221;</strong>: translate a UI spec into implementation, and keep the spec in sync as the code evolves (so design intent doesn&#8217;t drift).</p></li><li><p><strong>Debug with AI</strong> using a repeatable workflow (reproduce &#8594; inspect &#8594; isolate &#8594; fix &#8594; verify) so you know what to do next.</p></li><li><p><strong>Use Git + GitHub for version control</strong>: understand the core terminology and concepts so you can direct AI tools to commit, push, and manage changes safely.</p></li><li><p><strong>Ship a small interactive website</strong> (deployed or runnable locally) you can share publicly or with potential employers, recruiters, or clients.</p></li></ul><h3>Target audience</h3><p>This is not a bootcamp or &#8216;become an engineer&#8217; track; it&#8217;s code literacy for creative control.</p><ul><li><p><strong>Beginner designers</strong> who want a quick, modern ramp into web technologies so they can build (with AI) instead of waiting for handoff</p></li><li><p><strong>Experienced designers</strong> who have strong product instincts and taste, but want code literacy to direct AI tools, debug confidently, and <strong>raise the creative ceiling</strong>&#8212;shipping bigger visions beyond &#8220;good enough&#8221; AI output</p></li></ul><h3>Expected time commitment</h3><ul><li><p>10 hours a week (4&#8211;5 hours watching/reading, 4&#8211;6 hours doing exercises).</p><div><hr></div></li></ul><h2 style="text-align: center;">&#128105;&#127995;&#8205;&#128187; Don&#8217;t want to learn alone? &#128104;&#127997;&#8205;&#128187;</h2><p style="text-align: center;">Apply to join a 6&#8209;week, live Zoom seminar starting May 7, 2026, with a small cohort of fewer than 10 designers. Each week, we&#8217;ll tackle the readings together and share in&#8209;progress work for feedback and accountability.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://docs.google.com/forms/d/e/1FAIpQLSd0-KQA4Mw7bNNR2mSsgXQr7Q94XScKYd20EJxUrqzZ8Q0sqw/viewform&quot;,&quot;text&quot;:&quot;Register your interest&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://docs.google.com/forms/d/e/1FAIpQLSd0-KQA4Mw7bNNR2mSsgXQr7Q94XScKYd20EJxUrqzZ8Q0sqw/viewform"><span>Register your interest</span></a></p><div><hr></div><h3>Prerequisite</h3><p>Assumes intermediate-to-advanced knowledge in Figma design and prototyping, including: autolayout, constraints, absolute/relative positioning, components, variables.</p><h3>At a glance</h3><p>Week 1 &#8211; HTML/CSS mental models<br>Week 2 &#8211; JavaScript for interactions<br>Week 3 &#8211; Libraries &amp; docs mindset (GSAP)<br>Week 4 &#8211; Out&#8209;of&#8209;the&#8209;box vibe&#8209;coding stack (React/Next/Tailwind/Shadcn)<br>Week 5 &#8211; AI&#8209;assisted workflows (Cursor, Claude Code, Figma MCP)<br>Week 6 &#8211; Git/GitHub + shipping</p><h3>Out of scope</h3><ul><li><p>Mobile apps</p></li><li><p>Code syntax</p></li><li><p>Backend development</p></li><li><p>Design explorations using vibe coding tools</p></li></ul><div><hr></div><h2><strong>Week 1: Let&#8217;s start at the very beginning &#8212;HTML/CSS</strong></h2><p>This week, we start by covering the latest discourse about designers&#8217; relationship to code. Is coding knowledge still relevant when everyone seems increasingly reliant on vibe-coding tools? And how might our approach to learning code in the post-AI era differ from pre-AI?</p><p>Next, we will get into the very basics of &#8220;frontend&#8221; web development&#8212;i.e., how we control and define how visual and interactive elements, such as layouts, buttons, and text, appear in a browser.[1]</p><p>How modern frontend is usually structured (high level):</p><ul><li><p><strong>HTML</strong> = structure (what is on the page)</p></li><li><p><strong>CSS</strong> = presentation (how it looks)</p></li><li><p><strong>JavaScript / TypeScript</strong> = behavior + state + data flow (how it <em>acts</em>)</p></li></ul><p>This week, we will only cover the basics of HTML and CSS: the structure and styling layer that defines what&#8217;s on the page and how it looks. These building blocks are often used for &#8220;static&#8221; pages, but they can still be interactive (hover states, transitions, responsive layouts) even before we introduce JavaScript next week.</p><p><em>[1] As opposed to &#8220;backend,&#8221; which is everything that runs on servers (not in the browser) to store data, apply business rules, handle authentication, and send the right information back to the frontend via APIs (which would be the topic of a different binder!).</em></p><h3>Sources</h3><p>Total reading time: 4 hours 10 minutes</p><h4>[Skim] <a href="https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/">What Is Code? If You Don&#8217;t Know, You Need to Read This</a> [30 mins]</h4><p>In 2015, Paul Ford opened his landmark essay &#8220;What Is Code?&#8221; with a warning: <em>&#8220;The world belongs to people who code. Those who don&#8217;t understand will be left behind.&#8221;</em> In 2026, that world has tilted even further. AI coding assistants and &#8220;vibe coding&#8221; tools&#8212;from Claude Code, Cursor, Windsurf, Lovable, Replit, v0 and more&#8212;let anyone turn natural&#8209;language ideas into working software, collapsing the old wall between designer and developer. Yet the core dynamics Ford described haven&#8217;t changed: software still structures products, organizations, and power, and those who can think clearly about code shape what gets built.</p><p>This 38000-word article is widely recognized as a landmark for understanding programming. It lives on a beautifully designed, interactive multimedia website, and its code is open-sourced on the linked GitHub repo.</p><h4>[Must] <a href="https://www.youtube.com/watch?v=7TsNjPWHToU">Designers Who Build: Learning to Code in the Age of AI | Jinyu Li | Layers 2025</a> [25 mins]</h4><div id="youtube2-7TsNjPWHToU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;7TsNjPWHToU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/7TsNjPWHToU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>This is a talk by Jinyu Li, a senior product designer and street dancer in Berlin, about designers becoming end&#8209;to&#8209;end builders in an era of AI dev tools. She contrasts learning to code via manual ChatGPT workflows with newer &#8220;vibe coding&#8221; tools like Cursor, then examines their risks through two case studies: a Figma MCP design system that breaks from a single color-token change, and the Tea app, a vibe&#8209;coded dating reputation app that leaked 1M users&#8217; data. The talk emphasizes fundamentals, critical judgment, and solving real problems over AI hype.</p><h4>[Skim] <a href="https://lissaexplains.com/html.shtml">Lissa Explains it All -- HTML Help and Tutorials for Kids</a> [30 mins]</h4><p>A kid&#8217;s guide to HTML (1997), written by Lissa when she was 11 &#8212; and I was about the same age as her. Much of the site is dated, but the basic anatomy of a web page (HTML / head / body) is still explained more clearly here than almost anywhere else&#8212;and it&#8217;s where I started learning HTML and CSS.</p><h4>[Must] <a href="https://university.webflow.com/course-lesson/build-structure-intro-HTML-CSS">Intro to HTML &amp; CSS - Webflow University Courses</a> [5 mins]</h4><p>A pretty good overview of how the modern browser works and how to inspect client-side code of any website to get an understanding of page structure and styling.</p><div id="youtube2-EFHoH15i4Zg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;EFHoH15i4Zg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/EFHoH15i4Zg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>(text: <a href="https://university.webflow.com/course-lesson/build-structure-background-preview">https://university.webflow.com/course-lesson/build-structure-background-preview</a>)</p><h4>[Must] <a href="https://www.superhi.com/catalog/plan-design-and-code-your-first-website/code">Code &#8226; Plan, Design + Code Your First Website</a> (Lessons 3-22) [1h 45mins]</h4><p>SuperHi teaches designers how to code. Rik narrates in a clear &#8220;over-the-shoulder&#8221; style that helps you internalize how code is built. Most content is paid, but this course is free.</p><p>I&#8217;ll include free SuperHi videos throughout the binder. Stay high level, skim if you want, and feel free to watch at 2&#215; speed.</p><h4>[Skim] <a href="https://easyhtmlcss.com/">Welcome! | Cheshire&#8217;s Easy HTML/CSS Tutorial</a> [15mins]</h4><p>A <a href="https://www.reddit.com/r/learnprogramming/comments/15twgiz/i_wrote_an_easy_htmlcss_tutorial_for_absolute/">Reddit user cheryllium</a> created this beginners&#8217; HTML/CSS guide to get people comfortable with HTML/CSS. You should be able to get through this quickly to get a high-level concept.</p><h4>[Must] <a href="https://blog.devgenius.io/why-you-should-stop-watching-tutorials-and-reading-docs-escaping-tutorial-purgatory-2c6b438b418">Why You Should Stop Watching Tutorials and Reading Docs + Escaping tutorial purgatory&#8230;</a> [10 mins]</h4><p>Hear from a developer who shares the mindset shift needed to avoid getting stuck in tutorial purgatory, along with personal tips for mastering a new technical skill.</p><h4>[Inspiration] <a href="https://codepen.io/?cursor=ZD0xJm89MCZwPTEmdj05NTQyMg==">CodePen</a> [30 mins]</h4><p>CodePen is a browser-based playground for writing and sharing small HTML, CSS, and JavaScript experiments and seeing results instantly. Click around to explore the site, and observe how the three layers work together.</p><h3>Exercise</h3><h4>Create a typographic poster</h4><p>This week&#8217;s goal is to get comfortable with HTML and CSS on <a href="https://codepen.io/pen/">CodePen</a>.</p><p>There&#8217;s a lot you can do with just HTML and CSS! San Francisco-based designer Do-Hee Kim challenged herself to create <a href="https://100daysoffonts.com/">100 Days of Fonts</a> to show that even with free Google Fonts, you can create premium-looking web design.</p><p>Inspired by her project, use this as the starting point for your first coding experiment.</p><ol><li><p>Go to <a href="https://codepen.io/pen/">https://codepen.io/pen/</a>. Create an account if you want to save your work.</p></li><li><p>In the HTML box, write something in plain text, without code. If you can&#8217;t think of anything, try writing your name and your mood, like this: &#8220;Hi, my name is __. Today I&#8217;m feeling [Calm/Ecstatic/Powerful/Sad/Angry].</p></li><li><p>Challenge yourself to style it with HTML and CSS &#8212; change the font, add line breaks, and add a splash of color.</p></li></ol><p>If you need help, refer to Cheshire&#8217;s Easy HTML/CSS Tutorial from this week&#8217;s resources!</p><div><hr></div><h2><strong>Week 2: JavaScript for designers</strong></h2><p>Total reading time: 3 hours 35 minutes</p><p>JavaScript is the language that runs <em>inside the browser</em> and turns static HTML/CSS into an interactive product. It lets you:</p><ul><li><p><strong>Respond to user input</strong> (clicks, typing, scrolling)</p></li><li><p><strong>Update the UI over time</strong> (animations, transitions, showing and hiding content)</p></li><li><p><strong>Manage UI state</strong> (loading, error, empty, success)</p></li><li><p><strong>Talk to the network</strong> (fetch data from APIs, save forms) &#8592; <em>out of scope for this binder</em></p></li></ul><p>JavaScript is a deep well, but let&#8217;s try to keep it simple and relevant to frontend and design. In this binder we focus on a high-level idea: using the DOM (the browser&#8217;s &#8220;map&#8221; of a page) to create interactions, without going deep into syntax. This will help you review AI-generated code, describe changes clearly, and debug faster.</p><h3>Sources</h3><h4>[Must] <a href="https://www.youtube.com/watch?v=NO5kUNxGIu0">The JavaScript DOM explained in 5 minutes! &#127795;</a> [5 mins]</h4><p>Although the narration sounds robotic, this video is incredibly helpful for visualizing the DOM because it keeps the DOM tree on screen the entire time. This visual reference will be useful as we use it as an anchor throughout the week.</p><div id="youtube2-NO5kUNxGIu0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;NO5kUNxGIu0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/NO5kUNxGIu0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>[Must] <a href="https://www.youtube.com/watch?v=KShnPYN-voI">The DOM in 4 minutes</a> [5 mins]</h4><div id="youtube2-KShnPYN-voI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;KShnPYN-voI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/KShnPYN-voI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The video is actually 3.5mins &#8212; and it will set your mental model straight.</p><h4>[Must] <a href="https://www.theodinproject.com/lessons/foundations-dom-manipulation-and-events">DOM Manipulation and Events | The Odin Project</a> [45 mins]</h4><p>The Odin Project is a free, open-source, volunteer-run curriculum. It is text-based, but easy to follow. In the Assignment section, item 1 goes deeper on events without much overwhelm. Use it for a broader overview, not to master every detail.</p><h4>[Must] <a href="https://www.youtube.com/watch?v=0cZDa5nVuAs&amp;list=PLaC4Y-Cy7tlja64Y1rNV1qrGfOvIFcFnb&amp;index=15">How to make a Javascript accordion</a> [15 mins]</h4><div id="youtube2-0cZDa5nVuAs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;0cZDa5nVuAs&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/0cZDa5nVuAs?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Now, let&#8217;s put all that theoretical knowledge into practice. In this video, Isabel, an instructor at SuperHi, talks through how to build an accordion element from scratch with HTML, CSS, and Javascript. Do not focus too much on the exact syntax. Instead, pay attention to how the three layers reference each other and how the interaction is expressed in code.</p><h4>[Must] <a href="https://www.youtube.com/playlist?list=PLaC4Y-Cy7tlja64Y1rNV1qrGfOvIFcFnb">Coding Tutorials</a> [2 hours]</h4><p>Checkout SuperHi! youtube playlist and watch 2-3 more examples that pique your interest and to spark creative inspiration.</p><h4>[Must] <a href="https://youtu.be/5fhcklZe-qE?si=X-GyiIpmbzV1hpj2">Everything You Need to Know About Coding with AI // NOT vibe coding</a> [15 mins]</h4><div id="youtube2-5fhcklZe-qE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5fhcklZe-qE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/5fhcklZe-qE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>This video explains the difference between &#8220;vibe-coding&#8221; (coding based purely on &#8220;vibes&#8221;) and AI-assisted coding with precision, which is the approach we aim for in this binder.</p><h3>Exercise</h3><h4>Add JavaScript interactions to your typographic poster</h4><p>This week&#8217;s goal is to add interactive JavaScript to the mini project you built on <a href="https://codepen.io/pen/">CodePen</a> in Week 1. You do not need to write the JavaScript yourself; instead, use AI to help. The key is to describe what you want clearly so you can achieve the desired effect efficiently.</p><ol><li><p>Open your project and think of an interaction you want for your typographic poster. Keep it playful! For example: make letters shake on hover, use the left and right arrow keys to change the composition, or reveal the text line by line on scroll.</p></li><li><p>Describe the interaction in this format: &#8220;When the user does X, Y happens to Z. It resets when A happens.&#8221; Here, &#8220;X&#8221; could be a mouse event, page scroll, or key up/down; &#8220;Y&#8221; could be an element changing color, rotating, or scaling; and &#8220;Z&#8221; is the target element (use an existing CSS selector if you already have one; if not, add a simple class like <code>.title</code> so JS can reliably find it). &#8220;A&#8221; is what returns it to the original state. Keep it simple and use your knowledge of JavaScript&#8217;s capabilities as a guide.</p></li><li><p>Paste the HTML and CSS code into an LLM chatbot of your choice (eg. ChatGPT, Claude, Gemini), along with your JavaScript instructions.</p></li><li><p>Review the output and fine-tune it if needed. Ask the AI to explain it in 3 bullets as a sanity check: (1) what HTML element it targets, (2) what event it listens to, and (3) what CSS changes it applies. If anything does not match your expectations, correct it. This is a helpful debugging technique.</p></li><li><p>Paste the code back into your CodePen project.</p></li></ol><p>If you need help, refer to Cheshire&#8217;s Easy HTML/CSS Tutorial from last week&#8217;s resources!</p><div><hr></div><h2 style="text-align: center;">&#127912; It&#8217;ll be fun to html together &#127929;</h2><p style="text-align: center;">Apply to join a 6&#8209;week, live Zoom seminar starting May 7, 2026, with a small cohort of fewer than 10 designers. Each week, we&#8217;ll tackle the readings together and share in&#8209;progress work for feedback and accountability.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://docs.google.com/forms/d/e/1FAIpQLSd0-KQA4Mw7bNNR2mSsgXQr7Q94XScKYd20EJxUrqzZ8Q0sqw/viewform&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://docs.google.com/forms/d/e/1FAIpQLSd0-KQA4Mw7bNNR2mSsgXQr7Q94XScKYd20EJxUrqzZ8Q0sqw/viewform"><span>Register now</span></a></p><p style="text-align: center;"></p><div><hr></div><h2><strong>Week 3: Working with coding libraries &#8212; the docs mindset</strong></h2><p>Total reading time: 3 hours 15 minutes</p><p>A library is a reusable collection of prewritten code (functions, components, styles, or utilities) that you import into a project to add capabilities without building everything from scratch. Some frontend libraries make it much easier to create impressive visuals and interactions, such as smooth animations, scroll-driven effects, and 3D or canvas-based graphics. For example:</p><ul><li><p>three.js via WebGL - creates interactive 3D graphics in the browser</p></li><li><p>GSAP - choreographs smooth, precise UI and motion</p></li><li><p>matter.js - simulates motion physics and collisions for interactive scenes</p></li></ul><p>In the vibe-coding era, we can accomplish much more, much faster than in the past, when everything had to be coded by hand. AI can generate a lot of this quickly, but without the right mental models it&#8217;s hard to prompt precisely, evaluate the output, and debug issues. The good news is that having the right concepts, plus a clear sense of today&#8217;s possibilities and limits, can take us surprisingly far through prompting.</p><p>To avoid overwhelm, this week focuses on two things:</p><ol><li><p>How to adopt new libraries in an AI-assisted workflow, and</p></li><li><p>how to apply that through hands-on experimentation with one particular library, GSAP.</p></li></ol><p>The same approach can be reused when learning and using other frameworks you might encounter.</p><h3>Sources</h3><h4>[Must] <a href="https://contra.com/p/Xsg727bX-moxy-3-d-mockup-studio-less-flat-more-fab?r=lai_jing_chu_i5adi8jv">Moxy 3D Mockup Studio - Less Flat. More Fab. by Susanna Nevalainen</a> [30 mins]</h4><div id="youtube2-DCmPyQaNG9s" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;DCmPyQaNG9s&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/DCmPyQaNG9s?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Read Susanna&#8217;s write-up of her award-winning Figma Make-a-thon entry that uses three.js and other libraries to bring her creative vision to life. Notice her design-to-dev process, how she prompts, the challenges and roadblocks she encountered, and the knowledge she applied along the way.</p><h4>[Must] <a href="https://x.com/damienghader/status/2033879887233142955?s=20">damien on Twitter / X</a> - 3 Lovable examples and a guide on GSAP animations [15 mins]</h4><p>This is an incredibly useful article with three inspiring vibe-coded prototype examples and a write-up that breaks down the frontend development process. Notice what the author specifies to the AI tool in terms of specs and code snippets.</p><p>See the three examples here:</p><ul><li><p>N&#248;va (<a href="https://templatenova.lovable.app/">templatenova.lovable.app</a>)</p></li><li><p>Oak Atelier (<a href="https://oakatelier.lovable.app/">oakatelier.lovable.app</a>)</p></li><li><p>V&#216;ID Intelligence (<a href="https://void-dance.lovable.app/">void-dance.lovable.app</a>)</p></li></ul><h4>[Must] <a href="https://dev.to/sotergreco/coding-tutorials-vs-documentation-which-is-better-for-learning-3nd4">Coding Tutorials vs. Documentation: Which is Better for Learning?</a> [5 mins]</h4><p>Most beginners gravitate toward tutorials when learning a new technical topic, but we often underestimate the usefulness and importance of official documentation. Both are incredibly useful and complement each other. This article supports why, this week, we will lean more on official documentation as we approach a new subject.</p><h4>[Must] <a href="https://newsletter.becomeaseniorengineer.com/p/4-read-all-the-documentation">#4: Read ALL The Documentation</a> [10 mins]</h4><p>While the article above discusses the &#8220;why,&#8221; this one covers the &#8220;how&#8221;: how to approach reading documentation and what to look for.</p><h4>[Skim] <a href="https://gsap.com/resources/">resources | GSAP | Docs &amp; Learning</a> [2 hours]</h4><p>Study this doc (Getting Started section) and try to glean for the following:</p><ol><li><p>What&#8217;s this library for? What are 2-3 most common use cases?</p></li><li><p>Notice the action verbs used across the library &#8212; they indicate functionality. Pick 5 that interests you.</p></li><li><p>Look out for pitfalls and constraints &#8212; these indicate limitations.</p></li></ol><h4>[Inspiration] <a href="https://www.superhi.com/student-work">Student work &#8226; SuperHi</a> [15 mins]</h4><p>Browse SuperHi&#8217;s student-work gallery for inspiration. As you click through projects, note what each piece is trying to do (layout, interaction, animation, 3D, etc.) and which stack or library makes it possible.</p><h3>Exercise</h3><h4>Reading documentation in the vibe coding era</h4><p>If AI can generate working code in seconds, why read docs at all? Because docs help you build <em>taste + precision</em>: you learn both the possibilities and the limitations of the library&#8212;so you can prompt better, judge output faster, and debug with confidence.</p><ol><li><p><strong>Skim the landing page.</strong> Get a sense of what the library is for and what you can do with it.</p></li><li><p><strong>Identify the library&#8217;s &#8220;verbs.&#8221;</strong> Skim headings and look for the core API calls. For GSAP, these often include creating tweens, creating timelines, targeting elements, controlling timing and easing, and responding to scroll.</p></li><li><p><strong>Collect pitfalls and constraints.</strong> Look for sections like &#8220;caveats,&#8221; &#8220;browser support,&#8221; &#8220;performance,&#8221; &#8220;accessibility,&#8221; &#8220;reduced motion,&#8221; and &#8220;common mistakes.&#8221; These become prompt constraints later.</p></li><li><p><strong>Ask AI to translate the docs into your own words.</strong> Prompt: &#8220;Summarize this doc page into 5 bullet points: what it does, when to use it, common pitfalls, and a tiny example.&#8221; (You&#8217;re using AI as a <em>reading partner</em>, not as a source of truth.)</p></li><li><p><strong>Build a personal &#8220;prompt template&#8221; for this library.</strong> Example: &#8220;Use GSAP timelines. Respect prefers-reduced-motion. Don&#8217;t animate layout-thrash properties. Explain the selectors you used.&#8221;</p></li><li><p><strong>Copy the smallest example into CodePen (or your local project) and get it working </strong><em><strong>unchanged</strong></em><strong> first.</strong> Treat this as your &#8220;known-good&#8221; baseline.</p></li><li><p><strong>Make one deliberate change at a time.</strong> Change exactly one variable (duration, easing, stagger, selector, etc.), observe the result, and write a one-line note: &#8220;I changed X &#8594; effect Y.&#8221;</p></li></ol><p>Once you feel like you understand how the library works, create your own project with it, and/or write a blog post that includes your prompt template to share with the world.</p><div><hr></div><h2 style="text-align: center;">&#129681; Let&#8217;s do this together &#129681;</h2><p style="text-align: center;">Apply to join a 6&#8209;week, live Zoom seminar starting May 7, 2026, with a small cohort of fewer than 10 designers. Each week, we&#8217;ll tackle the readings together and share in&#8209;progress work for feedback and accountability.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://docs.google.com/forms/d/e/1FAIpQLSd0-KQA4Mw7bNNR2mSsgXQr7Q94XScKYd20EJxUrqzZ8Q0sqw/viewform&quot;,&quot;text&quot;:&quot;Register now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://docs.google.com/forms/d/e/1FAIpQLSd0-KQA4Mw7bNNR2mSsgXQr7Q94XScKYd20EJxUrqzZ8Q0sqw/viewform"><span>Register now</span></a></p><div><hr></div><h2><strong>Week 4: The &#8220;out of the box&#8221; vibe-coding stack</strong></h2><p>Total reading time: 3 hours 35 minutes</p><p>When you open apps like Figma Make or Replit, enter a prompt, and watch them spin up a web app prototype automatically, the codebase you get usually reflects a default stack built from a few common libraries and frameworks.</p><ul><li><p>Framework (app structure + routing): <strong>Next.js</strong> (built on React), <strong>Nuxt</strong> (built on Vue), <strong>SvelteKit</strong> (built on Svelte)</p></li><li><p>UI library: <strong>React</strong>, <strong>Vue</strong>, <strong>Svelte</strong></p></li><li><p>Styling approach: <strong>Tailwind CSS</strong> or <strong>CSS modules</strong></p></li><li><p>Component kit: <strong>shadcn/ui</strong>, <strong>Radix UI</strong>, <strong>Material UI</strong></p></li><li><p>Data fetching: built-in <code>fetch</code>, or a helper like <strong>React Query (TanStack Query)</strong></p></li></ul><p>This week, we&#8217;ll read the introductions in the official documentation for these tools as a habit-building practice. Building on what we&#8217;ve learned in previous weeks, these documentation sites should make some sense. Once you get more comfortable with them, vibe coding will feel a lot less like dealing with a black box.</p><p>Goal for this week: build a mental model so you can read AI-generated JS, ask for the right changes, and debug behavior without memorizing syntax.</p><h3>Sources</h3><h4>[Must] <a href="https://www.youtube.com/watch?v=Tn6-PIqc4UM">React in 100 Seconds</a> [2 mins]</h4><div id="youtube2-Tn6-PIqc4UM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Tn6-PIqc4UM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Tn6-PIqc4UM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>React is a UI library for building web interfaces out of reusable &#8220;components.&#8221; This video gives you a fast overview of the big ideas you&#8217;ll keep seeing in React code&#8212;components as functions, passing information into a component, and letting the UI &#8220;remember&#8221; things and update when something changes.</p><h4>[Skim] <a href="https://react.dev/learn">Quick Start &#8211; React</a> [1 hour]</h4><p>Start with React&#8217;s Learn guide for the official, beginner-friendly mental model of how React works. Start with &#8220;Quick Start&#8221; page, then hop over to the 4 &#8220;Learn React&#8221; pages to get comfortable with the core concepts:</p><ul><li><p><strong>Describing the UI</strong> &#8212; Build interfaces by composing reusable pieces called <em>components</em>.</p></li><li><p><strong>Adding interactivity</strong> &#8212; Handle user input with <em>events</em> and update <em>state</em> to keep the UI in sync.</p></li><li><p><strong>Managing state</strong> &#8212; Structure and share state as your app grows.</p></li><li><p><strong>Escape hatches</strong> &#8212; Do work that reaches outside React&#8217;s render cycle (for example: reading/writing to browser APIs, focusing an input, syncing with external systems) using <em>effects</em> and refs when needed.</p></li></ul><h4>[Must] <a href="https://www.youtube.com/watch?v=Sklc_fQBmcs&amp;t=166s">Next.js in 100 Seconds // Plus Full Beginner&#8217;s Tutorial</a> [12 mins]</h4><div id="youtube2-Sklc_fQBmcs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Sklc_fQBmcs&quot;,&quot;startTime&quot;:&quot;166s&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Sklc_fQBmcs?start=166s&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>This video gives you a quick big-picture intro to Next.js, followed by a short demo. Although Next.js includes both frontend and backend capabilities, it&#8217;s useful to get familiar with it for AI-assisted coding because it helps you understand where frontend code sits within the framework.</p><h4>[Skim] <a href="https://nextjs.org/docs">Next.js Docs</a> [1 hour]</h4><p>Keep this documentation handy as a guide to look up when needed.</p><p>Start with &#8220;Project Structure,&#8221; &#8220;Layouts and Pages,&#8221; &#8220;Linking and Navigating&#8221; for the basics before hopping into other pages that might interest you. Look out for action verbs (which indicate function/API) and constraints, which are limitations to be aware of.</p><p>&#8220;CSS&#8221; would be a good segue into the next resource!</p><h4>[Must] <a href="https://www.youtube.com/watch?v=mr15Xzb1Ook">Tailwind in 100 Seconds</a> [2 mins]</h4><div id="youtube2-mr15Xzb1Ook" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;mr15Xzb1Ook&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/mr15Xzb1Ook?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>This overview quickly covers what Tailwind was meant to solve, as well as the predominant limitations and criticism it faces.</p><h4>[Skim] <a href="https://v2.tailwindcss.com/docs/utility-first">Utility-First - Tailwind CSS</a> [30 mins]</h4><p>Skim the <strong>Core Concepts</strong> section to get the mental model for how Tailwind works. Then treat the reference pages as your lookup table: when you need a specific utility, you can quickly find the class name and the exact CSS it maps to.</p><h4>[Must] <a href="https://www.youtube.com/watch?v=cDKT-W67KJ0">Shadcn UI in 100 Seconds: The Ultimate Tailwind CSS Hack You Need! &#128640;</a> [2 mins]</h4><div id="youtube2-cDKT-W67KJ0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;cDKT-W67KJ0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/cDKT-W67KJ0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Here&#8217;s a 100-second intro into Shadcn, not by Fireship, but with a touch of humor and sarcasm.</p><h4>[Must] <a href="https://refine.dev/blog/shadcn-blog/">AI-First UIs: Why shadcn/ui&#8217;s Model is Leading the Pack | Refine</a> [7 mins]</h4><p>This blog post explains why Shadcn is the default UI component library for most AI code generation tools.</p><h4>[Skim] <a href="https://ui.shadcn.com/docs">Introduction</a> [30 mins]</h4><p>This is the official documentation of shadcn. Pay closer attention to the introduction page, and then just hop around the skim through the rest of the pages to see what&#8217;s there!</p><h4>[Optional] <a href="https://tweakcn.com/editor/theme">Beautiful themes for shadcn/ui &#8212; tweakcn | Theme Editor &amp; Generator</a> [10 mins]</h4><p>Explore tweakcn &#8212; a visual theme editor for <strong>shadcn/ui + Tailwind</strong> that lets you generate and fine-tune your design tokens (colors, radius, typography, etc.) and export the config/CSS so your whole component library updates consistently without hand-editing a bunch of classes.</p><h3>Exercise</h3><h4>Sketch out your capstone project idea &#8212; Personal website / product landing page</h4><p><em>This week, we will begin to work on our final capstone project &#8212; which will culminate in Week 6. This project is inspired by <a href="https://x.com/damienghader/status/2033879887233142955?s=20">the steps</a> laid out designer-builder damien on X, which we read about last week.</em></p><p>One piece of portfolio advice I often give junior designers is this &#8212; 100% of your website visitors will see your hero space, so it is critical to use it well and make sure your elevator pitch shines through. Check out the following two examples!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f2Dq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f2Dq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 424w, https://substackcdn.com/image/fetch/$s_!f2Dq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 848w, https://substackcdn.com/image/fetch/$s_!f2Dq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 1272w, https://substackcdn.com/image/fetch/$s_!f2Dq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f2Dq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png" width="724" height="561.8956043956044" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1130,&quot;width&quot;:1456,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:280271,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://laijingchu.substack.com/i/194868304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f2Dq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 424w, https://substackcdn.com/image/fetch/$s_!f2Dq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 848w, https://substackcdn.com/image/fetch/$s_!f2Dq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 1272w, https://substackcdn.com/image/fetch/$s_!f2Dq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f1039-6aa9-49a8-b0c3-eb1bf3ee8927_1706x1324.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://akanshasoni.com/">Akansha Soni&#8217;s portfolio</a></figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WKR7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WKR7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 424w, https://substackcdn.com/image/fetch/$s_!WKR7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 848w, https://substackcdn.com/image/fetch/$s_!WKR7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 1272w, https://substackcdn.com/image/fetch/$s_!WKR7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WKR7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png" width="1456" height="1119" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1119,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94301,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://laijingchu.substack.com/i/194868304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WKR7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 424w, https://substackcdn.com/image/fetch/$s_!WKR7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 848w, https://substackcdn.com/image/fetch/$s_!WKR7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 1272w, https://substackcdn.com/image/fetch/$s_!WKR7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38e2e7f2-78e0-475b-9802-951b767a4dd4_1705x1310.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://lorraineruppert.com/">Lorrain Ruppert&#8217;s portfolio</a></figcaption></figure></div><p>I can&#8217;t think of a higher-leverage exercise than creating a thoughtful, interactive experience at the top of your landing page, using both AI and your own coding knowledge.</p><p>So, without further ado &#8212; let&#8217;s begin.</p><ol><li><p>Brainstorm and sketch an interactive hero for your personal website on paper. Consider: What are you passionate about? What look and feel do you want to create? What message do you want to convey? What kind of playful interactive or animated experience do you want to create? (Consider what GSAP can accomplish for you, or learn about a different frontend library such as three.js, p5.js, etc.)</p></li><li><p>Build a mood board with your inspirational references, and define the visual system, including fonts and colors.</p></li><li><p>To maintain creative direction and control, start by designing the layout composition and preparing visual assets in Figma.</p></li><li><p>In Figma, write out the layout rules and animation specs in a text box next to your artboards, so you have a record you can always refer to.</p></li><li><p>Sketch 2&#8211;3 breakpoint variants (mobile / tablet / desktop) and note what changes.</p><p>We will start the vibe coding process next week.</p></li></ol><p><strong><a href="https://www.notion.so/laijingchu/Grading-Rubric-Frontend-Coding-Hero-exercise-349a7c440b9580478ec7c5bac7673b54?source=copy_link">&#128204; Grading Rubric</a></strong></p><p>References:</p><div id="youtube2-h0Op1UAvtTM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;h0Op1UAvtTM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/h0Op1UAvtTM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2><strong>Week 5: AI-assisted design and development</strong></h2><p>Total reading time: 4 hours 35 minutes</p><p>This week, we finally dive into vibe-coding head on, armed with the programming knowledge from previous weeks. The goal is neither to be too prescriptive or overwhelm you with too many tools and theory. Right now, everyone is still exploring AI workflows and experimenting with them in different ways &#8212; the most productive thing I can do for you here is to provide you with the starting points for exploration. We will first go through a high level mental map of AI design, then set up Cursor, Claude Code, Figma MCP(s), and we will close it out with some quick tips for debugging.</p><h3>Sources</h3><h4>[Must] <a href="https://www.youtube.com/watch?v=NlVxAy05KNA">CLAUDE CODE FOR DESIGNERS (Full Course - 4 Hours)</a> [2 hours]</h4><div id="youtube2-NlVxAy05KNA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;NlVxAy05KNA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/NlVxAy05KNA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>In this 4&#8209;hour course, Alen Faljic from d.mba teaches designers agentic design using Claude Code, with a strong focus on practical workflows. It gives you a solid mental model for how LLM&#8209;based AI agents work, plus concrete ways to start on the right foot. What it covers:</p><ul><li><p>what AI &#8216;agents&#8217; and &#8216;agentic&#8217; design are;</p></li><li><p>how to orchestrate workflows that combine AI&#8217;s probabilistic &#8216;thinking&#8217; with deterministic scripts and skills for reliability;</p></li><li><p>core concepts like system prompts, skills, context rot, MCPs and related tooling;</p></li><li><p>real applications such as building and shipping simple sites and apps while incorporating AI-native design systems;</p></li><li><p>automating research and operational workflows.</p></li></ul><p>Feel free to watch at 2X speed and slow down when needed.</p><h4>[Must] <a href="https://www.designaistack.com/p/the-ai-design-map-every-designer">The AI Design Map: A Practical Guide for Designers into 2026</a> [5 mins]</h4><p>This Substack article provides a helpful breakdown of vibe-designing tool categories and when to use each. It distinguishes tools for divergent thinking (early exploration and brainstorming) from those for convergent production (polish and refinement, closer to shipping). Use it as a reference to structure your workflow, but you do not need to follow it strictly.</p><h4>[Must] <a href="https://cursor.com/workshops">Cursor &#183; Workshops</a> [1 hour]</h4><p>Cursor &#8212; the popular AI code editor (IDE) &#8212; maintains a very good archive of webinar content. Scroll down to &#8220;On-demand sessions&#8221; and look for &#8220;Cursor 101&#8221; for an introduction to the tool.</p><h4>[Must] <a href="https://code.claude.com/docs">Claude Code overview - Claude Code Docs</a> [15 mins]</h4><p>Claude Code is a command-line tool you run in a terminal, so you can use it from any editor or IDE that gives you a terminal (including Cursor). Cursor and Claude Code are separate tools: Cursor provides its own built-in AI chat/models, while Claude Code uses the models and settings from your Anthropic/Claude setup. Use this guide to install and run Claude Code for the first time.</p><h4>[Must] <a href="https://www.youtube.com/watch?v=bV3JILGbKfE">Vibe Coding Guide for Designers</a> [8 mins]</h4><div id="youtube2-bV3JILGbKfE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bV3JILGbKfE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bV3JILGbKfE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Watch your hard work pay off &#8212; This 8-minute video that explains why for designers having a fundamental understanding of code will help bridge the gap between design canvases and production-code.</p><h4>[Must] <a href="https://docs.figma-console-mcp.southleft.com/setup">Figma Console MCP - Turn Your Design System Into a Living API</a> [30 mins]</h4><p>Figma Console MCP is a third-party MCP server (maintained by TJ Pitre) that connects your AI assistant to your Figma files through the Figma Console plugin and Figma&#8217;s plugin APIs. Compared to the official Figma MCP, it focuses on deeper access to design-system primitives (for example: variables/tokens, styles, pages and layers) to support workflows like inspecting, updating, and syncing design decisions with code. See &#8220;Figma MCP vs. Console MCP&#8221; (under &#8220;Guides&#8221;) for a side-by-side comparison if you want the details.</p><div id="youtube2-qY37qaowO5I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;qY37qaowO5I&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/qY37qaowO5I?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h4>[Must] <a href="https://www.youtube.com/watch?v=yigVkI6LM-M">Figma tutorial: How to set up Figma remote MCP server [April 2026]</a> [5 mins]</h4><p>Watch this tutorial to kick start your exploration of Figma&#8217;s official, first-party MCP.</p><p>This MCP can read designs, generate code, capture live web pages into Figma layers, and (as of the March 2026 update) write directly to the canvas &#8212;creating and editing frames, components, variables, and auto layout using Figma-native structure and matching your code-base design system.</p><p>The official server and Figma Console MCP are designed to be complementary: use the official server for code-to-canvas workflows (capture/code generation), and use Console MCP for design-system workflows like token architecture, batch variable operations, parity checks, and documentation when you need them.</p><h4>[Must] <a href="https://www.figma.com/blog/the-figma-canvas-is-now-open-to-agents/">Announcement: Agents, Meet the Figma Canvas | Figma Blog</a> [15 mins]</h4><p>Read the March 2026 announcement blog when agents on canvas was first released.</p><h4>[Must] <a href="https://www.ibm.com/think/topics/debugging">What Is Debugging? | IBM</a> [20 mins]</h4><p>What should you do if your AI output keeps throwing bugs and errors? This IBM guide explains a general debugging methodology that you can translate and apply to AI-assisted workflows.</p><h4>[Must] <a href="https://www.reddit.com/r/ChatGPTCoding/comments/1jp8etc/vibe_debugging_best_practices_that_gets_me_unstuck/">Vibe debugging best practices that gets me unstuck.</a> [10 mins]</h4><p>This Reddit post offers practical, in-the-trenches tips for debugging vibe-coded projects.</p><h3>Exercise</h3><h4>Productionize your hero with AI-assisted coding</h4><p>For the following two weeks, you&#8217;ll turn your Week 4 hero concept into a working codebase you can run and share. Use your Figma mockups + written specs as your source of truth, then generate a first pass in a vibe-coding tool of your choice (Figma Make, v0, Replit, Cursor, Claude Code, etc.) and iterate with this loop: reproduce &#8594; inspect &#8594; isolate &#8594; fix &#8594; verify.</p><ol><li><p>Copy your Week 4 layout rules + animation specs into your tool&#8217;s prompt, and attach or reference your Figma mockups + assets.</p></li><li><p>Generate a baseline that matches the layout (don&#8217;t optimize yet); get it running locally or in a hosted preview.</p></li><li><p>Make at least 3 targeted edits: (a) layout/spacing, (b) typography, and (c) one interaction/animation.</p></li><li><p>Debug any issues using the loop above, and verify the fix (refresh, test the trigger, and confirm it resets correctly).</p></li><li><p>Open the folder structure and identify where these live: routes/pages, components, styles/tokens, and assets; then answer: &#8220;Where would I change the hero copy, layout, and animation?&#8221;</p></li><li><p><em>Optional:</em> Add a second page to the site, and observe if the same styles and components are being used consistently. If not, try to get to the root of the issue by debugging and refactoring the code.</p></li></ol><p>If you need help, reference damien&#8217;s &#8220;<a href="https://x.com/damienghader/status/2033879887233142955?s=20">Prompt Template</a>&#8221; for inspiration.</p><p><em>Feel free to continue working on this next week, since Week 6 (Git/GitHub) is largely informational.</em></p><h4>Grading rubric:</h4><p><a href="https://www.notion.so/Capstone-Frontend-Code-Literacy-for-Designers-in-the-AI-Era-Grading-Rubric-348a7c440b958006834dfb5645aacf9c?pvs=21">Capstone: Frontend Code Literacy for Designers in the AI Era - Grading Rubric</a></p><div><hr></div><h2>Week 6: Git and GitHub</h2><p>Total reading time: 2 hours 16 minutes</p><p>In the final week, we&#8217;ll cover the essentials of Git and GitHub: how to save your work in a repository, understand version history, and collaborate without stepping on each other&#8217;s toes. We&#8217;ll cover Git + GitHub, which are used for storing and sharing your code. For static sites that use only HTML/CSS/JS, GitHub Pages is often the simplest deployment path once your repo is set up.</p><p>(For fullstack apps that include authentication, servers, and API routes, which is out of scope for this binder, you&#8217;ll likely use a cloud hosting platform such as Vercel. We won&#8217;t cover that step by step in this binder. If you go this route, you may ask your vibe-coding tool to guide you through deployment &#8212; most of them do a pretty good job.)</p><h3>Sources</h3><h4>[Must] <a href="https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZF9C0YMKuns9sLDzK6zoiV">Git and GitHub for Poets</a> [2 hours 16 mins]</h4><p>This (older) YouTube playlist gives a friendly, conceptual introduction to Git and GitHub&#8212;version control, repositories, commits, branches, merges, and pull requests&#8212;using a hands-on workflow. Get familiar with the vocabulary and mental model; you don&#8217;t need to memorize terminal/Bash commands.</p><h3>Exercise</h3><p>Continue to work on your capstone project!</p><p>If you are running the build locally on your machine, use what you learned this week to push the code to GitHub. If you are using Claude Code or Cursor, you can ask the LLM to run git commands in natural language, with an understanding of the concepts and terminology.</p><div><hr></div><h2 style="text-align: center;">&#10024; Let&#8217;s study together. &#10024;</h2><p style="text-align: center;">Apply to join a 6&#8209;week, live Zoom seminar starting May 7, 2026, with a small cohort of fewer than 10 designers. Each week, we&#8217;ll tackle the readings together and share in&#8209;progress work for feedback and accountability.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://forms.gle/G3GiYxc5mwTpyWKx5&quot;,&quot;text&quot;:&quot;Register your interest&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://forms.gle/G3GiYxc5mwTpyWKx5"><span>Register your interest</span></a></p><div><hr></div><p>&#128157; Thank you for reading and supporting. What do you want to learn next?</p><div class="poll-embed" data-attrs="{&quot;id&quot;:498796}" data-component-name="PollToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://laijingchu.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Syllabind &#8212; Not Another Bootcamp&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://laijingchu.substack.com/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Syllabind &#8212; Not Another Bootcamp</span></a></p><p></p>]]></content:encoded></item></channel></rss>