Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/chrishursty/app-nilplyr-plugin/archive/refs/heads/main.zipPLAYR Core is the foundational WordPress plugin that powers the PLAYR App.
It provides all the backend data structures, REST API endpoints, and app logic for the PLAYR ecosystem — an athlete–brand matching platform that blends social discovery, NIL deal management, and chat messaging into a single, installable WordPress experience.
🧩 Overview
PLAYR Core turns WordPress into a full-featured web app for connecting athletes and brands.
It handles:
- User roles and onboarding (Athlete, Brand, Admin)
- Profile creation (as custom post types)
- Swipe-based discovery and matching
- 1:1 chat and messaging between matches
- REST API endpoints for all app interactions
- Extendable foundation for deals, offers, and notifications
The plugin is designed to be theme-agnostic and API-driven, meaning you can build front-end interfaces in:
- A custom theme (like the Playr App Shell)
- React or Vue components loaded via shortcodes
- A mobile app or PWA wrapper using the REST API
🛠️ Core Features
| Feature | Description |
|---|---|
| Custom Roles | athlete, brand, admin |
| CPTs | athlete and brand profiles with thumbnails, descriptions, and taxonomies |
| Custom DB Tables | wp_playr_swipes, wp_playr_matches, wp_playr_messages |
| REST API | /playr/v1/ namespace with endpoints for queue, swipes, matches, and messages |
| Shortcodes | [playr_swipe], [playr_chat match_id="123"], [playr_onboarding] |
| Extensible | Easily add deals, ratings, or notifications as new modules |
| Theme-Agnostic | Works with any theme; optimized for the “Playr App Shell” theme |
| PWA/Native Ready | Clean API structure for wrapping with Capacitor or native mobile apps |
⚙️ Installation
- Upload the
playr-corefolder to/wp-content/plugins/ - Activate PLAYR Core through the Plugins → Installed Plugins screen in WP Admin
- Optionally install the companion theme: Playr App Shell
- Create these core pages:
/discover/→[playr_swipe]/messages/→[playr_chat match_id="1"]/onboarding/→[playr_onboarding]
That’s enough to start testing the MVP flow.
🧱 Database Schema
Custom Tables Created on Activation
| Table | Purpose |
|---|---|
wp_playr_swipes |
Records swipe actions between users (like/pass) |
wp_playr_matches |
Stores matched user pairs |
wp_playr_messages |
Chat messages exchanged between matched users |
Roles Added
athletebrand
Each CPT post (Athlete or Brand) is tied to its author (the WP user).
🔗 REST API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/wp-json/playr/v1/queue |
Fetches swipe queue for current user |
POST |
/wp-json/playr/v1/swipe |
Records a swipe (like or pass) |
GET |
/wp-json/playr/v1/matches |
Retrieves user’s matches |
GET |
/wp-json/playr/v1/messages?match_id=ID |
Gets chat messages for a match |
POST |
/wp-json/playr/v1/messages |
Sends a new message to a match |
All endpoints require authentication (via WordPress cookie, nonce, or OAuth token).
💬 Shortcodes
| Shortcode | Purpose | Example |
|---|---|---|
[playr_swipe] |
Displays the swipe/discovery interface | [playr_swipe] |
[playr_chat match_id="123"] |
Displays chat interface for a given match | [playr_chat match_id="12"] |
[playr_onboarding] |
Optional onboarding or setup wizard | [playr_onboarding] |
Each shortcode enqueues its own front-end JavaScript bundle and connects to the PLAYR REST API.
🧭 Recommended Theme
For a native app-like experience, install the companion theme:
👉 Playr App Shell
A lightweight, mobile-first WordPress theme that provides:
- Full-height, sticky navigation layout
- Responsive app-style container
- Dark mode ready CSS variables
- Minimal markup for embedding
[playr_*]shortcodes
📱 App Store / PWA Readiness
PLAYR Core is designed from day one to be deployable as a PWA or wrapped into native apps.
- Add a manifest + service worker via a simple “Playr PWA” plugin.
- Use Capacitor or PWABuilder to package it for the App Store and Google Play.
- The REST endpoints remain identical between the web and mobile versions.
🚀 Roadmap
| Version | Planned Features |
|---|---|
| 0.1.0 (MVP) | Roles, CPTs, Swipes, Matches, Chat, REST API |
| 0.2.0 | Filters (sport, location), Match list UI, Profile editing |
| 0.3.0 | Deals/Offers CPT, Email notifications, PWA manifest |
| 1.0.0 | Real-time chat (WebSockets), Push notifications, Native App Wrappers |
🧰 Developer Notes
- Built to WordPress coding standards and 6.x REST API conventions.
- Namespaced under
playr/v1. - Avoids third-party dependencies (pure PHP/JS) for performance.
- Works in both classic and block themes.
- Compatible with WP multisite.
👤 Author
Chris Hurst
Senior UX/UI Designer & WordPress Developer
https://iamchrishurst.com
⚖️ License
This plugin is open-source under the GPL-2.0+ license.
You are free to modify and redistribute with attribution.
🧡 Contributing
Pull requests, bug reports, and feature ideas are welcome.
Future contributions may include:
- Enhanced REST pagination & caching
- Media uploads in chat
- Notification hooks
- UI components for Gutenberg block integration
PLAYR Core — The open, modular backbone for the next generation of athlete–brand apps built on WordPress.