<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ZHANG YICHI</title>
    <description>The latest articles on DEV Community by ZHANG YICHI (@zhang_yichi).</description>
    <link>https://dev.to/zhang_yichi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2891399%2F78980883-9f93-4a0f-9dab-c7454093e728.png</url>
      <title>DEV Community: ZHANG YICHI</title>
      <link>https://dev.to/zhang_yichi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zhang_yichi"/>
    <language>en</language>
    <item>
      <title>How I built a free, open-source library of AI slide-deck prompts (120+, by use case)</title>
      <dc:creator>ZHANG YICHI</dc:creator>
      <pubDate>Thu, 15 Oct 2026 07:29:04 +0000</pubDate>
      <link>https://dev.to/zhang_yichi/how-i-built-a-free-open-source-library-of-ai-slide-deck-prompts-120-by-use-case-p8o</link>
      <guid>https://dev.to/zhang_yichi/how-i-built-a-free-open-source-library-of-ai-slide-deck-prompts-120-by-use-case-p8o</guid>
      <description>&lt;p&gt;Every time I needed a deck, I'd open an AI image model and rewrite the same "make me a pitch deck" prompt from scratch — and the output was hit-or-miss. So I started saving the prompts that reliably produced good slides, and eventually organized 120+ of them by use case (pitch, QBR, research, sales, education) and visual style (minimal, dark, corporate, editorial). Every prompt has a preview image.&lt;/p&gt;

&lt;p&gt;It's free and open-source. Here are three that consistently work:&lt;/p&gt;

&lt;p&gt;**1. Minimal SaaS pitch deck&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbpfzbnxxbap6kimoig0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbpfzbnxxbap6kimoig0.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a 10-slide minimal SaaS startup pitch deck. White background, electric blue #0066FF accent. Slide 1: bold product name + one-line tagline, logo placeholder top-left. Slide 2: Problem — 3 pain points with thin line icons. Slide 3: Solution — UI mockup placeholder, 3 labeled callouts. Slide 4: Market Opportunity — TAM/SAM/SOM nested circles with $ values. Slide 5: Business Model — 3-column pricing table, recommended tier highlighted with a badge. Slide 6: Traction — MoM active users line chart, milestone markers. Slide 7: Competitive Landscape — 2x2 positioning matrix vs 4 named competitors. Slide 8: Team — 4 headshot cards, name/title/one-line bio. Slide 9: 3-Year Revenue Forecast — grouped bar chart, CAGR annotation. Slide 10: Close — full-bleed CTA, funding ask amount, contact email. Font: Inter throughout. Consistent header bar with logo + slide number on every slide. Tone: confident, data-driven, investor-ready.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why it works: it names every slide's job (problem, solution, TAM/SAM/SOM, traction, ask) and locks one accent color + one font, so the 10 slides read as a system instead of 10 unrelated images.&lt;/p&gt;

&lt;p&gt;**2. Dark-mode dev-tool launch keynote&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fipa41t8tha2b2ski6fah.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fipa41t8tha2b2ski6fah.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Design a 12-slide dark-mode developer tool launch keynote. Background #0D0D0D, neon green #00FF87 accent. Slide 1: full-bleed hero, product name in JetBrains Mono. Slide 2: Problem — terminal-style error messages as bullet points with red # markers. Slide 3: Product reveal — large screenshot with glowing border and subtle particle effect placeholder. Slides 4-7: four feature slides, alternating code-snippet left / result screenshot right layout. Slide 8: Architecture diagram — dark nodes, luminous connecting arrows, system labels in monospace. Slide 9: Benchmark bar chart — dark bg, green bars vs grey competitor bars. Slide 10: Pricing — 3 dark tier cards, Pro highlighted. Slide 11: GitHub star + Discord join CTA. Slide 12: Launch date countdown closer, full-screen gradient. Font: JetBrains Mono for code elements, Inter for prose. Tone: authoritative, technical, exciting.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why it works: the alternating code-left / screenshot-right rhythm and a single neon accent give it a real keynote cadence; monospace for code vs. Inter for prose keeps hierarchy clean.&lt;/p&gt;

&lt;p&gt;**3. Marketing QBR&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpux8k1t35v87bwo2ymmg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpux8k1t35v87bwo2ymmg.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build a 14-slide Marketing Quarterly Business Review (QBR) deck. Corporate style: white background, bold teal #00BFA5 accents, dark grey header bars. Slide 1: Executive Summary — 6-KPI dashboard cards (MQL, SQL, CAC, LTV, Revenue, NPS). Slide 2: Channel Performance — heat map table, red/amber/green coding. Slide 3: Campaign ROI table sortable by spend. Slide 4: SEO &amp;amp; Organic Traffic — waterfall chart showing channel contributions. Slide 5: Social Media Engagement — dual-axis trend chart (reach vs. engagement rate). Slide 6: Paid Ads — ROAS by channel stacked horizontal bar. Slide 7: Email Funnel — conversion funnel diagram. Slide 8: Competitive Share-of-Voice — pie chart comparison. Slide 9: Wins &amp;amp; Learnings — 2-column table. Slides 10-11: Next Quarter OKRs with quarterly milestone timeline. Slide 12: Budget Request — waterfall bar. Slide 13: Team Highlights. Slide 14: Appendix placeholder. Font: Helvetica Neue. Tone: data-driven, executive-ready.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why it works: it front-loads a 6-KPI executive summary and assigns a specific chart type per slide (heat-map, waterfall, funnel, stacked bar), which is what makes a review deck feel data-driven instead of decorative.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to use:&lt;/strong&gt; copy any prompt → paste into your image model or SurgePix → generate → then edit (swap a chart, retitle a slide, recolor all 12 to match) rather than regenerating and hoping.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://surgepix.ai/resources/awesome-ppt-prompts?utm_source=%E2%80%A6&amp;amp;utm_campaign=ppt_prompts" rel="noopener noreferrer"&gt;Browse the full library (120+, with previews)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source (open, MIT): &lt;strong&gt;&lt;a href="http://github.com/SurgePix/ai-ppt-prompts" rel="noopener noreferrer"&gt;github.com/SurgePix/ai-ppt-prompts&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Contributions welcome — open a PR with a prompt + its output.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How to Turn Any Article Into an Illustration Series with Claude Code</title>
      <dc:creator>ZHANG YICHI</dc:creator>
      <pubDate>Thu, 23 Jul 2026 09:50:37 +0000</pubDate>
      <link>https://dev.to/zhang_yichi/how-to-turn-any-article-into-an-illustration-series-with-claude-code-2jmo</link>
      <guid>https://dev.to/zhang_yichi/how-to-turn-any-article-into-an-illustration-series-with-claude-code-2jmo</guid>
      <description>&lt;p&gt;I never opened a design app for this.&lt;/p&gt;

&lt;p&gt;One prompt in Claude Code, and I had a full set of blog illustrations — a cover image plus three section illustrations — same character, same style, consistent 16:9 layout, ready to drop into a post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmvvoq51zu4idm9stssm8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmvvoq51zu4idm9stssm8.png" alt="AI-generated cover illustration for a blog post about how AI agents use tools via MCP, consistent hand-drawn style" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8n00kf9noiy3sagx9sgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8n00kf9noiy3sagx9sgg.png" alt="Illustration explaining what MCP is, generated by the SurgePix illustration skill in Claude Code" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk96pceclnsgnxxwi855q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk96pceclnsgnxxwi855q.png" alt="Illustration showing how tool calling works between an AI agent and external tools, generated with SurgePix" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0amn5zq7rpyirq8xo7vy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0amn5zq7rpyirq8xo7vy.png" alt="Illustration depicting AI agent security and permission boundaries, part of a consistent illustration set generated by Claude Code and SurgePix" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's the exact setup, in case you want the same thing.&lt;/p&gt;
&lt;h2&gt;
  
  
  The problem with most AI image tools
&lt;/h2&gt;

&lt;p&gt;If you've generated images with an LLM before, you know the annoying part: &lt;strong&gt;consistency&lt;/strong&gt;. Ask for four illustrations on related topics, and you'll usually get four different styles, four different "main characters," sometimes four different color palettes. Fine for a single hero image. Useless for a matching set.&lt;/p&gt;

&lt;p&gt;For a blog post that needs multiple illustrations — a cover plus a few section images — that inconsistency is a dealbreaker. Nobody wants a post where every illustration looks like it came from a different artist.&lt;/p&gt;
&lt;h2&gt;
  
  
  The fix: lock the style into a skill, not a prompt
&lt;/h2&gt;

&lt;p&gt;Instead of re-describing the style every time and hoping the model cooperates, I used &lt;a href="https://surgepix.ai" rel="noopener noreferrer"&gt;SurgePix&lt;/a&gt;'s &lt;code&gt;generate-illustrations&lt;/code&gt; skill for Claude Code. It's one of nine open-source &lt;a href="https://github.com/SurgePix/agent-skills" rel="noopener noreferrer"&gt;agent skills&lt;/a&gt; that let coding agents (Claude Code, Cursor, Codex CLI, Gemini CLI) call SurgePix's image API directly — no browser, no dashboard, just natural language in your terminal.&lt;/p&gt;

&lt;p&gt;The skill handles the consistency problem at the generation level: same character, same linework, same palette, across every image in a set — because the style constraints are baked into how the skill calls the API, not left to chance in a one-off prompt.&lt;/p&gt;
&lt;h2&gt;
  
  
  Setup (3 minutes)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Get your API key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go to &lt;a href="https://surgepix.ai" rel="noopener noreferrer"&gt;surgepix.ai&lt;/a&gt; → Settings → API Management → &lt;strong&gt;+ New Key&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Install the skill&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add SurgePix/agent-skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Set your API key as an environment variable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Windows (PowerShell):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"SURGEPIX_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"User"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mac/Linux (zsh):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export SURGEPIX_API_KEY=your-key'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.zshrc
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Verify&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node surgepix-setup/scripts/check_env.mjs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If that prints your key back, you're done. Restart your terminal/agent if it doesn't pick it up right away.&lt;/p&gt;

&lt;p&gt;Works with Claude Code, Cursor, Codex CLI, Gemini CLI, and any agent that supports the &lt;code&gt;SKILL.md&lt;/code&gt; standard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating the set
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe429454ffpwripy53ohd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe429454ffpwripy53ohd.png" alt="Claude Code terminal showing the prompt to generate a blog illustration set with the SurgePix skill" width="800" height="369"&gt;&lt;/a&gt;&lt;br&gt;
Once it's installed, you don't need to remember any commands — just describe what you want in plain language. Here's the actual prompt I used:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Generate a set of blog illustrations for my post about how AI agents use tools via MCP: one cover, and 3 section images — "what is MCP", "how tool calling works", "security". Use the same character in all four. Consistent hand-drawn style, 16:9.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffsfcfveo6n1k8f2lshk0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffsfcfveo6n1k8f2lshk0.png" alt="Claude Code loading the SurgePix generate-illustrations skill after recognizing the prompt" width="800" height="326"&gt;&lt;/a&gt;&lt;br&gt;
Claude Code recognized the request, loaded &lt;code&gt;surgepix-generate-illustrations&lt;/code&gt;, checked the environment, and generated all four images in one pass — returning a download link when it finished. No manual regeneration, no style drift between images.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3w6bo1jknp7w4y3qmplu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3w6bo1jknp7w4y3qmplu.png" alt="SurgePix skill returning a download link for the completed illustration set in Claude Code" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters beyond illustrations
&lt;/h2&gt;

&lt;p&gt;This is really a pattern, not a one-off trick: &lt;strong&gt;agent skills let you offload an entire workflow — not just a single API call — to natural language.&lt;/strong&gt; The same approach works for other SurgePix skills in the repo: posters, presentations (with real &lt;code&gt;.pptx&lt;/code&gt; export, not just images), background removal, image translation, and more. If you're writing technical content and hand-drawing (or Canva-ing) your own illustrations, this is worth trying.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Full illustration skill demo (video): &lt;a href="https://youtu.be/qBTxv2CVpkM" rel="noopener noreferrer"&gt;https://youtu.be/qBTxv2CVpkM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Skills repo (open source): &lt;a href="https://github.com/SurgePix/agent-skills" rel="noopener noreferrer"&gt;github.com/SurgePix/agent-skills&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Full install + first-generation walkthrough (video): &lt;a href="https://youtu.be/Hk34NWd80XE" rel="noopener noreferrer"&gt;https://youtu.be/Hk34NWd80XE&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href="https://surgepix.ai/blog/developer-guides/install-skills" rel="noopener noreferrer"&gt;surgepix.ai/blog/developer-guides/install-skills&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it and get stuck, drop a comment — happy to help debug.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
