{"id":35096620,"url":"https://github.com/felixgro/framez","last_synced_at":"2026-04-27T09:31:23.976Z","repository":{"id":301886993,"uuid":"1009814376","full_name":"felixgro/framez","owner":"felixgro","description":"Create beautiful, auto-optimizing masonry galleries on your WordPress website with ease.","archived":false,"fork":false,"pushed_at":"2025-06-29T12:13:21.000Z","size":109680,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-29T12:32:23.757Z","etag":null,"topics":["design","gallery","images","lightbox","masonry","photography","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felixgro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2025-06-27T18:58:07.000Z","updated_at":"2025-06-29T11:21:34.000Z","dependencies_parsed_at":"2025-06-29T12:42:31.133Z","dependency_job_id":null,"html_url":"https://github.com/felixgro/framez","commit_stats":null,"previous_names":["felixgro/framez"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/felixgro/framez","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixgro%2Fframez","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixgro%2Fframez/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixgro%2Fframez/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixgro%2Fframez/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felixgro","download_url":"https://codeload.github.com/felixgro/framez/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixgro%2Fframez/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32331305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["design","gallery","images","lightbox","masonry","photography","wordpress","wordpress-plugin"],"created_at":"2025-12-27T15:32:06.108Z","updated_at":"2026-04-27T09:31:23.966Z","avatar_url":"https://github.com/felixgro.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FrameZ – Image Galleries for WordPress\n\nCreate beautiful, auto-optimizing masonry galleries on your WordPress website with ease.\n\n* Free \u0026 Open Source\n* Lightweight, fast \u0026 easy-to-use\n* Fully accessible and responsive\n* Automatic preview and thumbail generation for better performance while keeping the originals downloadable\n\n\u003e [!WARNING]\n\u003e This plugin is currently in development and not yet available on the WordPress Plugin Directory. You can still try it out by following the [development instructions](#development).\n\n## Requirements\n\n* PHP 8 or newer\n* WP 6.7 or newer\n* Imagick (recommended) or GD PHP Extension\n\n## Getting Started\n\nRegister all directories using the `framez_galleries` hook:\n\n```php\nadd_filter('framez_galleries', function ($galleries) {\n    return [\n        'my-gallery-1' =\u003e [\n            'path' =\u003e '/path/to/directory',\n            'url' =\u003e 'https://domain.com/path/to/directory',\n        ],\n        'my-gallery-2' =\u003e [\n            'path' =\u003e '/path/to/directory',\n            'url' =\u003e 'https://domain.com/path/to/directory',\n        ],\n        // ...\n    ];\n});\n```\n\nNow, you can render an image gallery using the `[framez]` shortcode with the registered directory key:\n\n```\n[framez gallery=\"my-gallery-1\" perpage=\"20\" startpage=\"0\" loadmore=\"true\"]\n```\n\u003e [!NOTE]\n\u003e `gallery` is the only required attribute on this shortcode, the others have defaults which are shown in the example above\n\n## Roadmap\n* [X] Add settings pages for configuring the plugin in the dashboard \n* [X] Add Custom Post Type (CPT) for managing galleries with metadata and interactive gallery preview\n* [ ] Add support for custom storage locations (custom server directory)\n* [ ] Add support for custom image sizes\n\n## Development\n\nFor the development of this plugin, you need to have the following installed:\n\n* [All requirements mentioned above](#requirements)\n* [Node.js v24 or newer](https://nodejs.org/en/download/)\n* [Composer](https://getcomposer.org/download/)\n* Any local server running WordPress\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/felixgro/framez.git\n   ```\n2. Change into the plugin directory:\n   ```bash\n    cd framez/plugin\n    ```\n3. Install dependencies:\n    ```bash\n    composer install\n    npm install\n    ```\n4. Build the assets:\n    ```bash\n    npm run build\n    ```\n5. Create a symlink to the `wp-content/plugins` directory of your WordPress installation:\n    ```bash\n    ln -s $(pwd) /path/to/your/wordpress/wp-content/plugins/framez\n    ```\n    Windows users can create a symlink using the `mklink` command in the Command Prompt:\n    ```cmd\n    mklink /J \"C:\\path\\to\\your\\wordpress\\wp-content\\plugins\\framez\" \"C:\\path\\to\\framez\\plugin\"\n    ```\n\n### Development Server\n\nFor development, you need to have a WordPress installation hosted locally.\n\n\u003e [!TIP]\n\u003e You can use tools like [Local by Flywheel](https://localwp.com/), [Laragon](https://laragon.org) or [DevKinsta](https://kinsta.com/devkinsta/) to set up a local WordPress environment.\n\nBefore starting the development server, you have to configure the local wordpress url in the `vite.config.js` file as `DEV_ORIGIN`:\n```javascript\n//...\nconst DEV_ORIGIN = 'http://your-local-wordpress-url.test';\n//...\n```\n\nThen, to start the development server, run:\n```bash\nnpm run dev\n```\n\nThis will start a [Vite](https://vite.dev/) development server that serves the assets with hot module replacement (hmr) in your local hosted WordPress installation.\n\n\u003e [!NOTE]\n\u003e The Vite development server will ONLY host the hmr assets, you still need to have a local WordPress installation running to see the plugin in action. Hot module replacement will automatically update the assets in your browser when you make changes to the source files.\n\n### Building for Production\n\nThis project uses Docker to build the plugin package for distribution, as well as to publish the documentation website.\n\n#### Prerequisites\n\nMake sure you have [Docker](https://www.docker.com/get-started) installed and running on your machine.\n\n#### Build the Docker Image \u0026 Run the Container\n\nTo build the image, run the following command in your project root:\n\n```bash\ndocker build -f docker/Dockerfile -t framez . --no-cache\n```\n\nThen, start the container using the `framez` image we've just built:\n\n```bash\ndocker run --rm -p 3000:3000 framez\n```\n\nNow, the plugin is available in the `/srv/http` directory inside the container, and will be served at `http://localhost:3000` on your host machine. You may download the freshly baked `framez.zip` plugin package directly from `http://localhost:3000/framez.zip`. \n\n\u003e[!TIP]\n\u003e If port `3000` is already in use, you can change the port mapping in the `docker run` command to any other available port, e.g. `-p 8080:3000`\n\n### Contributions\n\nContributions are welcome! If you have any ideas, suggestions or issues, feel free to open an issue or a pull request on GitHub.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixgro%2Fframez","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelixgro%2Fframez","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixgro%2Fframez/lists"}