web-artifacts-builder
Web Artifacts Builder
To build powerful frontend web applications, follow these steps:
- Initialize the frontend repo using
scripts/init-artifact.sh - Develop your application by editing the generated code
- Bundle all code into a single HTML file using
scripts/bundle-artifact.sh - Deliver the bundled output to the user
- (Optional) Test the output
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 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 Application
To build the application, 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 file:
bash scripts/bundle-artifact.sh
This creates bundle.html - a self-contained file with all JavaScript, CSS, and dependencies inlined. This file can be shared and opened in any browser.
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
.parcelrcconfig with path alias support - Builds with Parcel (no source maps)
- Inlines all assets into single HTML using html-inline
Step 4: Share Output with User
Share the bundled HTML file with the user so they can view it in any browser.
Step 5: Testing/Visualizing (Optional)
Note: This is a completely optional step. Only perform if necessary or requested.
To test/visualize the output, use available tools (including other Skills or built-in tools like Playwright or Puppeteer). In general, avoid testing upfront as it adds latency between the request and when the finished output can be seen. Test later, after presenting the result, if requested or if issues arise.
Reference
- shadcn/ui components: https://ui.shadcn.com/docs/components