{"id":47813970,"url":"https://github.com/studiometa/foehn-framework","last_synced_at":"2026-04-03T18:20:57.486Z","repository":{"id":336474807,"uuid":"1149778431","full_name":"studiometa/foehn-framework","owner":"studiometa","description":"🍃 A modern WordPress framework powered by Tempest, featuring attribute-based auto-discovery for hooks, post types, blocks, and more.","archived":false,"fork":false,"pushed_at":"2026-03-13T16:06:44.000Z","size":1228,"stargazers_count":6,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-14T03:58:32.666Z","etag":null,"topics":["framework","php","wordpress"],"latest_commit_sha":null,"homepage":"https://studiometa.github.io/foehn-framework/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/studiometa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"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}},"created_at":"2026-02-04T14:09:35.000Z","updated_at":"2026-03-13T16:06:46.000Z","dependencies_parsed_at":"2026-03-13T18:04:48.885Z","dependency_job_id":null,"html_url":"https://github.com/studiometa/foehn-framework","commit_stats":null,"previous_names":["studiometa/wp-tempest","studiometa/foehn-framework"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/studiometa/foehn-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studiometa%2Ffoehn-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studiometa%2Ffoehn-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studiometa%2Ffoehn-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studiometa%2Ffoehn-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/studiometa","download_url":"https://codeload.github.com/studiometa/foehn-framework/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studiometa%2Ffoehn-framework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31368168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"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":["framework","php","wordpress"],"created_at":"2026-04-03T18:20:56.738Z","updated_at":"2026-04-03T18:20:57.471Z","avatar_url":"https://github.com/studiometa.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍃 Føhn\n\nA modern WordPress framework powered by [Tempest](https://github.com/tempestphp/tempest-framework), featuring attribute-based auto-discovery for hooks, post types, blocks, and more.\n\n[![Latest Version](https://img.shields.io/github/v/release/studiometa/foehn-framework)](https://github.com/studiometa/foehn-framework/releases)\n[![PHP Version](https://img.shields.io/badge/php-%5E8.5-blue)](https://php.net)\n[![Tests](https://github.com/studiometa/foehn-framework/actions/workflows/ci.yml/badge.svg)](https://github.com/studiometa/foehn-framework/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)\n\n\u003e [!WARNING]\n\u003e **AI-Generated Project** — This project was primarily built by AI coding agents (Claude). While functional and tested, it may contain bugs, security issues, or unexpected behavior. Use at your own risk, especially in production environments.\n\n## Packages\n\nThis monorepo contains the following packages:\n\n| Package                                            | Description                                                  | Packagist                                                                                                                             |\n| -------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |\n| [`studiometa/foehn`](packages/foehn)               | Core framework — auto-discovery, DI, blocks, hooks           | [![Latest](https://img.shields.io/packagist/v/studiometa/foehn)](https://packagist.org/packages/studiometa/foehn)                     |\n| [`studiometa/foehn-installer`](packages/installer) | Composer plugin — generates web root, symlinks, wp-config    | [![Latest](https://img.shields.io/packagist/v/studiometa/foehn-installer)](https://packagist.org/packages/studiometa/foehn-installer) |\n| [`studiometa/foehn-starter`](packages/starter)     | Starter theme — complete example with create-project support | [![Latest](https://img.shields.io/packagist/v/studiometa/foehn-starter)](https://packagist.org/packages/studiometa/foehn-starter)     |\n\n## Quick Start\n\n### New project\n\n```bash\ncomposer create-project studiometa/foehn-starter my-project\n```\n\n### Add to existing theme\n\n```bash\ncomposer require studiometa/foehn\n```\n\n```php\n\u003c?php\n// functions.php\nuse Studiometa\\Foehn\\Kernel;\n\nKernel::boot(__DIR__ . '/app');\n```\n\n## Features\n\n- 🚀 **Zero configuration** — Auto-discovery of components via PHP 8 attributes\n- 🎯 **Modern DX** — Type-safe, IDE-friendly, testable\n- 🔌 **WordPress native** — Works with Timber, ACF, and Gutenberg blocks\n- ⚡ **Minimal boilerplate** — One line to boot your theme\n- 📦 **Project generator** — Full web root generation via Composer plugin\n- 🏗️ **Starter theme** — Complete example with models, hooks, templates\n\n## Available Attributes\n\n| Attribute                 | Description                       |\n| ------------------------- | --------------------------------- |\n| `#[AsAction]`             | Register a WordPress action hook  |\n| `#[AsFilter]`             | Register a WordPress filter hook  |\n| `#[AsPostType]`           | Register a custom post type       |\n| `#[AsTaxonomy]`           | Register a custom taxonomy        |\n| `#[AsBlock]`              | Register a native Gutenberg block |\n| `#[AsAcfBlock]`           | Register an ACF block             |\n| `#[AsBlockPattern]`       | Register a block pattern          |\n| `#[AsContextProvider]`    | Add data to specific views        |\n| `#[AsTemplateController]` | Handle template rendering         |\n| `#[AsShortcode]`          | Register a shortcode              |\n| `#[AsRestRoute]`          | Register a REST API endpoint      |\n| `#[AsCliCommand]`         | Register a WP-CLI command         |\n| `#[AsTimberModel]`        | Register a Timber class map       |\n| `#[AsMenu]`               | Register a navigation menu        |\n| `#[AsImageSize]`          | Register a custom image size      |\n\n## Architecture\n\n```\nmy-project/                     # What is VERSIONED\n├── theme/                      # The WordPress theme\n│   ├── app/                    # PHP classes (auto-discovered)\n│   ├── templates/              # Twig templates\n│   ├── functions.php           # Single Kernel::boot() call\n│   └── style.css               # Theme header\n├── config/                     # Configuration files\n├── mu-plugins/                 # Custom mu-plugins (if needed)\n├── .env                        # Environment variables\n└── composer.json               # Dependencies\n\nweb/                            # GENERATED (100% gitignored)\n├── wp/                         # WordPress core\n├── wp-content/\n│   ├── themes/my-theme → symlink to /theme\n│   ├── plugins/                # Composer-managed plugins\n│   └── mu-plugins/             # Auto-loaded mu-plugins\n├── index.php                   # Generated front controller\n└── wp-config.php               # Generated from config/\n```\n\n## Documentation\n\n📖 **[Full Documentation](https://studiometa.github.io/foehn/)**\n\n- [Getting Started](https://studiometa.github.io/foehn/guide/getting-started)\n- [Installation](https://studiometa.github.io/foehn/guide/installation)\n- [Theme Conventions](https://studiometa.github.io/foehn/guide/theme-conventions)\n- [Security Guide](https://studiometa.github.io/foehn/guide/security)\n- [API Reference](https://studiometa.github.io/foehn/api/)\n\n### For AI Agents\n\nThis package includes an [Agent Skill](https://agentskills.io/) at `packages/foehn/skills/foehn/SKILL.md` with comprehensive usage reference. Compatible agents will discover it automatically.\n\n## Development\n\n```bash\n# Install dependencies\ncomposer install\nnpm install\n\n# Run tests\ncomposer test\n\n# Lint \u0026 fix\ncomposer lint\ncomposer fix\n\n# Format markdown\nnpm run fmt\n```\n\n## Contributing\n\nContributions are welcome! Please read our contributing guidelines before submitting a PR.\n\n## License\n\nMIT License — see [LICENSE](LICENSE) for details.\n\n## Credits\n\n- [Tempest Framework](https://github.com/tempestphp/tempest-framework) by Brent Roose\n- [Timber](https://github.com/timber/timber) by Upstatement\n- Inspired by [Acorn](https://github.com/roots/acorn) by Roots\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstudiometa%2Ffoehn-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstudiometa%2Ffoehn-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstudiometa%2Ffoehn-framework/lists"}