Getting Started with WildwoodComponents
A comprehensive guide to installing, configuring, and using WildwoodComponents across .NET, React, React Native, and Node.js.
What is WildwoodComponents?
WildwoodComponents is a cross-platform component library that provides pre-built, production-ready UI components for common application features. Instead of building authentication screens, AI chat interfaces, payment forms, and messaging UIs from scratch, you drop in a WildwoodComponent and connect it to a WildwoodAPI backend.
The library is available for .NET Blazor, React, React Native, and Node.js, with a shared core SDK that ensures consistent behavior across all platforms.
The library includes components for:
- Authentication — Login, registration, password reset, two-factor authentication, passkey/WebAuthn, and OAuth provider integration
- AI Chat — Conversational AI interfaces with text-to-speech, speech-to-text, and session management
- Secure Messaging — Encrypted messaging between users with real-time delivery
- Payments — Stripe, PayPal, Apple Pay, and Google Pay with embedded scripts (no external CDN required)
- Subscriptions — Subscription plan management and billing
- Notifications — In-app notification display and management
- Theming — Built-in theme system with CSS custom properties (Blazor/React) or StyleSheet themes (React Native)
Platform Support
WildwoodComponents is available across multiple frameworks and platforms:
.NET
| Platform | Hosting Model | Status |
|---|---|---|
| Blazor Server | Server-side rendering with SignalR | Fully supported |
| Blazor WebAssembly | Client-side in the browser | Fully supported |
| MAUI - iOS | .NET MAUI Blazor Hybrid | Fully supported |
| MAUI - Android | .NET MAUI Blazor Hybrid | Fully supported |
| MAUI - Windows | .NET MAUI Blazor Hybrid | Fully supported |
| MAUI - macOS | .NET MAUI Blazor Hybrid (Mac Catalyst) | Fully supported |
JavaScript / TypeScript
| Package | Platform | Status |
|---|---|---|
@wildwood/core |
Framework-agnostic TypeScript SDK (browser + Node.js) | Fully supported |
@wildwood/react |
React hooks + components | Fully supported |
@wildwood/react-native |
React Native components (iOS + Android) | Fully supported |
@wildwood/node |
Express middleware + server-side SDK | Fully supported |
Prerequisites
Before you begin, make sure you have:
- .NET 9 SDK or later — WildwoodComponents targets
net10.0but is compatible with .NET 9+. Download from dotnet.microsoft.com. - A WildwoodAPI instance — The components communicate with a WildwoodAPI backend. You need the base URL of a running instance.
- An AppId — Each client application registered in WildwoodAPI has a unique AppId to scope components to your application.
Before you begin, make sure you have:
- Node.js 18+ — Required for the native
fetchAPI used by the core SDK. - React 18+ — WildwoodComponents uses modern React features including hooks and context.
- pnpm, npm, or yarn — Any package manager works. Examples use pnpm.
- A WildwoodAPI instance — The components communicate with a WildwoodAPI backend. You need the base URL of a running instance.
- An AppId — Each client application registered in WildwoodAPI has a unique AppId to scope components to your application.
Before you begin, make sure you have:
- React Native 0.72+ — Or Expo SDK 49+.
- React 18+ — WildwoodComponents uses modern React features including hooks and context.
- pnpm, npm, or yarn — Any package manager works.
- A WildwoodAPI instance — The components communicate with a WildwoodAPI backend. You need the base URL of a running instance.
- An AppId — Each client application registered in WildwoodAPI has a unique AppId to scope components to your application.
Before you begin, make sure you have:
- Node.js 18+ — Required for the native
fetchAPI used by the core SDK. - Express 4+ or 5+ — The middleware is designed for Express, but the core SDK works standalone.
- A WildwoodAPI instance — The SDK communicates with a WildwoodAPI backend. You need the base URL of a running instance.
- An API Key — Server-side usage requires an API key (never expose this to client-side code).
https://localhost:7046. Check your launchSettings.json for the exact port.
Quick Start
# Install the NuGet package
dotnet add package WildwoodComponents.Blazor
// Program.cs - Register services
builder.Services.AddWildwoodComponents(options =>
{
options.BaseUrl = "https://localhost:7046";
options.AppId = "your-app-id";
});
<AuthenticationComponent
AppId="your-app-id"
OnAuthenticationSuccess="HandleSuccess" />
# Install packages
pnpm add @wildwood/core @wildwood/react
// App.tsx - Wrap with provider
import { WildwoodProvider, AuthenticationComponent } from '@wildwood/react';
function App() {
return (
<WildwoodProvider config={{
baseUrl: 'https://localhost:7046',
appId: 'your-app-id',
}}>
<AuthenticationComponent
onAuthenticationSuccess={(resp) => console.log('Logged in!', resp)}
/>
</WildwoodProvider>
);
}
# Install packages
pnpm add @wildwood/core @wildwood/react-native
// App.tsx - Wrap with provider
import { WildwoodProvider, AuthenticationComponent } from '@wildwood/react-native';
function App() {
return (
<WildwoodProvider config={{
baseUrl: 'https://your-api.example.com',
appId: 'your-app-id',
storage: 'asyncStorage',
}}>
<AuthenticationComponent
onAuthenticationSuccess={(resp) => navigation.navigate('Home')}
/>
</WildwoodProvider>
);
}
# Install packages
pnpm add @wildwood/core @wildwood/node
// server.ts - Express middleware
import express from 'express';
import { createAuthMiddleware } from '@wildwood/node';
const app = express();
const auth = createAuthMiddleware({
baseUrl: 'https://localhost:7046',
apiKey: process.env.WILDWOOD_API_KEY!,
});
app.use('/api', auth);
app.get('/api/profile', (req, res) => {
res.json(req.wildwoodUser);
});
What This Section Covers
The Getting Started section walks you through four steps:
- Overview (this page) — What WildwoodComponents is, platform support, and prerequisites.
- Installation — Adding the package, CSS, JavaScript, and namespace imports to your project.
- Service Registration — Registering WildwoodComponents services in your DI container or wrapping with a Provider.
- Your First Component — Dropping in the
AuthenticationComponentand handling login events.
Architecture at a Glance
Every Blazor WildwoodComponent inherits from BaseWildwoodComponent, which provides
automatic error handling, loading state management, theme integration, and safe JavaScript interop.
Your App (Blazor/MAUI)
|
+-- WildwoodComponents (UI layer)
| |-- AuthenticationComponent
| |-- AIChatComponent
| |-- PaymentComponent
| |-- ...
|
+-- WildwoodComponents Services (HTTP layer)
| |-- IAuthenticationService
| |-- IAIService
| |-- IPaymentService
| |-- IWildwoodSessionManager
| |-- ...
|
+-- WildwoodAPI (backend)
|-- JWT Authentication
|-- Multi-tenant data isolation
|-- AI provider orchestration
|-- Payment processing
|-- ...
The JavaScript SDK uses a layered architecture: a framework-agnostic @wildwood/core handles
all API communication and state, while @wildwood/react and @wildwood/react-native
provide thin UI wrappers with hooks and components.
Your App (React / React Native)
|
+-- @wildwood/react or @wildwood/react-native (UI layer)
| |-- WildwoodProvider (React Context)
| |-- AuthenticationComponent
| |-- AIChatComponent
| |-- Hooks: useAuth, useAI, usePayment, ...
|
+-- @wildwood/core (SDK layer)
| |-- WildwoodClient (main entry point)
| |-- client.auth, client.ai, client.payment, ...
| |-- SessionManager (token refresh, storage)
| |-- EventEmitter (authChanged, sessionExpired)
|
+-- WildwoodAPI (backend)
|-- JWT Authentication
|-- Multi-tenant data isolation
|-- AI provider orchestration
|-- Payment processing
|-- ...
The Node.js SDK provides Express middleware for JWT validation and API proxying,
plus a server-side admin client built on @wildwood/core.
Your Server (Express / Node.js)
|
+-- @wildwood/node (middleware layer)
| |-- authMiddleware (JWT validation)
| |-- proxyMiddleware (API proxying)
| |-- adminClient (user management)
|
+-- @wildwood/core (SDK layer)
| |-- WildwoodClient (main entry point)
| |-- HTTP client with auth headers
| |-- Token validation utilities
|
+-- WildwoodAPI (backend)
|-- JWT Authentication
|-- Multi-tenant data isolation
|-- AI provider orchestration
|-- Payment processing
|-- ...
Ready to get started? Head to the Installation page to add WildwoodComponents to your project.