home / skills / plurigrid / asi / artifacts-builder

artifacts-builder skill

/skills/artifacts-builder

This skill helps you create self-contained Claude-compatible HTML artifacts by bundling React TypeScript projects into a single, shareable file.

This is most likely a fork of the artifacts-builder skill from openclaw
npx playbooks add skill plurigrid/asi --skill artifacts-builder

Review the files below or copy the command above to add this skill to your agents.

Files (5)
SKILL.md
3.0 KB
---
name: artifacts-builder
description: Suite of tools for creating elaborate, multi-component claude.ai HTML
  artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui).
  Use for complex artifacts requiring state management, routing, or shadcn/ui components
  - not for simple single-file HTML/JSX artifacts.
license: Complete terms in LICENSE.txt
metadata:
  trit: 1
---

# Artifacts Builder

To build powerful frontend claude.ai artifacts, follow these steps:
1. Initialize the frontend repo using `scripts/init-artifact.sh`
2. Develop your artifact by editing the generated code
3. Bundle all code into a single HTML file using `scripts/bundle-artifact.sh`
4. Display artifact to user
5. (Optional) Test the artifact

**Stack**: React 18 + TypeScript + Vite + Parcel (bundling) + Tailwind CSS + shadcn/ui

## Design & Style Guidelines

VERY IMPORTANT: To avoid what is often referred to as "AI slop", avoid using excessive centered layouts, purple gradients, uniform rounded corners, and Inter font.

## Quick Start

### Step 1: Initialize Project

Run the initialization script to create a new React project:
```bash
bash scripts/init-artifact.sh <project-name>
cd <project-name>
```

This creates a fully configured project with:
- ✅ React + TypeScript (via Vite)
- ✅ Tailwind CSS 3.4.1 with shadcn/ui theming system
- ✅ Path aliases (`@/`) configured
- ✅ 40+ shadcn/ui components pre-installed
- ✅ All Radix UI dependencies included
- ✅ Parcel configured for bundling (via .parcelrc)
- ✅ Node 18+ compatibility (auto-detects and pins Vite version)

### Step 2: Develop Your Artifact

To build the artifact, edit the generated files. See **Common Development Tasks** below for guidance.

### Step 3: Bundle to Single HTML File

To bundle the React app into a single HTML artifact:
```bash
bash scripts/bundle-artifact.sh
```

This creates `bundle.html` - a self-contained artifact with all JavaScript, CSS, and dependencies inlined. This file can be directly shared in Claude conversations as an artifact.

**Requirements**: Your project must have an `index.html` in the root directory.

**What the script does**:
- Installs bundling dependencies (parcel, @parcel/config-default, parcel-resolver-tspaths, html-inline)
- Creates `.parcelrc` config with path alias support
- Builds with Parcel (no source maps)
- Inlines all assets into single HTML using html-inline

### Step 4: Share Artifact with User

Finally, share the bundled HTML file in conversation with the user so they can view it as an artifact.

### Step 5: Testing/Visualizing the Artifact (Optional)

Note: This is a completely optional step. Only perform if necessary or requested.

To test/visualize the artifact, use available tools (including other Skills or built-in tools like Playwright or Puppeteer). In general, avoid testing the artifact upfront as it adds latency between the request and when the finished artifact can be seen. Test later, after presenting the artifact, if requested or if issues arise.

## Reference

- **shadcn/ui components**: https://ui.shadcn.com/docs/components

Overview

This skill is a toolkit for creating self-contained, multi-component Claude-compatible HTML artifacts using a React + TypeScript stack. It scaffolds a frontend project, provides build and bundle scripts, and produces a single inlined HTML file you can share directly in conversations. The tool focuses on delivering polished, interactive UI artifacts without heavy manual bundling work.

How this skill works

The workflow initializes a Vite React project preconfigured with Tailwind CSS, shadcn/ui components, Radix dependencies, and path aliases. You develop the artifact in the generated project, then run the bundling script which installs Parcel and related plugins, builds the app, and inlines all assets into bundle.html. The output is a self-contained HTML file containing JavaScript, CSS, and dependencies that can be pasted or uploaded into a Claude conversation.

When to use it

  • You need to deliver an interactive UI artifact inside a Claude chat without external hosting.
  • You want a reproducible starter with React + TypeScript + Tailwind + shadcn/ui components.
  • You must produce a single-file HTML artifact for offline sharing or embedding.
  • You prefer minimal manual configuration for bundling and path aliases.
  • You need a rapid prototype to demonstrate UI behavior in conversations.

Best practices

  • Keep layouts varied and avoid centered-only designs to prevent "AI slop" and improve clarity.
  • Avoid purple gradients, uniform rounded corners, and the Inter font to maintain originality.
  • Develop and iterate locally using the generated project files before bundling.
  • Ensure index.html exists at the project root before running the bundle script.
  • Bundle only after major changes to reduce build latency; defer optional visual tests until after sharing if speed matters.

Example use cases

  • Build an interactive demo of a question-answering UI to share with a user in a chat session.
  • Package a visualization or graph tool using shadcn/ui components for collaborative inspection.
  • Create a single-file teaching artifact that demonstrates a step-by-step workflow or simulation.
  • Deliver a polished prototype of a form-driven assistant interface that users can open directly from chat.
  • Share a self-contained dashboard snapshot when hosting is not available or desirable.

FAQ

What does the init script create for me?

It scaffolds a Vite + React + TypeScript project with Tailwind, shadcn/ui components, path aliases, Parcel bundling config, and Node 18+ compatibility pinned.

How does bundling produce a single HTML file?

The bundle script installs Parcel and html-inline, builds the app with Parcel (including path-alias support), then inlines all CSS, JS, and assets into bundle.html for a self-contained artifact.