Skip to content

Resource Format

Every resource in StealThis is a self-contained bundle — a directory with MDX frontmatter, code snippets, and assets.

Directory Structure

resources/
└── my-resource/
├── index.mdx # Frontmatter metadata + prose documentation
├── snippets/
│ ├── html.html # Standalone HTML page
│ ├── style.css # Styles (used by html.html)
│ ├── script.js # Vanilla JS (used by html.html)
│ └── react.tsx # React component
└── assets/
└── preview.gif # Preview image/gif

Frontmatter Schema

---
slug: my-resource # Unique identifier (URL-safe)
title: My Resource # Display title
description: Short description of what this does.
category: web-animations # See Category Taxonomy below
type: animation # animation | page | component | pattern | recommendation | ...
tags: [scroll, fade] # Searchable tags
tech: [css, js] # Technologies used
difficulty: easy # easy | med | hard
targets: [html, react] # Available snippet targets
collections: [saas] # Optional — library collection membership
preview: ./assets/preview.gif
labRoute: /web-animations/my-resource # Lab demo path
license: MIT
codepenExamples: # Optional CodePen embeds
- id: abc123
title: Full Demo
penUrl: https://codepen.io/stealthisdev/pen/abc123
description: Interactive version with all animations
height: 520
defaultTab: result
createdAt: 2026-02-20
updatedAt: 2026-02-20
---

Snippet Targets

TargetFileNotes
htmlsnippets/html.htmlFull standalone HTML page
CSS stylessnippets/style.cssReferenced by html.html
JSsnippets/script.jsReferenced by html.html
reactsnippets/react.tsxReact component (default export = demo)
nextsnippets/next.tsxNext.js variant
vuesnippets/vue.vueVue SFC

Writing Guidelines

  • Include a full <!DOCTYPE html> page
  • Use pure CSS by default (no Tailwind in HTML target)
  • Add <link rel="stylesheet" href="style.css" /> and <script src="script.js"></script>
  • Add role and aria-label attributes for accessibility
  • Respect prefers-reduced-motion

Category Taxonomy

Copy-paste resources (snippets + Lab)

CategoryTypical typeDescription
web-animationsanimationScroll effects, parallax, canvas, WebGL
web-pagespageFull page templates and sections
ui-componentscomponentReusable UI elements
patternspatternMicro-interactions, loaders, hover effects
componentscomponentExtended component library
pagespageExtended page library
promptspromptAI prompt templates
architecturesarchitectureProject structure references
boilerplatesboilerplateStarter project scaffolds
remotionanimationRemotion video compositions
database-schemasschemaDatabase schema patterns
ultra-high-definition-pagespageHigh-fidelity page designs
design-stylespageDesign style explorations
musiccomponentMusic/audio UI
3d-modelscomponent3D model resources
3d-interactionsanimation3D interaction patterns
pluginscomponentPlugin/extension patterns

Recommendations (no snippets)

CategoryTypeDescription
recommendationsrecommendationTopic pages comparing tools, platforms, books, courses

Recommendation resources use options[] (alternatives) and comparison[] (table columns) instead of code snippets. They do not appear in Lab or the MCP catalog. See Recommendations for the user guide.

---
slug: payment-processors
title: Payment Processors
category: recommendations
type: recommendation
recommendationKind: payments
comparison: [Model, Fees, Best for]
options:
- name: Stripe
url: https://stripe.com
bestFor: Developer-first SaaS billing
pros: [Great docs, Broad features]
cons: [Fees add up at scale]
attributes:
Model: "API + dashboard"
Fees: "2.9% + 30¢"
Best for: "SaaS & marketplaces"
license: MIT
difficulty: easy
tech: []
targets: []
createdAt: 2026-06-08
updatedAt: 2026-06-08
---

Contributors: full spec in ROADMAP_RECOMMENDATION.md.

Collections

UI resources can belong to one or more library collections via collections: frontmatter (e.g. saas, clinic, gym). Collections group copy-paste resources for browsing — they are separate from recommendation topics. See Collections for all collection IDs and URL patterns.

Contributors: when you add a new collection ID (not just assign resources to an existing one), update the Collections doc page with a new table row — see the Contributors: adding a new collection section there.