Esc

Type to search across all documentation pages...

/ Developer Docs
Feedback Docs Home Landing Page Log in

Installation

Add WildwoodComponents to your project. The library is available for multiple platforms — choose your framework below.

Step 1: Add the Package

Install the WildwoodComponents NuGet package using the .NET CLI:

dotnet add package WildwoodComponents

Or add it directly to your .csproj file:

<ItemGroup>
    <PackageReference Include="WildwoodComponents" Version="1.1.0" />
</ItemGroup>
Tip: Use a project reference during development so you get live changes and IntelliSense from the source. Switch to the NuGet package for production deployments.

Install the React SDK packages via npm or pnpm:

npm install @wildwood/core @wildwood/react

Or with pnpm:

pnpm add @wildwood/core @wildwood/react

The @wildwood/core package provides the API client and services. The @wildwood/react package provides React hooks and pre-built components.

Install the React Native SDK packages:

npm install @wildwood/core @wildwood/react-native

The @wildwood/react-native package provides native components using View, Text, and Pressable instead of HTML.

Install the Node.js SDK for server-side usage:

npm install @wildwood/core @wildwood/node

The @wildwood/node package provides Express middleware for JWT validation and API proxying. Express is an optional peer dependency.

Step 2: Setup

Static Assets

Add the theme stylesheet in your <head> and the JS interop before </body>:

<!-- In <head> -->
<link rel="stylesheet" href="_content/WildwoodComponents.Blazor/css/wildwood-themes.css" />

<!-- Before </body> -->
<script src="_content/WildwoodComponents.Blazor/js/wildwood-components.js"></script>

Namespace Imports

Add to your _Imports.razor:

@using WildwoodComponents.Blazor.Models
@using WildwoodComponents.Blazor.Services
@using WildwoodComponents.Blazor.Components.Base
@using WildwoodComponents.Blazor.Components.Authentication
@using WildwoodComponents.Blazor.Components.Registration
Important: Add @using WildwoodComponents.Blazor.Components.Base if any pages reference BaseWildwoodComponent or ComponentErrorEventArgs.

App Entry Point

Wrap your app with WildwoodProvider to initialize the SDK:

import { WildwoodProvider } from '@wildwood/react';

function App() {
  return (
    <WildwoodProvider config={{
      baseUrl: 'https://api.example.com',
      appId: 'your-app-id',
      enableAutoTokenRefresh: true,
    }}>
      {/* Your routes and components */}
    </WildwoodProvider>
  );
}

Import components and hooks as needed:

import { useAuth, AuthenticationComponent } from '@wildwood/react';
import type { AuthenticationResponse } from '@wildwood/core';

App Entry Point

Wrap your app with WildwoodProvider:

import { WildwoodProvider } from '@wildwood/react-native';

function App() {
  return (
    <WildwoodProvider config={{
      baseUrl: 'https://api.example.com',
      appId: 'your-app-id',
      enableAutoTokenRefresh: true,
      storage: 'memory', // or pass AsyncStorage adapter
    }}>
      {/* Your screens */}
    </WildwoodProvider>
  );
}

Import hooks and components:

import { useAuth, useTheme } from '@wildwood/react-native';

Express Middleware Setup

Add the auth middleware to your Express app:

import express from 'express';
import { createAuthMiddleware, createProxyMiddleware } from '@wildwood/node';

const app = express();

// Validate JWT tokens on protected routes
const auth = createAuthMiddleware({
  baseUrl: 'https://api.example.com',
  apiKey: process.env.WILDWOOD_API_KEY,
});

app.use('/api', auth);

// Access validated user in route handlers
app.get('/api/profile', (req, res) => {
  res.json(req.wildwoodUser);
});
Theming: All platforms share the same --ww-* CSS custom property system. Built-in themes include woodland-warm (default), cool-blue, and fall-colors. In Blazor, set data-theme="cool-blue" on your body. In React, use the useTheme() hook.

Install via Claude Code Plugin

If you use Claude Code (Anthropic's CLI for Claude), you can install and integrate WildwoodComponents with a single slash command — no manual setup required. The plugin handles package installation, service registration, component wiring, and configuration automatically.

Step 1: Install the Plugin

Run this command in your terminal to add the Wildwood plugin to Claude Code:

# macOS/Linux
curl -fsSL https://raw.githubusercontent.com/WildwoodWorks/WildwoodComponents.Claude/master/install.sh | bash

# Windows PowerShell
irm https://raw.githubusercontent.com/WildwoodWorks/WildwoodComponents.Claude/master/install.ps1 | iex

Step 2: Integrate into Your Project

Navigate to your project directory and run:

/wildwood integrate

The skill will detect your project type (Blazor, React, React Native, or Node.js), install the correct packages, register services, add theme files, and wire up the provider — all in a single prompt.

Step 3: Deploy (Optional)

Deploy your app to Wildwood hosting at apps.wildwoodworks.io:

/wildwood deploy
Why use the plugin? The Claude plugin uses less tokens than manual integration because the heavy lifting — knowing which packages, imports, service registrations, and configuration values are needed — is pre-encoded in the skill file. Your AI agent just follows the instructions.

The /wildwood Command

Everything is accessed through a single command. Just tell it what you need:

Command Description
/wildwood setup Create account, connect MCP, configure your first app
/wildwood integrate Add WildwoodComponents SDK to any project — auth, AI, messaging, payments
/wildwood deploy Build and deploy your app to a hosting service
/wildwood hosting Manage Wildwood-hosted app deployments
/wildwood database Manage hosted Azure SQL databases
/wildwood status Check platform health, app status, and usage

For the full list of AI tools and universal prompts (compatible with GPT, Copilot, Cursor, and more), see AI Tools & Skills.

Verify the Installation

Build your project to verify everything is wired up correctly:

dotnet build

You should see a clean build with no errors related to WildwoodComponents. If you see missing type or namespace errors, double-check that:

  1. The package reference or project reference is in your .csproj file.
  2. Your _Imports.razor includes the required @using directives.
  3. You have restored packages with dotnet restore.

Run a TypeScript type check to verify everything is wired up correctly:

npx tsc --noEmit

You should see no type errors. If you see missing module errors, double-check that:

  1. Both @wildwood/core and your framework package are installed.
  2. Your tsconfig.json has "moduleResolution": "bundler" or "node16".
  3. You have run npm install or pnpm install.

Next, you need to register the WildwoodComponents services in your dependency injection container. Head to Service Registration to continue.

Last updated: February 2026