{"id":43993510,"url":"https://github.com/lightspeedwp/single-block-plugin-scaffold","last_synced_at":"2026-02-07T11:07:28.020Z","repository":{"id":319521395,"uuid":"1078914555","full_name":"lightspeedwp/single-block-plugin-scaffold","owner":"lightspeedwp","description":"WordPress single-block plugin scaffold with custom post types, taxonomies, and Secure Custom Fields repeater support. Includes block bindings API, automated build/test workflows, and Mustache templating for quick generation. Perfect for focused, purpose-built block plugins. WP 6.5+, PHP 8.0+.","archived":false,"fork":false,"pushed_at":"2025-12-01T18:13:38.000Z","size":464,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2026-01-18T23:08:54.620Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lightspeedwp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["lightspeedwp"]}},"created_at":"2025-10-18T17:34:12.000Z","updated_at":"2025-12-02T05:25:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"de7ab05b-3594-46a2-ba49-ad109942705c","html_url":"https://github.com/lightspeedwp/single-block-plugin-scaffold","commit_stats":null,"previous_names":["lightspeedwp/single-block-plugin-scaffold"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/lightspeedwp/single-block-plugin-scaffold","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightspeedwp%2Fsingle-block-plugin-scaffold","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightspeedwp%2Fsingle-block-plugin-scaffold/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightspeedwp%2Fsingle-block-plugin-scaffold/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightspeedwp%2Fsingle-block-plugin-scaffold/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lightspeedwp","download_url":"https://codeload.github.com/lightspeedwp/single-block-plugin-scaffold/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightspeedwp%2Fsingle-block-plugin-scaffold/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29193096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T07:37:03.739Z","status":"ssl_error","status_checked_at":"2026-02-07T07:37:03.029Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-07T11:07:27.186Z","updated_at":"2026-02-07T11:07:28.005Z","avatar_url":"https://github.com/lightspeedwp.png","language":"JavaScript","funding_links":["https://github.com/sponsors/lightspeedwp"],"categories":[],"sub_categories":[],"readme":"---\ntitle: Project Overview\ndescription: WordPress single block plugin scaffold with comprehensive documentation\ncategory: Project\ntype: Index\naudience: Developers, Users\ndate: 2025-12-01\n---\n\n# {{name}}\n\n{{description}}\n\n## Quick Start\n\n1. **Install Dependencies**\n\n   ```bash\n   npm install\n   composer install\n   ```\n\n2. **Start Development**\n\n   ```bash\n   npm run start\n   ```\n\n3. **Build for Production**\n\n   ```bash\n   npm run build\n   ```\n\n## Development\n\nThis plugin uses modern WordPress development practices:\n\n- **WordPress Scripts** for building and linting\n- **React/JSX** for block editor components\n- **SCSS** for styling\n- **PHP 8.0+** for server-side functionality\n- **PHPUnit** for PHP testing\n- **Jest** for JavaScript testing with coverage\n- **Playwright** for E2E testing\n- **Lighthouse CI** for performance monitoring\n- **Docker/DevContainer** for consistent development environments\n- **GitHub Actions** for CI/CD automation\n\n## Placeholder Mappings\n\nThis template uses mustache-style placeholders that should be replaced when scaffolding a new plugin:\n\n| Placeholder         | Description                              | Example                    |\n|---------------------|------------------------------------------|----------------------------|\n| `{{slug}}`          | Plugin slug (kebab-case)                 | `my-awesome-block`         |\n| `{{namespace}}`     | Plugin namespace (kebab-case)            | `mycompany`                |\n| `{{author}}`        | Plugin author                            | `John Doe`                 |\n| `{{description}}`   | Plugin description                       | `An awesome block plugin`  |\n| `{{license}}`       | License identifier                       | `GPL-3.0-or-later`        |\n| `{{textdomain}}`    | WordPress text domain                    | `my-awesome-block`         |\n| `{{version}}`       | Plugin version                           | `1.0.0`                    |\n| `{{name}}`          | Human-readable plugin name               | `My Awesome Block`         |\n\n## File Structure\n\n```\n{{slug}}/\n├── src/\n│   ├── {{slug}}/\n│   │   ├── block.json          # Block metadata\n│   │   ├── edit.js             # Editor component\n│   │   ├── save.js             # Save component\n│   │   ├── index.js            # Block registration\n│   │   ├── render.php          # Server-side render\n│   │   └── style.scss          # Block styles\n│   ├── scss/\n│   │   ├── editor.scss         # Editor-only styles\n│   │   └── style.scss          # Frontend-only styles\n│   └── index.js                # Main entry point\n├── bin/\n│   ├── build.sh               # Build script\n│   ├── test.sh                # Test script\n│   ├── install-wp-tests.sh    # WordPress test setup\n│   └── update-version.js      # Version update utility\n├── tests/\n│   ├── date.js                # Date utility functions\n│   └── date.test.js           # Date utility tests\n├── .devcontainer/             # Docker development container\n│   ├── devcontainer.json     # VS Code dev container config\n│   ├── docker-compose.yml    # Docker services (WP, MySQL, etc.)\n│   └── Dockerfile            # Container definition\n├── .github/\n│   └── workflows/\n│       ├── ci-cd.yml          # Main CI/CD pipeline\n│       ├── code-quality.yml   # Coverage \u0026 quality gates\n│       ├── deploy-wporg.yml   # WordPress.org deployment\n│       └── release.yml        # Version bumping \u0026 releases\n├── .vscode/                   # VSCode configuration\n├── .husky/                    # Git hooks\n├── .wordpress-org/            # WordPress.org assets\n├── assets/                    # Plugin assets (icons, banners)\n├── docs/                      # Documentation\n├── inc/                       # PHP utilities\n│   ├── db-migration.php      # Database migrations\n│   ├── deprecation.php       # Deprecation workflow\n│   └── nonce.php             # Nonce utilities\n├── {{slug}}.php               # Main plugin file\n├── package.json               # Node.js dependencies\n├── composer.json              # PHP dependencies\n├── .wp-env.json               # WordPress environment\n└── CODEOWNERS                 # Code ownership\n```\n\n## Scripts\n\n### NPM Scripts\n\n- `npm run build` - Build production assets\n- `npm run start` - Start development with watch mode\n- `npm run lint` - Lint JavaScript and CSS\n- `npm run test` - Run all tests\n- `npm run makepot` - Generate translation POT file\n- `npm run makejson` - Generate JSON translation files\n- `npm run i18n` - Complete i18n workflow (makepot + makejson)\n- `npm run env:start` - Start WordPress environment\n- `npm run plugin-zip` - Create distribution ZIP\n\n### Composer Scripts\n\n- `composer run lint` - Lint PHP code\n- `composer run test` - Run PHP tests\n- `composer run analyse` - Run static analysis\n\n### Performance \u0026 Quality\n\n- `npm run lighthouse` - Run Lighthouse CI audits\n- `npm run size-limit` - Check bundle size limits\n- `npm run analyze-bundle` - Analyze webpack bundle\n- `npm run performance` - Run all performance checks\n\n## Docker Development\n\nThis scaffold includes a complete Docker-based development environment:\n\n1. **Open in VS Code** with the Dev Containers extension\n2. **Reopen in Container** when prompted\n3. **Services included:**\n   - WordPress (port 8080)\n   - MariaDB (port 3306)\n   - phpMyAdmin (port 8081)\n   - MailHog (port 8025)\n\n```bash\n# Or manually start the environment\ncd .devcontainer \u0026\u0026 docker-compose up -d\n```\n\n## CI/CD Pipeline\n\nAutomated workflows handle:\n\n- **Linting \u0026 Testing** - On every push/PR\n- **Security Audits** - Dependency vulnerability checks\n- **E2E Tests** - Playwright browser testing\n- **Code Coverage** - JavaScript \u0026 PHP coverage with Codecov\n- **Bundle Analysis** - Size tracking and quality gates\n- **Releases** - Automated version bumping and changelog\n- **WordPress.org Deploy** - SVN deployment on release\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.\n\n## License\n\nThis project is licensed under the {{license}} License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\n### Documentation\n\nComprehensive documentation is available in the `docs/` directory:\n\n- **[Build Process](docs/BUILD-PROCESS.md)** - Complete build system guide\n- **[Testing Guide](docs/TESTING.md)** - Running and writing tests\n- **[Internationalization](docs/INTERNATIONALIZATION.md)** - i18n and translation guide\n- **[Tool Configuration](docs/TOOL-CONFIGS.md)** - Linting, formatting, and build tools\n- **[Agents Guide](docs/AGENTS.md)** - AI agents and automation\n- **[Workflows Guide](docs/WORKFLOWS.md)** - CI/CD workflows documentation\n- **[API Reference](docs/API-REFERENCE.md)** - Plugin API documentation\n- **[Performance](docs/PERFORMANCE.md)** - Performance optimization guide\n- **[Security](docs/SECURITY-HEADERS.md)** - Security best practices\n\n**Configuration Documentation** (`docs/config/`):\n\n- [wp-scripts](docs/config/wp-scripts.md) - Complete @wordpress/scripts guide\n- [Webpack](docs/config/webpack.md) - Bundling configuration\n- [Babel](docs/config/babel.md) - JavaScript compilation\n- [ESLint](docs/config/eslint.md) - JavaScript linting\n- [Stylelint](docs/config/stylelint.md) - CSS/Sass linting\n- [PostCSS](docs/config/postcss.md) - CSS processing\n- [Jest](docs/config/jest.md) - Unit testing\n- [Playwright](docs/config/playwright.md) - E2E testing\n- [Prettier](docs/config/prettier.md) - Code formatting\n\n### Community Support\n\nFor support, please see:\n\n- [Support Documentation](SUPPORT.md)\n- [Internationalization Guide](docs/INTERNATIONALIZATION.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightspeedwp%2Fsingle-block-plugin-scaffold","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flightspeedwp%2Fsingle-block-plugin-scaffold","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightspeedwp%2Fsingle-block-plugin-scaffold/lists"}