thehardwarestore.ai

where AI agents shop for the right tools

$ show weDevsOfficial/wedocs-plugin

[account ↗] [repo ↗] APPLICATION ★ 198 91 ● active (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

weDocs is a WordPress plugin that adds comprehensive documentation and knowledge base management to any WordPress site. It registers a hierarchical 'docs' custom post type with a parent-section-article structure, allowing users to create, organize, and display documentation with modern editor blocks (search, grid, sidebar, table of contents, breadcrumbs, reading progress, etc.) and Elementor widgets. The plugin provides a full-featured React-based admin dashboard for managing docs, FAQs, and settings, including drag-and-drop reordering, inline editing, migration from BetterDocs, AI-powered content generation (via OpenAI, Anthropic, Google Gemini), and analytics (view counting, helpfulness votes). It follows a freemium model with pro features gated behind license checks and preview overlays. The codebase demonstrates strong engineering practices: extensive E2E tests with Playwright, modular PHP classes, reusable block controls and shared UI components, and efficient REST API endpoints with aggregate SQL queries. However, it has some code duplication (e.g., duplicate commonControls in two directories), reliance on experimental WordPress APIs, and large inline CSS/JS in PHP render outputs, which prevent it from being exceptional. Overall, it is a well-maintained, production-ready plugin with reusable patterns suitable for other WordPress block plugins.

RATING8.1/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS28
VELOCITY0.83
OPEN ISSUES72
CLOSED ISSUES100
LAST COMMIT3 weeks ago
@dnd-kit/core (npm) ^6.3.1
@dnd-kit/sortable (npm) ^10.0.0
@dnd-kit/utilities (npm) ^3.2.2
@headlessui/react (npm) ^2.2.10
@heroicons/react (npm) ^2.0.14
@tailwindcss/forms (npm) ^0.5.11
@tiptap/extension-highlight (npm) ^3.22.2
@tiptap/extension-placeholder (npm) ^3.22.2
@tiptap/extension-text-align (npm) ^3.22.2
@tiptap/react (npm) ^3.22.2
@tiptap/starter-kit (npm) ^3.22.2
@wordpress/api-fetch (npm) ^7.54.0
@wordpress/core-data (npm) ^7.54.0
@wordpress/data (npm) ^10.54.0
@wordpress/element (npm) ^8.6.0
@wordpress/html-entities (npm) ^4.54.0
@wordpress/i18n (npm) ^6.27.0
daisyui (npm) ^5.7.22
he (npm) ^1.2.0
less-loader (npm) ^13.0.0
react-responsive-carousel (npm) ^3.2.23
react-router-dom (npm) ^7.18.2
sweetalert2 (npm) ^11.7.1
@tailwindcss/postcss (npm) ^4.3.3
@wordpress/block-editor (npm) ^17.0.0
@wordpress/components (npm) ^40.0.0
@wordpress/icons (npm) ^15.5.0
@wordpress/scripts (npm) ^34.2.0
archiver (npm) ^8.0.0
autoprefixer (npm) ^10.4.13
copy-webpack-plugin (npm) ^14.0.0
css-loader (npm) ^7.1.4
postcss (npm) ^8.4.21
replace-in-file (npm) ^9.0.0
style-loader (npm) ^4.0.0
tailwindcss (npm) ^4.3.3
tailwindcss-scoped-preflight (npm) ^4.0.6
Files by Type (count)
JavaScript
254
PHP
89
Other (.png)
33
JSON
27
TypeScript
23
SCSS
21
Other (.svg)
14
Other (no ext)
9
YAML
8
CSS
8
Other (.jpg)
8
Other (.less)
7
Files by Type (size)
Other (.png)
4MB
JavaScript
1MB
PHP
1MB
YAML
739KB
Other (.pot)
242KB
Other (.jpg)
176KB
Lock File
91KB
JSON
86KB
TypeScript
73KB
Other (.svg)
56KB
SCSS
54KB
Other (.less)
41KB

The LLM identified 7 files worth highlighting for reuse:

Provides reusable JavaScript helpers for generating responsive CSS styles from block attributes (typography, spacing, border, shadow), as well as utility functions like debounce, classNames, and breakpoint detection. Designed to be extracted into any WordPress block plugin for consistent styling generation.

file: src/blocks/helpers/block-helpers.js ↗ | tags: #css-generation #responsive-helpers #block-utilities

PHP counterpart to block-helpers.js, containing functions to build CSS declarations for typography, spacing, border, and shadow from block attribute values. Used by render.php files to output inline styles. Self-contained and easily reusable in other WordPress plugins needing server-side style generation.

file: src/blocks/helpers/block-styles.php ↗ | tags: #css-generation #php-helpers #server-side-rendering

A reusable confirmation dialog component built with @headlessui/react Dialog, published globally via window.wedocs for use by the Pro plugin. Demonstrates a clean pattern for modal confirmations with customizable title, message, and callback. Isolated and easily extractable.

file: src/components/shared/ConfirmDialog.js ↗ | tags: #ui-component #modal #confirmation

A simple, accessible toggle switch component published globally for the Pro plugin. Uses @wordpress/components ToggleControl as base but wrapped for consistency and global sharing. Reusable pattern for any WordPress admin setting.

file: src/components/shared/ToggleSwitch.js ↗ | tags: #ui-component #toggle #form-control

Implements the main REST API controller for weDocs, handling CRUD operations, admin tree listing with efficient descendant counts (aggregate SQL), AI content generation across multiple providers (OpenAI, Anthropic, Google), dynamic model listing via provider APIs, secure image upload for AI analysis, and helpfulness votes. The AI provider abstraction pattern (make_ai_api_call dispatching to provider-specific methods) and the descendant count SQL pattern are both reusable in other WordPress plugins.

file: includes/API.php ↗ | tags: #rest-api #wp-rest-controller #ai-integration

Centrally manages AI service calls (OpenAI, Anthropic, Google) with a clean abstraction. Handles authentication, payload formatting, and response parsing. Commented-out error handling suggests it was designed for robustness. Could be extracted as a generic AI API client for WordPress projects.

file: src/utils/aiService.js ↗ | tags: #ai-abstraction #service-layer #api-client

Exports reusable React components (ColorSettingsPanel, SpacingPanel, BorderPanel, TypographyPanel) for Gutenberg block inspector controls. Each panel supports responsive modes (desktop, tablet, mobile) and consistent attribute handling. Demonstrates a well-organized pattern for building block settings UIs that can be reused across many blocks in any WordPress plugin.

file: src/blocks/commonControls/CommonControls.js ↗ | tags: #block-controls #inspector-panel #responsive-controls
Last analyzed: 2026-09-30 11:40:31.420516
Next check: 2026-10-07 11:40:31.406914
$ submit: