<?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: Hsin Yen Chung</title>
    <description>The latest articles on DEV Community by Hsin Yen Chung (@hsin_yenchung_5562e7d5c9).</description>
    <link>https://dev.to/hsin_yenchung_5562e7d5c9</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3866306%2F0115b75f-35b8-44ac-8cab-307c9180295c.JPG</url>
      <title>DEV Community: Hsin Yen Chung</title>
      <link>https://dev.to/hsin_yenchung_5562e7d5c9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hsin_yenchung_5562e7d5c9"/>
    <language>en</language>
    <item>
      <title>How Our Designer Ships Front-End Changes Without Writing Code</title>
      <dc:creator>Hsin Yen Chung</dc:creator>
      <pubDate>Sat, 11 Apr 2026 22:35:15 +0000</pubDate>
      <link>https://dev.to/hsin_yenchung_5562e7d5c9/how-our-designer-ships-front-end-changes-without-writing-code-5936</link>
      <guid>https://dev.to/hsin_yenchung_5562e7d5c9/how-our-designer-ships-front-end-changes-without-writing-code-5936</guid>
      <description>&lt;p&gt;Our product designer Zain just shipped a front-end change to our web app without writing a single line of code. He typed a request in Slack, and 10 minutes later there was a PR with a live preview environment.&lt;/p&gt;

&lt;p&gt;This post breaks down exactly how we built this system at &lt;a href="https://spuree.com/waitlist" rel="noopener noreferrer"&gt;Spuree&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video walkthrough:&lt;/strong&gt; &lt;a href="https://youtu.be/7_8cApBGWss" rel="noopener noreferrer"&gt;https://youtu.be/7_8cApBGWss&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Workflow in 30 Seconds
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Zain types a request in our #ai-coding Slack channel&lt;/li&gt;
&lt;li&gt;Spuree AI Coder (our AI agent) receives the message&lt;/li&gt;
&lt;li&gt;Agent creates a Linear ticket automatically&lt;/li&gt;
&lt;li&gt;Agent spins up a Claude Code sub-agent in a git worktree&lt;/li&gt;
&lt;li&gt;Sub-agent implements the change, runs prettier, commits&lt;/li&gt;
&lt;li&gt;Agent opens a PR on GitHub&lt;/li&gt;
&lt;li&gt;CI/CD spins up a preview environment&lt;/li&gt;
&lt;li&gt;Zain clicks the preview link, verifies the change visually, and approves — or asks for another iteration&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No IDE. No git commands.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/openclaw/openclaw" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A self-hosted AI agent for automating daily workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code&lt;/td&gt;
&lt;td&gt;Anthropic's coding CLI — does the actual implementation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linear&lt;/td&gt;
&lt;td&gt;Ticket tracking — auto-created per request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub&lt;/td&gt;
&lt;td&gt;PRs, CI/CD, preview environments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slack&lt;/td&gt;
&lt;td&gt;Interface for the team&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spuree&lt;/td&gt;
&lt;td&gt;Storage for agent output, backups, team sharing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  How It Started: A Mac Mini and One Install
&lt;/h2&gt;

&lt;p&gt;A few months ago, I installed OpenClaw on a 2018 Mac mini — a gift from a friend. One line to install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; openclaw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I named it Chung.&lt;/p&gt;

&lt;p&gt;Like onboarding a new employee, I taught it my workflows step by step:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How I review PRs&lt;/li&gt;
&lt;li&gt;How I track Linear tickets&lt;/li&gt;
&lt;li&gt;How I monitor tech blogs&lt;/li&gt;
&lt;li&gt;How I summarize YouTube videos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each workflow became a &lt;strong&gt;reusable skill&lt;/strong&gt; — a markdown file with instructions, scripts, and configuration that the agent follows.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Coding Skill: &lt;code&gt;claude-code-pr&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This is the skill that powers the designer workflow. Here's what it does:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Creates a Linear ticket
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.linear.app/graphql &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: &lt;/span&gt;&lt;span class="nv"&gt;$LINEAR_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"query": "mutation { issueCreate(input: { ... }) { ... } }"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent extracts the &lt;code&gt;branchName&lt;/code&gt; from Linear's response — this ensures branch naming is consistent.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Creates a git worktree
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$REPO_DIR&lt;/span&gt;
git fetch origin main
git worktree add &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;REPO_DIR&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="nt"&gt;-wt-&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;LINEAR_ID&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="nv"&gt;$BRANCH_NAME&lt;/span&gt; origin/main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Worktrees let us work on multiple features in parallel without switching branches in the main repo.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Spins up Claude Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$WORKTREE_DIR&lt;/span&gt;
claude &lt;span class="nt"&gt;--dangerously-skip-permissions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Heads up:&lt;/strong&gt; The &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt; flag lets Claude Code execute commands without asking for confirmation — file writes, terminal commands, all of it. We use this because the agent runs on a dedicated Mac mini with no sensitive data. If you're following along, only use this flag in sandboxed or isolated environments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent sends a structured prompt with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The requirements from the Slack message&lt;/li&gt;
&lt;li&gt;A mandatory completion checklist (commit, PR, cleanup)&lt;/li&gt;
&lt;li&gt;Formatting rules (run prettier before committing)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Creates a PR
&lt;/h3&gt;

&lt;p&gt;Claude Code commits, pushes, and creates a PR with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Summary of changes&lt;/li&gt;
&lt;li&gt;Linear ticket link&lt;/li&gt;
&lt;li&gt;Testing instructions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CI/CD automatically creates a preview environment from the PR.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Designer reviews
&lt;/h3&gt;

&lt;p&gt;The preview URL appears in Slack. Designer clicks it, verifies the change visually, and approves — or asks for another iteration.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Else the Agent Does
&lt;/h2&gt;

&lt;p&gt;The coding skill is just one of many. Our agent runs cron jobs throughout the day:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cron Job&lt;/th&gt;
&lt;th&gt;Schedule&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Morning AI Digest&lt;/td&gt;
&lt;td&gt;8am daily&lt;/td&gt;
&lt;td&gt;Searches for AI/tech news, sends bullet summary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hacker News Summary&lt;/td&gt;
&lt;td&gt;9am daily&lt;/td&gt;
&lt;td&gt;Pulls HN front page, summarizes top stories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tech Blog Monitor&lt;/td&gt;
&lt;td&gt;9am daily&lt;/td&gt;
&lt;td&gt;Checks RSS feeds + scrapers for new articles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PR Watcher&lt;/td&gt;
&lt;td&gt;Every 30 min&lt;/td&gt;
&lt;td&gt;Notifies about new PRs with code review summary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Video Summarizer&lt;/td&gt;
&lt;td&gt;On demand&lt;/td&gt;
&lt;td&gt;Transcribes YouTube videos, generates summaries&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  From Personal Assistant to Team Tool
&lt;/h2&gt;

&lt;p&gt;After a few months, I realized everything was trapped on one machine. No backup. No team access. No way for others to comment on the agent's output.&lt;/p&gt;

&lt;h3&gt;
  
  
  The migration:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Backed up everything&lt;/strong&gt; — memory, skills, cron jobs, config&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uploaded the backup to Spuree&lt;/strong&gt; (our storage platform)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spun up an EC2 instance&lt;/strong&gt; on AWS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Downloaded and restored&lt;/strong&gt; the backup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adjusted file paths&lt;/strong&gt; (Mac → Linux differences)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Connected to Slack&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Spuree AI Coder was born. Now the whole team has access to the same workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent output has a home
&lt;/h3&gt;

&lt;p&gt;The key insight: agent output needs to be &lt;strong&gt;searchable, shareable, and backed up&lt;/strong&gt; — just like any other work product.&lt;/p&gt;

&lt;p&gt;When our agent creates something important — a strategy doc, a feature spec, meeting notes — it uploads it to Spuree automatically. Team members get a link, comment on it, and the agent creates the next version based on their feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I've Learned
&lt;/h2&gt;

&lt;p&gt;Managing a team in the AI era, the gap between product, design, and engineering gets smaller — but only if you give your agents a proper setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Memory that persists&lt;/strong&gt; — the agent needs to remember context across sessions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills that are reusable&lt;/strong&gt; — turn workflows into shareable, version-controlled instructions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output that's shareable&lt;/strong&gt; — agent work needs a home where teams can collaborate on it&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenClaw&lt;/strong&gt;: &lt;a href="https://github.com/openclaw/openclaw" rel="noopener noreferrer"&gt;github.com/openclaw/openclaw&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spuree waitlist&lt;/strong&gt;: &lt;a href="https://spuree.com/waitlist" rel="noopener noreferrer"&gt;spuree.com/waitlist&lt;/a&gt; — we'll share the skills and help you set up&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;I'm Steven, Head of Engineering at Spuree. We're building a storage platform for the age of AI agents. If you have questions about the setup, drop a comment — happy to go deeper on any part of this.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>productivity</category>
      <category>openclaw</category>
    </item>
  </channel>
</rss>
