Open Source Plugin Suite
Headless plugins for WooCommerce stores
Lightweight WordPress plugins that expose REST APIs for decoupled frontends. Authentication, search, analytics, wishlists, and more — no bloat.
Zero Bloat
Each plugin does one thing well. No custom tables unless necessary, minimal queries, tiny footprint.
REST-First
Every plugin exposes clean REST API endpoints. Use with Next.js, React Native, Flutter — any frontend.
WooCommerce Native
Built on WooCommerce hooks and capabilities. Order tracking, purchase events, and product data — all integrated.
TypeScript Source
Written in TypeScript with decorators, transpiled to WordPress-standard PHP by the wpts compiler.
The Plugin Suite
Eight focused plugins covering authentication, analytics, search, and e-commerce for headless WordPress stores.
Headless Auth
AuthenticationOTP and password authentication with JWT tokens
Headless Clarity
AnalyticsMicrosoft Clarity session recordings and heatmaps
Headless Fuzzy Find
SearchWeighted, fuzzy product search with autocomplete
Headless Google Analytics
AnalyticsGA4 with Measurement Protocol and WooCommerce tracking
Headless Meta Pixel
AnalyticsMeta Pixel with Conversions API and PII hashing
Headless POS Sessions
E-CommercePOS register session storage with REST API
Headless Umami
AnalyticsPrivacy-first Umami Analytics with purchase tracking
Headless Orders
E-CommerceCustomer order history REST API
Headless Wishlist
E-CommercePer-user product wishlist REST API
How It Works
Three steps from install to production.
Install the Plugin
Install from WordPress.org or upload the ZIP. Activate from the WordPress admin.
Configure via Admin
Each plugin has a React-powered settings page. Enter API keys, toggle features, test connections.
Call the REST API
Your headless frontend calls the plugin's REST endpoints. Authentication, tracking, search — all via JSON.
API in Action
Real request and response examples. Copy, paste, and integrate.
Auth
# Send OTP
curl -X POST https://store.example.com/wp-json/headless-auth/v1/otp/send \
-H "Content-Type: application/json" \
-d '{"phone": "+919876543210"}'
# Verify OTP and get tokens
curl -X POST https://store.example.com/wp-json/headless-auth/v1/otp/verify \
-H "Content-Type: application/json" \
-d '{"phone": "+919876543210", "otp": "482916"}' Search
# Fuzzy search (handles typos)
curl "https://store.example.com/wp-json/headless-fuzzy-find/v1/search?q=shrt&per_page=3" Meta Pixel
// Track event via Conversions API
const response = await fetch(
"https://store.example.com/wp-json/headless-meta-pixel/v1/track",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
event_name: "AddToCart",
event_id: "evt_abc123", // for deduplication
custom_data: {
currency: "INR",
value: 1499.0,
content_ids: ["SKU-001"],
content_type: "product",
},
}),
}
); Wishlist
# Add product to wishlist
curl -X POST https://store.example.com/wp-json/headless-wishlist/v1/items \
-H "Authorization: Bearer eyJhbGci..." \
-H "Content-Type: application/json" \
-d '{"product_id": 156}'
# List wishlist
curl https://store.example.com/wp-json/headless-wishlist/v1/items \
-H "Authorization: Bearer eyJhbGci..." Built with wpts
Write plugins in TypeScript with decorators. The wpts transpiler generates production-ready WordPress PHP.
@Setting({ sensitive: true })
apiKey: string;
@Setting({ exposeInConfig: true })
measurementId: string;
@RestRoute('/track', { methods: 'POST', auth: true })
trackEvent(data: RequestData): WpRestResponse {
const payload = this.buildPayload(data);
return wpRemotePost(GA4_ENDPOINT, payload);
}