Intro to AI workflows | Penpot Hands-On Demo ๐Ÿ”— **Source:** [Intro to AI workflows | Penpot Hands-On Demo](https://www.youtube.com/watch?v=F_T5IX3907Q) > [!note]+ Document Notes > tags: #ai-workflows #design-tools #MCP #penpot #design-systems > author: Penpot > source: YouTube > reference: https://www.youtube.com/watch?v=F_T5IX3907Q > date created: 2025-01-11 12:00 > > # ๐Ÿท๏ธ Title: Intro to AI workflows | Penpot Hands-On Demo > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Set up Penpot MCP with OpenRouter and Open Code client โ€” complete workflow demo #ai-workflows - [H2] Create design tokens from existing designs using AI agents โ€” automated token generation #design-systems - [H3] Generate responsive HTML/CSS from Penpot designs โ€” design-to-code transformation #web-development ## ๐Ÿงญ Table of Contents - [[#๐Ÿ“ Summary]] - [[#๐Ÿ“– Main Content]] - [[#๐Ÿ—’๏ธ Notes]] - [[#๐Ÿ“š References]] - [[#๐Ÿ—ฃ๏ธ Paraphrase]] - [[#๐Ÿ“ฐ Newsletter]] - [[#โœ… Action Items]] - [[#๐Ÿงช Hypotheses]] - [[#๐Ÿ“Š Methodology]] - [[#โ“ Questions]] - [[#๐Ÿ”ฎ Future Research]] - [[#๐Ÿ’ก Implications]] - [[#๐Ÿง  Learning Styles Assessment]] - [[#๐Ÿ“Š Accessibility Assessment]] - [[#๐ŸŒ DEIB Assessment]] - [[#โœ… Logical Validity]] - [[#๐Ÿ›ก๏ธ DARVO Analysis]] - [[#๐ŸŽฏ Conclusion]] ### ๐Ÿ”— References - [Penpot User Guide](https://help.penpot.app/) - [OpenRouter](https://openrouter.ai/) - [Open Code](https://github.com/codeiumdev/open-code) ## ๐Ÿ“ Summary - Live demonstration of Penpot's Model Context Protocol (MCP) integration for AI-powered design workflows - Juan from Penpot team shows how to connect AI agents to read and modify Penpot files directly - Covers setup process, practical use cases, best practices, and common pitfalls - Emphasizes treating AI as a collaborator rather than magic, requiring structured prompts and iteration - Bottom line: MCP enables professional designers to automate repetitive tasks while maintaining design quality and consistency ## ๐Ÿ“– Main Content Model Context Protocol (MCP) allows AI agents to directly interact with Penpot design files, reading elements, assets, and tokens while creating new design artifacts. Unlike experimental AI design tools, Penpot MCP maintains professional design standards by leveraging structured design systems and semantic markup. The integration works with any MCP-compatible client and LLM, providing flexibility for different workflows and budgets. Success requires well-organized design files, clear prompts, and iterative refinement rather than expecting perfect one-shot results. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00](https://youtu.be/F_T5IX3907Q?t=0) โ€” [H1] Introduction and Live Demo Setup - Key idea: Live hands-on session demonstrating AI workflows in Penpot - Evidence: "These are live sessions where we get practical with Penpot, the open source design platform" #### โฑ๏ธ [02:45](https://youtu.be/F_T5IX3907Q?t=165) โ€” [H2] What Are AI Workflows? - Key idea: AI workflows connect LLM agents to design tools for automated tasks - Evidence: "AI workflows are essentially structured processes we can use in our work that use AI" #### โฑ๏ธ [05:30](https://youtu.be/F_T5IX3907Q?t=330) โ€” [H1] Color Token Update Demo - Key idea: Agent successfully updates design tokens based on hex code prompt - Evidence: Live demonstration showing token panel updates and theme changes #### โฑ๏ธ [08:15](https://youtu.be/F_T5IX3907Q?t=495) โ€” [H2] Understanding LLMs and Tokens - Key idea: Tokens represent computational work and correlate to cost and energy usage - Evidence: "A token is a unit of work that's done by an LLM and it roughly represents about a character of text" #### โฑ๏ธ [11:20](https://youtu.be/F_T5IX3907Q?t=680) โ€” [H1] Problems AI Workflows Solve - Key idea: Automate repetitive tasks and bridge designer-developer translation gap - Evidence: "Designers work visually and developers work in code. And a lot of time is spent translating between of worlds" #### โฑ๏ธ [15:45](https://youtu.be/F_T5IX3907Q?t=945) โ€” [H1] MCP Setup Process - Key idea: Complete workflow from API keys to working agent connection - Evidence: Step-by-step demo showing OpenRouter API, Open Code client, and config file setup #### โฑ๏ธ [22:10](https://youtu.be/F_T5IX3907Q?t=1330) โ€” [H2] Model Selection Recommendations - Key idea: Stronger models perform better for complex multi-step reasoning tasks - Evidence: "Model quality does matter more than people sometimes expect" #### โฑ๏ธ [25:30](https://youtu.be/F_T5IX3907Q?t=1530) โ€” [H1] Design Token Creation Demo - Key idea: Agent automatically creates semantic design tokens from existing design - Evidence: Live demo showing token generation with proper naming conventions #### โฑ๏ธ [32:15](https://youtu.be/F_T5IX3907Q?t=1935) โ€” [H1] Dark Mode Generation - Key idea: Agent creates cohesive dark theme based on design system patterns - Evidence: Demo showing Chakra UI-inspired dark palette generation #### โฑ๏ธ [35:45](https://youtu.be/F_T5IX3907Q?t=2145) โ€” [H1] Design to Code Transformation - Key idea: Agent generates pixel-perfect responsive HTML/CSS from Penpot designs - Evidence: "Completely navigable, clickable and it respects the design like pixel perfect" #### โฑ๏ธ [38:20](https://youtu.be/F_T5IX3907Q?t=2300) โ€” [H2] Prompting Best Practices - Key idea: Treat AI as collaborator, not tool - reduce ambiguity and iterate - Evidence: "Good prompting is you are not giving instructions to a tool. You are briefing a collaborator" #### โฑ๏ธ [41:50](https://youtu.be/F_T5IX3907Q?t=2510) โ€” [H2] Token-Aware Prompting - Key idea: Shorter, structured prompts perform better and cost less - Evidence: "Tokens are like the new Bitcoin... shorter and more structured prompts tend to perform better" #### โฑ๏ธ [45:30](https://youtu.be/F_T5IX3907Q?t=2730) โ€” [H2] Common Pitfalls - Key idea: Expecting magic instead of understanding tool constraints leads to poor results - Evidence: "Not understanding what MCP actually expose. People like magic instead of a tool interface" #### โฑ๏ธ [50:15](https://youtu.be/F_T5IX3907Q?t=3015) โ€” [H3] File Organization Importance - Key idea: Well-structured Penpot files with clear hierarchy enable better AI outputs - Evidence: "Use clear hierarchy. Consistent naming and reusable components so the AI can understand relationships" ## ๐Ÿ“š References - [Penpot User Guide](https://help.penpot.app/) - [OpenRouter API](https://openrouter.ai/) - [Open Code Client](https://github.com/codeiumdev/open-code) - [Penpot MCP Documentation](https://help.penpot.app/technical-guide/developer/mcp/) ## ๐Ÿ—ฃ๏ธ Paraphrase - Penpot's MCP integration allows AI agents to directly read and modify design files, enabling automation of repetitive design tasks while maintaining professional standards - Setting up MCP requires API keys from model providers, an MCP-compatible client, and proper configuration files - but involves minimal actual coding - Success depends on treating AI as a collaborative partner rather than magic, using structured prompts, iterating on results, and maintaining well-organized design files ## ๐Ÿ“ฐ Newsletter ๐ŸŽจ **AI Meets Professional Design: Penpot's MCP Integration** Transform your design workflow with Penpot's Model Context Protocol integration! This powerful feature connects AI agents directly to your design files, automating token creation, generating responsive code, and maintaining design system consistency. **Key Benefits:** - Automate repetitive design token work - Generate pixel-perfect HTML/CSS from designs - Bridge the designer-developer gap seamlessly - Works with any LLM and MCP-compatible client **Getting Started:** Set up takes just minutes with OpenRouter and Open Code. The secret? Treat AI as a collaborator, not magic - structured files and clear prompts yield professional results. **Resources:** [Penpot User Guide](https://help.penpot.app/), [MCP Documentation](https://help.penpot.app/technical-guide/developer/mcp/), [Community Forum](https://community.penpot.app/) ## โœ… Action Items #### DevRel - Developer education: Create MCP setup workshops with live coding sessions - Documentation: Expand best practices guides for prompting and file organization - Community demos: Regular hands-on sessions showcasing AI workflow patterns #### WordPress - Design: Explore MCP integration patterns for WordPress theme development workflows - Documentation: Create guides connecting Penpot MCP to WordPress development processes #### Community - Contributors: Develop example prompts and skills repository for common design tasks - Maintainers: Create governance templates for AI workflow adoption in design teams ## ๐Ÿงช Hypotheses - Teams using structured design systems will achieve 3x better results with MCP than ad-hoc design approaches - Token-aware prompting techniques reduce AI costs by 40-60% while improving output quality - Iterative AI workflows produce more professional results than single-shot generation attempts - Well-organized Penpot files enable more accurate design-to-code transformations ### ๐Ÿ“Š Methodology - A/B test structured vs unstructured design files with identical AI prompts measuring output quality - Cost analysis comparing verbose vs concise prompting strategies across different LLMs - User studies tracking iteration patterns and satisfaction with AI-generated design artifacts ### โ“ Questions - How do different LLM architectures perform with Penpot's semantic design data? - What file organization patterns produce the most reliable AI workflow outcomes? - How can teams measure ROI of AI workflow adoption in design processes? ### ๐Ÿ”ฎ Future Research - Integration patterns with other design tools through MCP standard - Advanced prompt engineering techniques specific to design workflows - Governance frameworks for AI-augmented design team collaboration ### ๐Ÿ’ก Implications - Practice: Designers must invest in file organization and prompt crafting skills alongside traditional design abilities - Education: Design curricula should include AI collaboration techniques and structured design thinking - Security: Teams need governance around AI model selection and data handling for design assets - Funding: AI workflow adoption requires budget allocation for tokens, training, and tool integration ### ๐Ÿง  Learning Styles Assessment Reading level estimate: 10-12 (Technical content with design industry terminology) #### ๐Ÿ‘€ Visual learners - Present: Multiple screen recordings showing step-by-step MCP setup and AI interactions - Improve: Architecture diagrams showing data flow between Penpot, MCP, and LLMs #### ๐Ÿ”Š Aural learners - Present: Live demonstration with verbal explanation of each step - Improve: Audio-only version highlighting key concepts and best practices #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Clear definitions of technical terms (MCP, LLM, tokens), analogies comparing AI to collaborators - Improve: Glossary of AI workflow terminology with pronunciation guides #### ๐Ÿงฉ Kinesthetic learners - Present: Complete hands-on setup tutorial with downloadable config files - Improve: Interactive checklist for setup verification and troubleshooting steps #### ๐Ÿง  Logical learners - Present: Structured best practices frameworks and decision trees for model selection - Improve: Cost calculation formulas and performance benchmarking rubrics #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Live Q&A session with community interaction and team member responses - Improve: Collaborative skill-sharing repository and peer mentoring programs #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Self-paced tutorial with pause points for experimentation - Improve: Reflection prompts on workflow customization and individual use cases #### ๐ŸŒฟ Naturalistic learners - Present: Discussion of energy costs and computational sustainability - Improve: Environmental impact comparisons between different AI workflow approaches ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Proper heading structure and descriptive content for video demonstrations - Improve: Detailed alt text for visual elements and code examples #### Keyboard navigation - Present: Focus management in demonstration interfaces - Improve: Keyboard-only workflow documentation for setup processes #### Contrast and readability - Present: High contrast in demonstration interfaces and slides - Improve: Dark mode alternatives for all documentation #### Text resizing and reflow - Present: Responsive design in documentation - Improve: Ensure code blocks remain readable at 200% zoom #### Media and captions - Present: Live captions during demonstration - Improve: Professional post-production captions with technical term verification #### Forms and interactions - Present: Clear labeling in configuration examples - Improve: Error handling examples for common setup failures ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: Global accessibility through multiple platform streaming - Improve: Multi-language setup documentation and localized examples #### Inclusive language - Present: Gender-neutral technical explanations and professional tone - Improve: Plain language summaries alongside technical details #### Neurodiversity support - Present: Structured presentation with clear section breaks - Improve: Content warnings for rapidly changing screen content #### Representation - Present: Diverse team voices in Q&A responses - Improve: Multiple workflow examples reflecting different use cases and team structures #### Psychological safety - Present: Encouraging tone acknowledging learning curve - Improve: Explicit statements about experimentation and iteration being normal ### โœ… Logical Validity #### Strong reasoning - Deductive strength: Clear logical progression from MCP capabilities to workflow benefits - Inductive strength: Multiple examples supporting claims about AI workflow effectiveness - Causal reasoning: Direct demonstration of cause-effect relationships in token generation - Analogical strength: Effective comparison of AI to human collaborators #### Fallacies - Appeal to novelty: Some emphasis on AI being cutting-edge without full context of limitations - Hasty generalization: Limited examples used to support broad workflow adoption claims #### Tone of voice - Overall tone: Professional yet accessible, emphasizing practical application over hype ### ๐Ÿ›ก๏ธ DARVO Analysis - Deny: No problematic denial patterns observed - Attack: No attacks on critics or alternative approaches - Reverse victim/offender: No victim/offender reversals present - Emotional cues: Appropriate enthusiasm for technology balanced with realistic expectations ## ๐ŸŽฏ Conclusion Penpot's MCP integration represents a mature approach to AI-augmented design workflows, emphasizing professional standards and tool understanding over magical thinking. Success requires investment in structured design practices, prompt crafting skills, and iterative workflows. The technology bridges designer-developer gaps while maintaining the design quality standards expected in professional environments. Teams adopting these workflows should focus on file organization, clear communication patterns with AI agents, and understanding the constraints and capabilities of the underlying tools. ## ๐Ÿงฑ Refactor Appendix ### ๐Ÿ“š Literature Split Pad ### [H1] MCP enables direct AI agent interaction with design files > [!quote] [Intro to AI workflows | Penpot Hands-On Demo](https://www.youtube.com/watch?v=F_T5IX3907Q) by Penpot via YouTube. Published 2024. Accessed 2025-01-11. > "MCP server is a tool that exposes your Penpot file to your agent" Demonstrates technical architecture enabling AI workflow automation in professional design tools. [view highlight](https://youtu.be/F_T5IX3907Q?t=495#H1) #xref #articleseed ID:rw_mcp_architecture ### [H2] Token consumption correlates to computational cost and energy usage > [!quote] [Intro to AI workflows | Penpot Hands-On Demo](https://www.youtube.com/watch?v=F_T5IX3907Q) > "Tokens are like the new Bitcoin... very expensive token heavy generations, they're going to also be very energy intensive" --- ## Full Transcript [00:55] [music]<br>[01:00] [music]<br>[01:08] >> Hello my friends and welcome to another<br>[01:11] hands-on session. These are live<br>[01:14] sessions where we get practical with<br>[01:16] Penpot, the open source design platform.<br>[01:20] And before I forget, you can keep up<br>[01:21] with all of our live streams and new<br>[01:23] videos by following us wherever you are<br>[01:26] watching this. And feel free to give me<br>[01:29] a little thumbs up of encouragement.<br>[01:31] Little like as well.<br>[01:33] As we are live, we will be taking<br>[01:35] questions throughout. Ask them in the<br>[01:37] chat, wherever you're watching this. The<br>[01:39] team are also in the chat and Juan and I<br>[01:42] will try to answer your questions live<br>[01:44] too. So, let's see who's in the chat<br>[01:47] already.<br>[01:49] Hi, I I'm going to try and read these<br>[01:51] names now.<br>[01:52] >> [laughter]<br>[01:52] >> Hi Sandeep.<br>[01:54] Hi Manuel.<br>[01:55] Oh, hi Pablo. Hi Maro. Hi Hi Elena.<br>[02:00] And of course, you can see him here<br>[02:02] already. We have another special guest<br>[02:04] this time and you know him from so many<br>[02:08] fabulous Penpot videos. He's product<br>[02:11] designer at Penpot and he is the MCPMVP.<br>[02:16] Please welcome Juan.<br>[02:18] And it's our first time recording<br>[02:20] together, so I can't wait to tap your<br>[02:22] brain. This is going to be really fun.<br>[02:24] And I don't know, maybe before we jump<br>[02:26] into it, I should ask you, what made you<br>[02:29] into such an AI workflow pioneer in the<br>[02:32] first place?<br>[02:34] Well, I wouldn't frame it as a pioneer.<br>[02:37] >> [laughter]<br>[02:38] >> Well, you've really been leading the way<br>[02:40] at Penpot. That's for sure.<br>[02:41] >> Yeah, it was more about, you know,<br>[02:44] solving practical problems. So, at<br>[02:47] Penpot, we've been researching the best<br>[02:49] way to<br>[02:51] integrate AI into the design workflow<br>[02:54] for a long time and we have explored<br>[02:58] many options, really. So, and we<br>[03:01] generally conclude that the best<br>[03:02] approach is to provide<br>[03:04] AI agents with the best possible visual<br>[03:07] and design, very important, context for<br>[03:11] from Penpot. So, yeah.<br>[03:13] That's our That's why I decided to jump<br>[03:16] in. You've been working out all the<br>[03:18] secret sauce.<br>[03:20] Well, I think maybe that's a good time<br>[03:22] for us to jump in and start talking<br>[03:25] about what actually are<br>[03:28] AI workflows?<br>[03:39] So, I'm going to walk you through a<br>[03:40] little example I made earlier.<br>[03:43] That is the secret of this hands-on is<br>[03:46] that I did have to pre-record<br>[03:48] some of the demos because, well, if<br>[03:50] you've ever done any work with AI, you<br>[03:53] know that things can happen in the<br>[03:54] middle that you don't want them to. And<br>[03:56] so, I just wanted to make sure that we<br>[03:58] ran to time and we sped up the very slow<br>[04:00] thinking bits.<br>[04:02] So, let's have a look at this Penpot<br>[04:03] design I have. It might look familiar to<br>[04:05] some of you already.<br>[04:07] And I don't really like the primary<br>[04:10] accent color in this design.<br>[04:12] So, here are the tokens that we've<br>[04:14] already got for the palette.<br>[04:17] And I'm going to write a prompt for the<br>[04:20] agent. So, my prompt is basically saying<br>[04:24] giving it a role and saying, "Can you<br>[04:25] update the color tokens to match this<br>[04:28] hex code that's a kind of teeny bluey<br>[04:30] greeny color?" So, let's do this thing.<br>[04:34] Let's go.<br>[04:34] >> So, first what it's going to do is it's<br>[04:36] going to review the file to understand<br>[04:38] it.<br>[04:40] And then it proposes its solution.<br>[04:44] Makes a sort of a whole bunch of updates<br>[04:46] it reckons. This is what I'm going to do<br>[04:47] for each of the design tokens and how<br>[04:49] I'm going to update it. And then it asks<br>[04:51] me, "Should I proceed?" So, I say,<br>[04:54] "Yes." I type very slowly, "Proceed."<br>[04:57] And it gets going.<br>[04:59] And it updates the tokens just like<br>[05:01] that. You can see them over here in the<br>[05:04] primary design tokens panel section that<br>[05:07] they've updated.<br>[05:09] The funny thing is it hasn't quite<br>[05:10] updated the whole design yet and I just<br>[05:12] need to change the theme.<br>[05:16] So, that's what it<br>[05:17] updated. Oh, it's gone back and it's<br>[05:19] going to bubble through.<br>[05:23] Oh, it's gone back to the<br>[05:25] This is the downside of using the videos<br>[05:27] is that it didn't<br>[05:28] but it's uh<br>[05:30] reset to the first one. Okay, well, what<br>[05:32] it did is it<br>[05:34] All then I needed to do was just reset<br>[05:35] the theme to make sure the changes<br>[05:37] bubble through all of the tokens. And I<br>[05:39] had that tail update.<br>[05:42] So, what actually are AI workflows? What<br>[05:45] is the AI we're talking about here?<br>[05:48] Mostly in the tech industry lately,<br>[05:51] we've been using AI, artificial<br>[05:53] intelligence, as kind of a short hand<br>[05:56] for LLMs, which are large language<br>[05:59] models. An LLM is a type of intelligence<br>[06:03] that's trained on huge amounts of data.<br>[06:06] That's the large part. Including much of<br>[06:09] the web, a lot of unlicensed material as<br>[06:12] well and incidentally my book. So, yes,<br>[06:15] it was under copyright and no, they did<br>[06:16] not ask for permission, but it got<br>[06:19] sucked up anyway.<br>[06:20] And the LLM's aim is to understand and<br>[06:24] generate human language. So, that makes<br>[06:27] it more able to perform tasks,<br>[06:29] particularly tasks based on pattern<br>[06:32] matching.<br>[06:33] So, then we feed it prompts. So, what's<br>[06:36] a prompt? It's the input that we give to<br>[06:40] the AI, like the task we set the AI. So,<br>[06:43] you've probably noticed search engines<br>[06:45] like this using your search queries as<br>[06:47] really basic prompts, possibly even<br>[06:50] though you didn't necessarily ask for<br>[06:52] it.<br>[06:53] And an agent acts on behalf of an LLM.<br>[06:57] So, it doesn't just respond to prompts<br>[07:00] like a chatbot kind of situation. It can<br>[07:02] also plan and analyze and execute tasks.<br>[07:06] And so, when we're talking about AI<br>[07:08] workflows, we're talking about<br>[07:09] connecting an agent to Penpot. It can<br>[07:13] read the new elements, assets and tokens<br>[07:16] in the Penpot file and it can create new<br>[07:18] elements and assets and tokens in your<br>[07:20] Penpot file.<br>[07:23] Like that.<br>[07:25] And it can work out the context for your<br>[07:28] design using its training data from<br>[07:31] around the web or any specific<br>[07:33] references you provide. And so, AI<br>[07:35] workflows are essentially structured<br>[07:37] processes we can use in our work that<br>[07:40] use AI.<br>[07:42] Then there's a thing called tokens,<br>[07:44] which is kind of important because it<br>[07:46] often equates to a lot of money. A token<br>[07:49] is a unit of work that's done by an LLM<br>[07:53] and it roughly represents about a<br>[07:54] character of text. So, that's a lot of<br>[07:58] text going in and out of<br>[08:01] in part of your dialogue with the LLM.<br>[08:03] And most LLMs will charge by that token<br>[08:07] and a token is also quite a reasonable<br>[08:09] indicator of computational effort, which<br>[08:13] it also correlates to some degree to its<br>[08:16] energy use as well. So, if you think<br>[08:19] very expensive token heavy generations,<br>[08:23] they're going to also be very energy<br>[08:25] intensive as well.<br>[08:27] And what is an MCP? Well, it stands for<br>[08:30] model context protocol. So, it's a<br>[08:33] protocol or a standard format for<br>[08:36] providing context to the model, as in<br>[08:39] the large language model.<br>[08:42] And the MCP server is a tool that<br>[08:44] exposes your Penpot file to your agent.<br>[08:48] So,<br>[08:50] after all of that,<br>[08:53] >> [laughter]<br>[08:53] >> Juan, And yeah.<br>[08:54] >> what problems do AI workflows actually<br>[08:57] solve for designers and developers?<br>[09:01] Yeah, first of all, don't be aware about<br>[09:03] all this stuff. It can sounds like a bit<br>[09:05] complex, but it is and okay. So, the<br>[09:08] first thing that<br>[09:11] and the main thing that<br>[09:13] they solve is that you can automate<br>[09:17] repetitive task. Of course, you can<br>[09:19] generate designs, but the main thing is,<br>[09:22] you know, designers work visually and<br>[09:24] developers work in code.<br>[09:26] And a lot of time is spent translating<br>[09:29] between of worlds. So, AI workflows help<br>[09:32] to reduce that gap, right? So, as I<br>[09:34] said,<br>[09:36] they are really useful for automating<br>[09:39] repetitive task.<br>[09:41] Also, when, you know, design task are<br>[09:43] also transform design to code, code to<br>[09:45] design.<br>[09:47] You can do multiple direction using MCP<br>[09:50] in Penpot and also extracting structure<br>[09:53] and meaning from design files, which is<br>[09:55] really important and is key<br>[09:57] uh because Penpot allow you to<br>[10:01] uh go very deep in the in the data the<br>[10:04] the same data that the the Penpot file<br>[10:07] uh has and also generating code or<br>[10:09] documentation from design data. So, but<br>[10:13] in my opinion<br>[10:14] the key shift is like instead of<br>[10:17] manually navigating tools, you can<br>[10:19] interact with your design system through<br>[10:22] language and workflows, which is<br>[10:25] amazing.<br>[10:28] Yeah, you're already creating so much<br>[10:29] context for your design work using<br>[10:31] design systems that it's really like it<br>[10:34] makes sense that you can pass that on to<br>[10:36] another platform as well.<br>[10:38] Absolutely.<br>[10:40] Great.<br>[10:41] So,<br>[10:42] how Penpot MCP works is I'm going to<br>[10:46] show you.<br>[10:48] So, uh<br>[10:49] let's<br>[10:50] jump into this bit.<br>[10:53] So, I'm going to show you exactly start<br>[10:56] to finish how I set it up on my machine<br>[10:59] and this is using remote<br>[11:02] Penpots, which you can use today from<br>[11:05] design.penpots.app<br>[11:07] and I'm using an AI client that is um<br>[11:10] it's running locally on my machine and<br>[11:13] the LLM is elsewhere and I'll explain<br>[11:15] that in a moment. So,<br>[11:18] first of all, what you need is an MCP<br>[11:21] key. So, first of all, we're checking<br>[11:24] the MCP server is disabled and then I go<br>[11:28] to my account<br>[11:30] and I'm going to go to integrations<br>[11:33] and I'm going to turn on the MCP server.<br>[11:35] And this will give me the option to<br>[11:37] generate<br>[11:38] an MCP key<br>[11:41] and oh<br>[11:43] Oh, come on, video.<br>[11:46] I'm having an absolute mare with these<br>[11:48] today. Okay.<br>[11:49] And uh it I've set it for uh<br>[11:53] unlimited duration and then you can copy<br>[11:55] and paste that key and it also gives you<br>[11:58] the option to<br>[12:00] then you get this MCP server. Then I'm<br>[12:02] going to go to open router, which we're<br>[12:04] going to use to provide our models and<br>[12:06] I'm going to create an API key with<br>[12:08] them. Now, it's very easy to sign up<br>[12:12] with OpenRouter and you get a free<br>[12:14] account with them and you get your API<br>[12:17] key. That's the they give you the option<br>[12:20] to set that up as soon as you start up<br>[12:23] and you can create a key.<br>[12:25] And<br>[12:26] then what you will probably want to do<br>[12:29] is go and get some credits. So, there's<br>[12:32] the option here and you can add credits.<br>[12:35] I'm not going to show you how my credit<br>[12:37] card process works. But many of the LLMs<br>[12:41] the models are not free and so you want<br>[12:43] to kind of set some sort of uh limit for<br>[12:46] how much money you want to spend. Don't<br>[12:48] do auto top up. That will get expensive<br>[12:50] really quickly. And you can just add<br>[12:53] maybe $10 or something to start with to<br>[12:55] start yourself off.<br>[12:57] The next thing we want is a client. So,<br>[13:00] this is what we're going to use to<br>[13:02] connect uh Penpots and the LLMs through<br>[13:06] OpenRouter. And so for this I've picked<br>[13:09] Open Code. I've tried to go with mostly<br>[13:12] open source free and open tools as much<br>[13:14] as possible.<br>[13:16] And Open Code is quite straightforward<br>[13:18] to use and I just downloaded the desktop<br>[13:20] version that they've got. And even<br>[13:22] though it's called code, you don't need<br>[13:24] to be intimidated if you're not feeling<br>[13:26] very technically minded. There's not<br>[13:28] very much code involved in this process.<br>[13:30] And the first thing I'm going to do is<br>[13:32] I'm going to go into their menu<br>[13:34] and I'm going to<br>[13:36] uh not open a project yet. I'm going to<br>[13:38] go into settings and providers and going<br>[13:42] to scroll down<br>[13:44] and find that<br>[13:47] OpenRouter provider and connect. And all<br>[13:50] I need to paste in there is the API key<br>[13:52] that I got from OpenRouter. I have<br>[13:54] deleted these API keys, so don't any of<br>[13:56] you try to use them in case you didn't<br>[13:58] see them.<br>[13:59] Um they're already not available. And so<br>[14:02] now that's connected to Open Code.<br>[14:06] So, now I'm going to open an empty<br>[14:08] project that I've got on my machine,<br>[14:09] just an empty folder on my machine in<br>[14:12] Open Code.<br>[14:15] And so that's just an empty folder<br>[14:17] called MCP demo. You see it's all eager<br>[14:20] and ready to go.<br>[14:23] Next, I'm going to go back to Penpots<br>[14:26] and I'm going to get that MCP code<br>[14:31] and I'm going to add it to a config<br>[14:34] file.<br>[14:36] So, I'm going to go just into a text<br>[14:38] editor code editor and create a file<br>[14:40] called open code.jsonc.<br>[14:44] That is a config file in a format that<br>[14:47] Open Code likes<br>[14:48] and I'm going to paste in my MCP code<br>[14:52] just like that and wrap it<br>[14:55] so that we can<br>[14:56] all read the key that I have already<br>[14:58] deleted.<br>[15:01] And<br>[15:02] then uh once we've done that, we want to<br>[15:05] actually add a few more specifics to the<br>[15:07] file. This is quite handy information if<br>[15:09] you want to get started with Open Code.<br>[15:12] And that is just that it wants a little<br>[15:15] bit more config information.<br>[15:18] So, we're going to add in a schema<br>[15:21] uh we add in type remote and enabled<br>[15:24] true inside the Penpot section.<br>[15:27] And once we have got that,<br>[15:30] I'm just going to format the file. So,<br>[15:33] that's just making sure all the<br>[15:34] indentation is okay for a JSON file. Uh<br>[15:37] so, every nested bracket every time<br>[15:39] something's nested, it's indented uh<br>[15:42] because it will make a fuss if that<br>[15:44] isn't right like that as well.<br>[15:48] And then I'm going to reload Open Code.<br>[15:51] It often likes a reload or a restart. If<br>[15:54] I go to the status, I can see the Penpot<br>[15:56] MCP is connected and that's a little<br>[15:59] green status icon alongside it.<br>[16:02] So, once I have that, I can go back into<br>[16:06] Penpots<br>[16:08] and I can close the integration section.<br>[16:11] I need to actually open up a file. So,<br>[16:13] I'm going to go into my design mocks<br>[16:15] file<br>[16:16] and I'm going to go into the menu<br>[16:20] and<br>[16:22] I'm going to come on, video.<br>[16:27] Go into the menu<br>[16:29] and go to MCP server and check that it<br>[16:33] is enabled. So, it's enabled.<br>[16:35] Then I can go into the Open Code and I<br>[16:39] can in planning mode, so I don't want it<br>[16:40] to do anything just yet. I want to check<br>[16:43] it's enabled in the file.<br>[16:46] So, the way that I'm going to do that is<br>[16:49] just by<br>[16:51] choosing I can choose a any model I want<br>[16:53] as well. So, that's all the OpenRouter<br>[16:56] options, loads and loads of different<br>[16:57] LLMs to choose from. Just going to go<br>[17:00] Claude cuz it's obvious and easy.<br>[17:04] And then I can type in my prompt, which<br>[17:06] I'm just going to ask and I found this<br>[17:07] is quite a good way to get started. What<br>[17:09] is the name of my current open Penpot<br>[17:12] file? So, I'm just checking that<br>[17:13] everything's working as expected.<br>[17:16] And this is actually as it happened in<br>[17:17] real time. I didn't speed it up or<br>[17:19] anything.<br>[17:20] Your current open Penpot file name is<br>[17:23] design mocks. And so that is how we get<br>[17:25] from<br>[17:26] starting up with just an MCP key<br>[17:29] and there is very little code involved.<br>[17:32] It's really just a bit of copy pasting<br>[17:34] and formatting.<br>[17:36] Um and that is our result.<br>[17:39] Yeah, that's the hello world test.<br>[17:43] It it it it very much is that. Um I<br>[17:45] wanted to um<br>[17:47] jump back to some questions that I had<br>[17:49] for you um<br>[17:51] Juan, about the LLMs cuz I was talking<br>[17:53] about using OpenRouter<br>[17:56] for um because the benefit of that I<br>[17:58] think actually you recommended<br>[18:00] OpenRouter to me. Um is that it can<br>[18:03] automatically choose between different<br>[18:05] models for you<br>[18:07] or you can choose the model that you<br>[18:09] want to use. So, which LLMs have you<br>[18:12] found most successful with Penpot MCP in<br>[18:15] your experience?<br>[18:17] Uh yeah, OpenRouter is a a really good<br>[18:19] provider.<br>[18:20] Um first of all, as we can saw, MCP<br>[18:23] works with uh<br>[18:25] any<br>[18:27] MCP compatible client. This is key<br>[18:29] because uh you can plug in different<br>[18:32] models depending on your needs.<br>[18:34] Uh that said, model quality does matter<br>[18:38] more than people sometimes expect.<br>[18:41] Uh for best result, you should use a<br>[18:43] strong model with high quality inference<br>[18:46] setup, which means that the more<br>[18:49] This is yeah, this is a bit complex to<br>[18:51] explain, but let's say that the more<br>[18:54] complex the task, especially uh anything<br>[18:57] involving I don't know,<br>[18:58] multi-step uh reasoning or design to<br>[19:02] code transformation, for example, the<br>[19:04] more the model will directly impact the<br>[19:07] quality of the output. And also, if your<br>[19:10] workflow involves like visual<br>[19:11] understanding<br>[19:13] using a vision language model, now<br>[19:16] it's not like a proper model because all<br>[19:19] the frontier models are multi<br>[19:21] multi-model.<br>[19:23] So, one of these skills of the model<br>[19:26] uh needs to be a vision language<br>[19:29] understanding, a VLM, is essential since<br>[19:32] it allows the AI to interpret design<br>[19:35] elements directly. So,<br>[19:38] in practice, a strong frontier models<br>[19:40] perform significantly better for complex<br>[19:43] workflow and simpler models can still<br>[19:47] work for repetitive or well-defined<br>[19:49] task. What matter most is how well the<br>[19:52] models follows instruction which<br>[19:56] really good providing it providing<br>[19:58] instructions and how effectively it<br>[20:00] interacts with the NCP tools.<br>[20:02] That's the key.<br>[20:03] >> And that's one of the things that's<br>[20:04] worth emphasizing is that Penpot NCP is<br>[20:08] totally agnostic of whatever model and<br>[20:12] whatever client you want to use. I just<br>[20:15] used open router, open code, Claude in<br>[20:19] this instance, but you could use<br>[20:21] anything you want. You could run it with<br>[20:23] a local model on your device if you<br>[20:25] wanted. You<br>[20:27] like it's all possible and Penpot NCP<br>[20:30] does not penalize you for choosing one<br>[20:32] way or the other.<br>[20:34] Exactly. Um yeah,<br>[20:37] as you are saying the the<br>[20:40] the difference between local version of<br>[20:43] the NCP and the remote version.<br>[20:45] You just anticipated my question. Yeah,<br>[20:48] it is because yeah,<br>[20:50] >> that yeah,<br>[20:52] Sorry, but yeah, the local NCP server<br>[20:56] runs on your machine and connects<br>[20:58] directly to the SAS version of Penpot or<br>[21:01] but also with your with your local<br>[21:02] Penpot instance as you said.<br>[21:04] Is<br>[21:05] reading your file system. This is the<br>[21:08] the key benefit and the remote NCP<br>[21:10] server not but is hosted on Penpot<br>[21:12] servers elsewhere<br>[21:14] and connects to Penpot over the network.<br>[21:19] Great.<br>[21:20] So, I think this is a really good time<br>[21:23] to say to people,<br>[21:24] if you want to ask questions throughout<br>[21:26] the stream, you have any niggling<br>[21:28] questions or anything that hasn't<br>[21:30] already been answered<br>[21:32] >> [laughter]<br>[21:32] >> in the stream by Pablo, then<br>[21:35] jump in to whatever platform that you<br>[21:37] are watching this on and ask us away. We<br>[21:41] are here live right now and if we don't<br>[21:44] get to your question live, we will also<br>[21:46] try to answer it later on down the line.<br>[21:49] Uh great. Here's a good question um from<br>[21:52] Mana Marketing.<br>[21:54] Can you use skills or markdown files to<br>[21:57] prepare the LLM for its Penpot work?<br>[22:01] That's a good question for you, Juan. I<br>[22:02] know you've been diving into skills.<br>[22:05] Yes.<br>[22:06] Um<br>[22:08] Yeah, of course you can because again,<br>[22:11] it depends on your ticket stack. So, for<br>[22:14] the vast majority of task, Penpot<br>[22:17] provides enough context to the model to<br>[22:20] successfully complete the task. So,<br>[22:23] yeah, you need to perform. But of<br>[22:25] course, you can create your own skills<br>[22:27] and apply them to your workflows if that<br>[22:29] gives you<br>[22:31] more advantages.<br>[22:32] So, yeah, I I did. I create myself. I<br>[22:36] have a repo with my own skills. I can<br>[22:38] share with you you want.<br>[22:40] But they are really easy to create<br>[22:42] because yeah, created them is very<br>[22:45] simple thanks to the to the Penpot<br>[22:48] plugin API documentation. You can give<br>[22:50] it to the to the LLM and ask to generate<br>[22:53] a new skill based on it.<br>[22:55] Yeah, and in in most situations a skill<br>[22:58] is<br>[22:59] essentially just a markdown file that's<br>[23:01] got a bit of<br>[23:02] YAML or something at the top of it to<br>[23:06] speak so that it gets picked up at the<br>[23:07] right time. It's<br>[23:09] often nothing more advanced than that.<br>[23:10] It can be really simple. But I think one<br>[23:12] of the techniques that you recommended<br>[23:14] to me is just keeping a long sort of<br>[23:17] copy paste document of all of your<br>[23:18] successful prompts and relying on going<br>[23:21] back to that and picking out the things<br>[23:22] from the what works.<br>[23:24] Yeah, absolutely. Yeah.<br>[23:26] That's why well,<br>[23:28] and the thing is that now is skills are<br>[23:32] like the trend and is the best way to<br>[23:35] approach this, but I'm sure that in a<br>[23:37] close future we have a new<br>[23:40] methodologies to do that. I'm sure.<br>[23:43] >> Yeah, it's I guess it's always where<br>[23:46] there's resource to be provided, there<br>[23:48] are people doing it for the right<br>[23:50] reasons and the wrong reasons.<br>[23:51] >> [laughter]<br>[23:53] >> Okay, well, how about we dive into some<br>[23:56] practical use cases for AI workplace?<br>[24:00] Let's go.<br>[24:04] >> [music]<br>[24:09] >> So, I'm going to return into this file.<br>[24:12] I don't know if you remember this. This<br>[24:13] I made very long time ago, probably one<br>[24:16] of the earliest hands-on. I created this<br>[24:18] demo file.<br>[24:19] And I'm going to show you a little<br>[24:21] example of what you can do from design<br>[24:23] to design as we would call it. So, this<br>[24:26] is basically working up a design inside<br>[24:29] of Penpot and using the client. So, I'm<br>[24:32] going to start off just with this file.<br>[24:35] It has no design tokens in it and I'm<br>[24:38] going to do a little prompt for it and<br>[24:41] I'm basically saying, can you create me<br>[24:43] some design tokens for the colors<br>[24:48] in this file. I've just got with one<br>[24:50] parameter to make it a bit more<br>[24:51] straightforward.<br>[24:53] I want you to use a particular naming<br>[24:56] structure for the design tokens. Make<br>[24:59] sure you apply them and organize them<br>[25:01] into a token set and do not create any<br>[25:04] themes because it will be tempting if<br>[25:07] there's light and dark mode involved.<br>[25:10] And so then<br>[25:12] the<br>[25:14] agent starts thinking<br>[25:16] and it starts outlining. Oh, yes, this<br>[25:18] is what I'm going to do. I've come up<br>[25:19] with a bunch of hex codes and I've<br>[25:21] worked it out. And it actually asked me<br>[25:23] some questions to get some feedback on<br>[25:26] what's going on. So, do I want to use<br>[25:29] the UI Chrome or do I want and do I want<br>[25:31] to include the avatars? And it also asks<br>[25:33] me, should I use a naming structure with<br>[25:35] light in the name? And so I say, yes,<br>[25:39] I'll go for that and it continues on<br>[25:42] from there. It continues with thinking<br>[25:45] and it starts a little to-do list. It<br>[25:47] starts executing it and you can see the<br>[25:49] design tokens magically appearing. Um<br>[25:52] and as random items get selected on the<br>[25:55] canvas, this is not by me. This is the<br>[25:57] agent at work and it is as it's going<br>[26:01] through checking and applying all of the<br>[26:04] design tokens to the relevant parts of<br>[26:07] the design.<br>[26:08] And then it gives me a little summary of<br>[26:12] what it's done and it gives me some of<br>[26:14] the design decisions worth flagging,<br>[26:16] some of its naming conventions that it's<br>[26:18] used and I can go in and I can see,<br>[26:20] look, if I select that,<br>[26:22] the design tokens have been applied and<br>[26:24] they've got nice semantic names based on<br>[26:27] the naming structure that I provided to<br>[26:29] them as well.<br>[26:31] So, I thought, okay, I'll<br>[26:33] keep going with this and I'm going to<br>[26:36] now give it a prompt where I ask it to<br>[26:38] create a dark mode as well.<br>[26:42] And it asks me<br>[26:43] which inspiration should the dark<br>[26:45] palette follow? And one of the<br>[26:48] suggestions it made was Chakra Chakra<br>[26:51] UI's way of doing dark mode or I could<br>[26:54] go with neutral dark grays or a true<br>[26:56] black with deep accents.<br>[26:59] And so I think I would just go for the<br>[27:02] Chakra UI option<br>[27:04] because it's the easiest one to go for.<br>[27:09] And so I say, go for it. And then it<br>[27:12] says, oh, how should I do treat these<br>[27:14] particular tinted color cards? Should I<br>[27:16] make them a deep version of the color? I<br>[27:18] say, yes.<br>[27:19] And it then goes and it creates me a<br>[27:23] dark mode.<br>[27:24] So, it is following the Chakra UI<br>[27:27] dark mode kind of that tinted purpley<br>[27:29] blue styling which works quite well with<br>[27:31] my light mode.<br>[27:32] And then it summarizes<br>[27:35] what it's said doing for me.<br>[27:38] It's saying, oh, I've done it and you<br>[27:41] need to think about these bits of the<br>[27:42] design. Um I can see a potential issue.<br>[27:45] This is everything that I've done,<br>[27:47] everything that I've applied it to and I<br>[27:48] can look in the dark token section and<br>[27:51] the light token section and see all of<br>[27:53] those new tokens have been created for<br>[27:56] me and they're semantic and they're<br>[27:57] actually useful and they're actually<br>[27:59] following the naming structure that I<br>[28:02] wanted. Which I think is incredibly<br>[28:05] >> [laughter]<br>[28:06] >> useful to be able to do that kind of<br>[28:08] really repetitive<br>[28:10] work, isn't it?<br>[28:12] Yeah, what a good example.<br>[28:16] Well, we thought that<br>[28:18] maybe we could show you some other<br>[28:21] examples as well in the future. We've<br>[28:24] got some um<br>[28:27] we've got this demo that Juan made<br>[28:29] earlier because nobody does<br>[28:32] the design to code better. So,<br>[28:35] here it is showing. Juan, do you want to<br>[28:36] talk us through what's going on there?<br>[28:39] Yeah, so we<br>[28:41] we created the design of this music<br>[28:43] album in the writing Penpot without the<br>[28:45] UI. We are in the focus mode and no<br>[28:48] distraction mode and we asked the cursor<br>[28:52] in this case<br>[28:54] to recreate the design into HTML and<br>[28:57] CSS.<br>[28:59] And as you can see,<br>[29:01] we are now opening the this the HTML<br>[29:05] and you can see in the right now is<br>[29:07] Firefox and it is completely<br>[29:11] navigable, clickable and it respects the<br>[29:15] the design like pixel perfect and you<br>[29:18] can see all the code that it<br>[29:20] generate and we have also the rest of<br>[29:23] the of the screen done in HTML and CSS.<br>[29:29] And but the most important thing here is<br>[29:32] the<br>[29:34] the the simplicity and also the the the<br>[29:38] way that the agent<br>[29:41] represents<br>[29:43] the design like perfect.<br>[29:46] Which is yeah, with a single prompt in<br>[29:48] this case.<br>[29:51] Have you done very much making<br>[29:54] responsive designs with this? Have you<br>[29:57] Do you have any advice if anyone wants<br>[30:00] to try like working with things like<br>[30:03] breakpoints?<br>[30:05] Well, um in that case,<br>[30:08] um<br>[30:09] my recommendation is to design the the<br>[30:13] breakpoints in Penpot, like the media<br>[30:15] queries if you want to to name it.<br>[30:18] Um because<br>[30:20] uh all the context you can give to the<br>[30:21] LLM, I mean the visual context,<br>[30:24] uh<br>[30:25] it makes the difference. So,<br>[30:27] uh it will represent all the, you know,<br>[30:30] all the adapted and fluid design much<br>[30:33] better if you create every media query<br>[30:35] you need to<br>[30:37] to, yeah, to do in in code. So, it's<br>[30:40] like when when we in the past as<br>[30:42] designers get all these uh handoff<br>[30:45] documentation.<br>[30:47] So,<br>[30:48] that's matter a lot. Yeah.<br>[30:51] Would you So, would you have a separate<br>[30:52] board for each breakpoint or something<br>[30:55] like that? Yeah.<br>[30:57] Yeah. Mhm.<br>[30:58] >> Yeah. So, a practical way of doing it.<br>[31:00] Do we have any questions when it comes<br>[31:03] to the use cases for AI workflows?<br>[31:11] Okay.<br>[31:12] >> [laughter]<br>[31:12] >> Well, I think the questions are all<br>[31:14] getting answered for us all on behalf,<br>[31:16] so we don't need to<br>[31:18] respond to any.<br>[31:20] Um<br>[31:21] Okay. Well, I don't know. Why don't we<br>[31:23] dive into some of the nerdier details<br>[31:26] when it comes to AI workflows best<br>[31:29] practices and risks?<br>[31:32] Yes, let's go.<br>[31:41] So, let's talk a bit about one thing<br>[31:44] that<br>[31:45] uh most people missed, but it's really<br>[31:47] important.<br>[31:49] Because uh good prompting is, you know,<br>[31:53] a good way to think about prompting is<br>[31:55] you are not giving instructions to a<br>[31:57] tool.<br>[31:58] You are uh briefing a collaborator in<br>[32:01] some<br>[32:02] in some way. So, the biggest mistake<br>[32:04] people make is being too vague or<br>[32:07] expecting perfect results in one shot.<br>[32:10] So, the practices uh we listed here in<br>[32:13] this cheat sheet, as you can see, uh<br>[32:16] well, of course we are going to share<br>[32:18] all these stuff with you. Um all the<br>[32:21] practices we listed here uh<br>[32:24] all come down to one idea, which is<br>[32:28] reduce ambiguity and guide the process.<br>[32:31] We can<br>[32:35] Laura did that she starts all the<br>[32:38] prompts like act as a<br>[32:40] uh senior developer or act as a<br>[32:44] um uh product designer.<br>[32:46] Start, you know, defining a role give<br>[32:49] context, but not just this like<br>[32:53] structuring prompts gives clarity and<br>[32:56] asking for a reason<br>[32:58] uh gives you control. And maybe the most<br>[33:01] important one is<br>[33:03] uh treat it as a iterative projects.<br>[33:06] Iterative, the, you know, to iterate to<br>[33:08] iterate.<br>[33:09] >> Yeah. Going over and over again. Yeah.<br>[33:11] >> Yeah, exactly. Not one shotting it<br>[33:13] because the first output is almost never<br>[33:16] the final one. And it's part of the<br>[33:20] workflow. So, yeah.<br>[33:23] Uh this is my my<br>[33:27] uh yeah, advice for you, but also<br>[33:30] I can talk a bit about token aware if<br>[33:33] you want, Laura.<br>[33:34] Yeah, yeah. Please do, yeah.<br>[33:37] So, yeah.<br>[33:39] Here we have the yeah, another cheat<br>[33:43] sheet, another reference uh guide for<br>[33:46] you.<br>[33:47] In this case, uh we're talking about<br>[33:50] token aware because nowadays tokens are<br>[33:52] like the new Bitcoin, right?<br>[33:55] Yeah.<br>[33:57] >> [laughter]<br>[33:57] >> Token aware prompting is about reducing<br>[34:00] the waste and increasing clarity, as you<br>[34:03] can imagine. So, every unnecessary word,<br>[34:07] repetition, or bad instructions consume<br>[34:10] tokens without improving the result. So,<br>[34:14] uh even sometimes make it worse.<br>[34:17] The goal here is is simple.<br>[34:20] Less noise and more structure. And<br>[34:23] again, Penpot here helps a lot because<br>[34:26] of its uh<br>[34:28] structure in the in the file, the file<br>[34:31] structure. So, most prompts<br>[34:33] uh become inefficient because of<br>[34:37] uh I don't know, overly verbose<br>[34:40] instructions, unnecessary formatting, or<br>[34:44] explanations. Long repetitive list, uh<br>[34:48] duplicated or conflicting<br>[34:50] rules. I don't know. You know what I<br>[34:52] mean. Uh in practice, shorter and more<br>[34:55] structured prompts tend to perform<br>[34:58] better, more consistently, and be easier<br>[35:01] to debug. So, yeah. Um You wouldn't<br>[35:04] think it either. It's funny, you'd think<br>[35:06] when you first started learning it,<br>[35:08] you'd think, "Well, surely the more<br>[35:09] information I give it, the better."<br>[35:11] Exactly. No, no, no, no.<br>[35:13] The I mean, for example, most people<br>[35:16] start like<br>[35:18] telling<br>[35:19] uh their lives to the chat, which<br>[35:21] [laughter] I mean,<br>[35:22] it's good like, "I'm having some<br>[35:24] troubles because I think that probably I<br>[35:26] need to approach this in this way not in<br>[35:28] this other way." But doesn't matter to<br>[35:31] the LLM. So, please make a list and give<br>[35:34] it the proper structure, quite and<br>[35:36] concise, and uh<br>[35:39] yeah, in in the end, you are going to to<br>[35:42] reduce the the token consumption.<br>[35:45] Yeah, which in turn makes it more<br>[35:47] affordable,<br>[35:48] which in turn also reduces the<br>[35:50] computational and energy expense of your<br>[35:53] prompts. I<br>[35:56] I was telling you all earlier that I was<br>[35:58] trying to um<br>[35:59] get build a system using a prompt, and I<br>[36:03] ended up burning through about $10 of<br>[36:05] tokens. Um it was<br>[36:08] unbelievable.<br>[36:09] And well, I guess we know that I used<br>[36:12] too many words<br>[36:13] >> [laughter]<br>[36:13] >> when few would do.<br>[36:15] That's the trend in everything I do.<br>[36:18] And of course, tokens are becoming more<br>[36:21] expensive Yes. every day, but uh you can<br>[36:25] start reducing that that token<br>[36:27] consumption uh by doing<br>[36:30] proper uh<br>[36:31] prompting.<br>[36:33] Yeah. Yeah. And and learning a lot from<br>[36:36] that. And I guess that<br>[36:38] brings me to a next question,<br>[36:41] which I think is an important discussion<br>[36:42] to have. It's like, what are some of the<br>[36:44] pitfalls that you've come across in AI<br>[36:48] workflows? Like, what can't it do?<br>[36:52] Well,<br>[36:54] um there are a few recurring issues.<br>[36:59] Uh first,<br>[37:00] not understanding what MCP actually<br>[37:02] expose. People like magic instead of a<br>[37:06] tool interface. So, first thing's first.<br>[37:10] Uh Penpot MCP<br>[37:12] uh<br>[37:13] is developed on top of the plugins API<br>[37:16] of Penpot, so learn how it works, which<br>[37:19] is really easy.<br>[37:21] And really straightforward. And the the<br>[37:24] second advice probably<br>[37:26] would be like, yeah, again, writing<br>[37:29] prompts that don't align with the<br>[37:33] available actions or data is is a<br>[37:36] pitfall.<br>[37:37] And<br>[37:40] um expecting the AI to infer structure<br>[37:43] that isn't clearly defined in the<br>[37:45] design. Yeah.<br>[37:46] >> start from your design, structure it<br>[37:49] properly, and then this is<br>[37:51] the best context you can give to the LLM<br>[37:54] in order to get a good output.<br>[37:57] Uh if anyone has been taking the UI<br>[37:59] design with Penpot course with me, you<br>[38:02] know that I have been banging on the<br>[38:04] drum of organizing your Penpot files,<br>[38:07] organizing your layers. Uh it doesn't<br>[38:09] just help when you get to the layout<br>[38:11] stage, but it helps provide all of these<br>[38:13] little bits of information<br>[38:15] to the agent to understand what's going<br>[38:17] on inside your file and what your<br>[38:19] intention actually is with that file.<br>[38:23] Um I think one of the problems is<br>[38:25] there's a huge amount of marketing out<br>[38:27] there when it comes to AI workflows, and<br>[38:30] most of it is<br>[38:32] you see a prompt that is a few words<br>[38:34] long, and it says, "Make me a magical<br>[38:37] app." Yeah. And poof, it makes a magical<br>[38:40] app.<br>[38:41] And<br>[38:43] that's not really<br>[38:45] it's not really something that we want<br>[38:46] to do<br>[38:47] with Penpot MCP, is it? And it's not<br>[38:49] really something that the majority<br>[38:51] designs and developers would be looking<br>[38:53] to do, is it?<br>[38:54] That is not the objective of the MCP in<br>[38:56] Penpot. Penpot is a professional um tool<br>[38:59] for design and developers also, but<br>[39:02] mainly for design and design systems.<br>[39:04] So, if you wanted to work properly,<br>[39:08] start doing a professional work. I mean,<br>[39:10] >> [laughter]<br>[39:11] >> what you generate is you want to<br>[39:12] generate something, probably you need to<br>[39:15] use other experimental tools out there.<br>[39:18] But<br>[39:19] uh the in Penpot, of course, you can<br>[39:21] generate designs, for sure, but uh<br>[39:25] you need to structure your design<br>[39:27] properly because it's a good practice.<br>[39:30] Yeah.<br>[39:31] >> It's better for you. For your future.<br>[39:33] I think that is one of the real<br>[39:35] limitations of these workflows and of<br>[39:38] using LLMs<br>[39:40] is it is basing its understanding on<br>[39:42] what is already out there. What already<br>[39:44] exists. And so if you are asking it to<br>[39:47] generate something with providing very<br>[39:49] little context or useful information on<br>[39:52] your side from your penpot file, then<br>[39:55] what it will do is it will make it up<br>[39:57] based on what is already out there.<br>[39:59] Based on a sum of averages, based on<br>[40:02] what is most popular, what is most<br>[40:04] generic, to some degree out of date as<br>[40:06] well depending when the training data<br>[40:08] came in.<br>[40:09] And so there's a reason why a lot of<br>[40:12] these AI outputs look a lot like<br>[40:14] Tailwind or Shadcn<br>[40:17] and or something like that because<br>[40:19] there's a huge amount of apps and sites<br>[40:22] out there using these things. And that's<br>[40:25] great if you want to produce something<br>[40:28] that looks like everything else.<br>[40:30] Um but I guess as professional designers<br>[40:34] we're usually trying to solve a specific<br>[40:36] problem that isn't solved with a generic<br>[40:39] answer.<br>[40:40] >> [laughter]<br>[40:41] >> Yeah, absolutely. Even if you like look<br>[40:44] in the the result that other people are<br>[40:46] getting from other other tools, you can<br>[40:49] feel the flavor, right? You can see that<br>[40:51] this is made by the cloud or this is an<br>[40:53] open AI thing because you can feel the<br>[40:55] flavor in the UI. It's always the same.<br>[40:58] So this is not professional design. This<br>[41:00] is uh of course this is<br>[41:03] I'm not saying that don't to use it but<br>[41:05] it's not for professional use.<br>[41:08] Yeah. I think one of the great<br>[41:10] interesting areas of research I've heard<br>[41:12] out of the design systems community is<br>[41:15] the idea around providing additional<br>[41:19] very data-based structures about your<br>[41:23] design system, explaining things like um<br>[41:26] the guidance on how things should be<br>[41:28] used, when and where should components<br>[41:31] should be used, how patterns should be<br>[41:33] made up of multiple components, uh when<br>[41:36] which variant should be used. I mean<br>[41:38] able to provide all of this information<br>[41:41] in an easily like something that's<br>[41:43] easily readable<br>[41:45] as a data format<br>[41:47] to agents to get the real benefits out<br>[41:49] of your design system. And I think<br>[41:51] that's a really interesting approach to<br>[41:53] design work in general. It's like<br>[41:56] semantics plus plus<br>[41:58] really.<br>[42:00] We are currently in Penpot.<br>[42:02] in Penpot. Oh, yeah.<br>[42:03] >> Yeah. That's cool.<br>[42:05] Yeah, yeah.<br>[42:06] >> examples?<br>[42:08] Yeah, yeah, yeah. We are giving you<br>[42:10] know, it's only for international use<br>[42:11] where we are we are currently developing<br>[42:14] new features in Penpot and we also<br>[42:17] create this markdown files for for the<br>[42:21] agents to to follow the instructions.<br>[42:23] But again, it's not<br>[42:26] just to follow trends which is cool to<br>[42:29] know about them.<br>[42:31] Uh but it's better to have your you<br>[42:35] know, your own proper workflow with<br>[42:38] governance, with proper naming<br>[42:40] convention, with proper use of<br>[42:42] components and variants and yeah, that's<br>[42:45] a scalable. The other way is just<br>[42:47] playing.<br>[42:49] Yeah. And it's kind of a reminder that<br>[42:52] the design process isn't just you think<br>[42:55] of an idea and a magic product appears<br>[42:59] at the end. Like the design process is<br>[43:00] all of those little design decisions<br>[43:03] along the way. It's the communication<br>[43:05] that you're having with other people on<br>[43:07] your team. It's learning from other<br>[43:09] people's like experience and skills and<br>[43:14] understanding. And so if you can bring<br>[43:17] all of that with you<br>[43:19] to using the MCP, then you could be on<br>[43:23] fire.<br>[43:24] >> [laughter]<br>[43:24] >> in a good way.<br>[43:29] >> [sighs]<br>[43:30] >> Okay, great. Okay, well how about we<br>[43:33] jump into the Q&A section?<br>[43:38] The big one.<br>[43:49] And as the live banner said, anything we<br>[43:52] do not cover live will be covered in the<br>[43:54] community.<br>[43:56] Okay, great. We have a question and oh,<br>[44:00] this is good. It's one that is always<br>[44:03] worth re-emphasizing.<br>[44:05] Do I need to use Penpot MCP with a<br>[44:08] specific client or LLM one?<br>[44:13] No. Penpot MCP is client agnostic as you<br>[44:18] said and so you can use any MCP<br>[44:21] compatible client. Just make sure you<br>[44:25] are using a compatible model especially<br>[44:28] for more complex workflows but you can<br>[44:31] use whatever you want.<br>[44:34] Great. So that's good to know that you<br>[44:35] can just get started. And you can get<br>[44:37] started today as well.<br>[44:39] And how should teams structure their<br>[44:43] design files in Penpot to get better<br>[44:46] results from AI workflows? So we kind of<br>[44:48] mentioned<br>[44:50] labeling your layers. Is there any other<br>[44:52] tips that you would give with regards to<br>[44:54] you maybe pages and boards and those<br>[44:56] kind of structures?<br>[44:58] I think in general<br>[45:00] use clear hierarchy.<br>[45:02] Consistent naming and reusable<br>[45:05] components<br>[45:07] so the AI can understand relationships.<br>[45:10] Uh<br>[45:11] messy or ambiguous files will lead to<br>[45:14] unreliable outputs.<br>[45:17] Right. And so obviously we showed that<br>[45:20] it works very well with design tokens<br>[45:22] earlier. Um and so it works equally well<br>[45:26] with components and libraries. Um if<br>[45:29] you're using multiple libraries<br>[45:30] connected to your files, do you need to<br>[45:32] do anything different for that or is it<br>[45:34] just the same as you would for<br>[45:36] communicating with another human?<br>[45:38] This is No, this is really important<br>[45:40] because you mentioned set of libraries.<br>[45:42] The MCP also<br>[45:45] learn and use from the set of libraries.<br>[45:47] The MCP<br>[45:48] the Penpot MCP has the capacity to go<br>[45:51] throughout all the files in your team.<br>[45:53] So if you connect uh two or three set<br>[45:56] libraries, let's see the two parts of<br>[45:58] other design system or an icon set or<br>[46:00] whatever, you can use it through the<br>[46:03] through the MCP asking the LLM. So it's<br>[46:06] really important to to clarify this<br>[46:08] structure.<br>[46:10] Actually in many ways it could be a way<br>[46:12] for you to find out more about your file<br>[46:14] as well. If you just opened up a file<br>[46:16] shared with someone like someone else on<br>[46:18] your team shared a file with you, you<br>[46:21] could ask it lots of questions about the<br>[46:23] structure and the setup of the file<br>[46:25] >> [laughter]<br>[46:25] >> and the MCP could tell you exactly<br>[46:27] what's going on without you having to<br>[46:28] hunt around for it. So Yeah. As we<br>[46:31] providing it's been organized well.<br>[46:33] >> [laughter]<br>[46:33] >> Yeah, it's like coding. You can ask the<br>[46:36] what piece of this piece of code what is<br>[46:39] meant for. So you can do it the same<br>[46:41] with a with the components or with a<br>[46:44] screen or I don't know.<br>[46:46] I have a question This is just a<br>[46:47] question that's come out of my head<br>[46:49] just now. And so I'm wondering about<br>[46:51] things like using flex layouts and grid<br>[46:54] layouts in your design. Like a lot of<br>[46:57] the examples I've seen other people<br>[46:59] create with LLMs and other design tools,<br>[47:02] they're producing quite static files.<br>[47:05] Things where items are like positioned<br>[47:08] absolutely or statically on a canvas.<br>[47:10] And there's not really much that can be<br>[47:14] made responsive out of it. Does Penpot<br>[47:17] MCP help you do that?<br>[47:19] Yeah, yeah. By default<br>[47:21] if you ask Penpot<br>[47:24] through the MCP MCP to generate a new<br>[47:27] layout, it will follow<br>[47:30] mainly flex and grid layout depends on<br>[47:33] what is better to to implement. So yeah.<br>[47:37] Also if you ask it to uh<br>[47:41] position absolute an element, you can<br>[47:45] see that the MCP probably inferred that<br>[47:50] you are you want to use flex layout. If<br>[47:53] you I mean talking into UI design. You<br>[47:56] can of course generate like no no poster<br>[47:59] designs or uh<br>[48:01] you know, graphic designs not only<br>[48:05] interface design but if you are asking<br>[48:07] the LLM<br>[48:09] to create or generate or reuse<br>[48:11] components for a you new UI screen,<br>[48:14] probably it leads you to use<br>[48:17] uh<br>[48:17] flex layout and grid layout. Yeah, it<br>[48:20] encourages you to use best practices. I<br>[48:22] actually noticed that when I was trying<br>[48:24] to create the design where I was getting<br>[48:26] it to generate uh light tokens and dark<br>[48:29] tokens inside of the same token set and<br>[48:32] using naming to separate them. And it<br>[48:35] actually when I was looking through what<br>[48:37] the LLM had thought, it said<br>[48:39] uh maybe you don't want to do this<br>[48:42] because the recommended way of creating<br>[48:45] color modes in Penpot is to use separate<br>[48:48] token sets for each color mode and to<br>[48:51] use themes to switch between them which<br>[48:53] of course is what I tell everyone to do<br>[48:55] in the other hands-on sessions and the<br>[48:57] videos. Um and the agent called me out<br>[49:00] on that.<br>[49:01] That that's probably the<br>[49:05] the<br>[49:06] way that I use MCP for<br>[49:10] the the most of the time. Every day.<br>[49:12] Every day I used MCP to to token<br>[49:14] relation. I mean<br>[49:16] to generate new token sets, new brand<br>[49:19] sets, apply new tokens, infer tokens<br>[49:23] every day because it's really you know,<br>[49:24] it's really helpful for that.<br>[49:27] Yeah, it's a lot of work and while it's<br>[49:29] important that we make the decisions<br>[49:32] design decisions around it ourselves and<br>[49:34] we understand like the implications of<br>[49:36] what we're doing and<br>[49:38] the sort of hierarchy design and<br>[49:40] information design is a big part of<br>[49:43] design.<br>[49:44] But, it's the repetitive creating of<br>[49:47] individual tokens. I think we as pattern<br>[49:50] matching machines as humans struggle for<br>[49:52] consistency. Me trying to create a<br>[49:55] design tokens set from scratch, I cannot<br>[49:57] tell you how many times I remap those<br>[49:59] tokens because I've renamed them a<br>[50:01] million times over. So, if I could at<br>[50:03] least get a sort of a clear naming<br>[50:05] structure in my head and out there, then<br>[50:07] I can let it do the rest for me.<br>[50:10] Yeah, I know it's amazing to see how it<br>[50:13] generates also. For me, for example,<br>[50:15] it's a pain is because it's a repetitive<br>[50:17] task to generate new variants for a from<br>[50:20] a component.<br>[50:21] And I ask uh the LLM to follow the the<br>[50:25] styles in my in my Penpot file. And it's<br>[50:30] really good to see that with a simple<br>[50:32] prompt it applies all the styles with<br>[50:35] the tokens.<br>[50:36] Um<br>[50:37] yeah, it fits perfect. So,<br>[50:40] yeah. Yeah, I suppose if you provide it<br>[50:42] with say a variant example of sort of<br>[50:45] all of the extremes of the variants,<br>[50:48] then it can work out how to cross<br>[50:50] combine the like if you've got multiple<br>[50:53] variants options inside of one<br>[50:56] component. Mhm.<br>[50:57] >> That's so cool. I have to try that out.<br>[51:00] Yeah.<br>[51:00] >> Um so, do we have folks any more<br>[51:02] questions before we start wrapping up<br>[51:06] up?<br>[51:07] What's the biggest mistake people make<br>[51:09] when they start using MCP with AI<br>[51:12] agents? Well, we've gone over very long<br>[51:16] uh long-winded prompts and talking to it<br>[51:18] like it's uh another human being. Can<br>[51:21] you think of anything else you've seen,<br>[51:22] Juan? Yeah, it's<br>[51:25] we already comment a lot in it. Um<br>[51:29] the the bigger mistake probably is that<br>[51:31] they treat it like magic instead of a<br>[51:35] tool with constraints and expect like<br>[51:39] perfect results in one step.<br>[51:41] That probably<br>[51:43] Mhm.<br>[51:44] Yeah, it's it's a mistake. The right<br>[51:46] approach is to break uh problems into<br>[51:49] smaller workflows and iterate.<br>[51:51] Mhm.<br>[51:52] That actually makes me think I think we<br>[51:54] might have a video<br>[51:57] that perfectly illustrates the idea of<br>[52:02] understanding using the right tool for<br>[52:04] the job.<br>[52:05] >> [laughter]<br>[52:06] >> Yeah. Uh do we have a We have that video<br>[52:08] um left over, folks.<br>[52:16] >> [music]<br>[52:24] [music]<br>[52:29] [music]<br>[52:48] [music]<br>[53:01] [music]<br>[53:25] [music]<br>[53:30] [music]<br>[53:39] >> That was fabulous. I hadn't actually<br>[53:41] seen that video yet, and it really<br>[53:44] illustrates a lot of the points you're<br>[53:45] making about the syntax and things like<br>[53:48] that.<br>[53:48] Yeah, this is a an example that we did<br>[53:52] like a few days ago.<br>[53:54] And it shows like Penpot uh<br>[53:57] as we were talking, Penpot uh stands out<br>[54:00] in agentic AI because<br>[54:03] is LLM agnostic and uses strong semantic<br>[54:06] design as code as a model.<br>[54:08] And here in the samples we can see that<br>[54:12] Penpot lets the the agents to operate<br>[54:14] freely. Uh<br>[54:16] and the resulting is a powerful<br>[54:19] workflow<br>[54:20] that show us that it is interpreting the<br>[54:24] the the prompt<br>[54:26] not only semantically, but<br>[54:29] without errors. Um yeah,<br>[54:32] it's it's amazing to see how other<br>[54:35] experimental design tools that I want to<br>[54:37] call<br>[54:38] like yeah, Stitcher, we can see a<br>[54:40] Stitcher Cloud Design, etc.<br>[54:43] start like<br>[54:45] messing ups the the messing up the<br>[54:47] layout, etc. and Penpot stay doing uh<br>[54:51] great and proper layout. So, it's it's<br>[54:54] really good to see that.<br>[54:56] Absolutely.<br>[54:58] Well, my friends, there you can find<br>[55:00] loads more on uh Penpot and AI workflows<br>[55:05] in the Penpot user guide. There's so<br>[55:06] much great documentation in there. I've<br>[55:08] relied on it a lot. I'm sure you'll find<br>[55:10] it useful as well. On the Penpot blog,<br>[55:13] including posts written by Juan himself.<br>[55:17] And the MCP video playlist will have all<br>[55:20] of the links produced in here as well.<br>[55:24] And that's pretty much all the time we<br>[55:26] have for today. Well done.<br>[55:29] Before I forget,<br>[55:30] if you want to get certified in Penpot,<br>[55:34] you should check out the Penpot<br>[55:36] certification by our friends at CGGE.<br>[55:40] You can get some very cool badges.<br>[55:43] The first module, I think you call a<br>[55:45] module or exam, is available now to take<br>[55:48] for free. See if you can beat me.<br>[55:52] >> [laughter]<br>[55:52] >> It runs alongside the<br>[55:55] UI design with Penpot course. So, um<br>[55:59] the exams will correlate to what you're<br>[56:01] being doing in the course. And I got 99%<br>[56:05] on the first exam. Now, I will leave<br>[56:08] that up to you whether you decide that<br>[56:09] is good or bad, but you should try to<br>[56:11] beat me.<br>[56:13] Thank you so much, Juan, for joining us.<br>[56:16] I hope you'll come back soon.<br>[56:18] And friends in the chat, thank you so<br>[56:21] much for joining us live. Thank you,<br>[56:23] team, for joining and answering so many<br>[56:25] questions. Uh next time leave some for<br>[56:28] the rest of us.<br>[56:29] >> [laughter]<br>[56:30] >> Um you know that you being here live is<br>[56:33] what makes doing these live hands-on<br>[56:36] demos worthwhile.<br>[56:38] And we do appreciate having the team<br>[56:40] here actually answering questions better<br>[56:42] than I possibly could, absolutely.<br>[56:44] So, make sure that you are following us<br>[56:47] or subscribe to us so you can be the<br>[56:49] first to find out when we are next doing<br>[56:52] a live hands-on session, and catch you<br>[56:55] in the Penpot community. Thanks so much,<br>[56:58] folks. Goodbye.<br>[57:00] Bye-bye. <!-- deep-read:sections end -->