{"id":35118386,"url":"https://github.com/themeum/growfund","last_synced_at":"2026-04-06T12:03:33.055Z","repository":{"id":325458068,"uuid":"1095565661","full_name":"themeum/growfund","owner":"themeum","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-01T13:27:57.000Z","size":3810,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-01T15:26:21.480Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/themeum.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-11-13T08:13:50.000Z","updated_at":"2026-04-01T13:26:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/themeum/growfund","commit_stats":null,"previous_names":["themeum/growfund"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/themeum/growfund","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themeum%2Fgrowfund","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themeum%2Fgrowfund/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themeum%2Fgrowfund/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themeum%2Fgrowfund/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themeum","download_url":"https://codeload.github.com/themeum/growfund/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themeum%2Fgrowfund/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31471470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: 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":"2025-12-27T22:19:43.481Z","updated_at":"2026-04-06T12:03:33.030Z","avatar_url":"https://github.com/themeum.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Growfund Developer Guide\n\nGrowfund is a complete WordPress crowdfunding and donation plugin that helps you collect funds directly from your website. It’s perfect for nonprofits, community projects, charities, content creators, and personal causes who want full control over their fundraising system.\n\nWith Growfund, you can create unlimited crowdfunding campaigns, collect direct donations, etc. Most importantly, you can manage everything right from your WordPress dashboard without paying extra platform fees.\n\nIt’s built with PHP and React.js, so it’s fast, modern, and easy to use. Growfund gives you a clean interface, simple workflows, and powerful donor management features that anyone can handle.\n\nYou don’t need to be a tech expert or have any custom coding to manage donation campaigns or crowdfunding projects via Growfund. Its intuitive design and custom workflow make the overall campaign management smoother than ever. But under the hood, it’s strong enough for large organizations with thousands of donors.\n\n## Tech Stack\n\n- WordPress plugin, PHP 7.4+, Composer auto loading\n- React 19, TypeScript, Vite 6, TanStack Query, React Hook Form, Tailwind CSS UI\n- Docker Compose stack for WordPress, MariaDB 10.6, phpMyAdmin, and WP-CLI\n- Vitest, ESLint, TypeScript project references, zod schemas, Radix UI primitives\n\n## Repository Layout\n\n```\ngrowfund/\n├── apps/                             # React workspace (Vite, scripts, config)\n│   ├── growfund/                     # SPA source, assets, scripts\n│   └── package.json                  # All yarn scripts live here\n├── conf/                             # Custom PHP and Xdebug ini files\n├── docker-compose.yml                # Local WordPress + DB stack\n├── Dockerfile                        # Custom WordPress image with Xdebug\n├── readme.md                         # This document\n└── wordpress/                        # WordPress core + growfund plugin source\n    └── wp-content/plugins/growfund   # PHP, resources, Composer deps\n```\n\n## Prerequisites\n\n- Node.js 20+ and Yarn 1.22+\n- Docker Desktop with Compose v2\n- WordPress: Version 5.9 or higher (6.8+ recommended)\n- PHP: Version 7.4 or higher (PHP 8.0+ recommended)\n- MySQL: Version 5.7 or higher, or MariaDB 10.3 or higher\n- Memory Limit: 256MB minimum (512MB recommended)\n- Upload Limit: 64MB minimum for file uploads\n\n## Initial Setup\n\n1. Clone the repository `git clone git@github.com:themeum/growfund.git`\n2. Navigate to the directory `cd growfund`\n\n## Docker Services\n\n```\ndocker compose up --build -d\n```\n\n| Service      | Ports     | Purpose                                                          |\n| ------------ | --------- | ---------------------------------------------------------------- |\n| `wordpress`  | 8090 → 80 | WordPress with Growfund plugin, Xdebug enabled                   |\n| `db`         | internal  | MariaDB 10.6 with `growfund` database                            |\n| `phpmyadmin` | 8091 → 80 | UI for inspecting the MariaDB schema (`wordpress` / `wordpress`) |\n| `wpcli`      | on-demand | Runs WP-CLI commands against the same containers                 |\n\nVolumes mount `wordpress/` into `/var/www/html`, `conf/php.ini` and `conf/xdebug.ini` into PHP configuration, and persist MariaDB data under the `db` volume.\n\n## Install dependencies\n\n### Setting Up the React App\n\n1. Open your terminal and go to the React workspace:\n   ```sh\n   cd apps/\n   ```\n2. Install all project dependencies:\n   ```sh\n   yarn install\n   ```\n3. Start the development server:\n   ```sh\n   yarn dev\n   ```\n\n### Setting Up PHP Dependencies for WordPress\n\n1. In a new terminal tab/window, navigate to the Growfund plugin directory:\n   ```sh\n   cd wordpress/wp-content/plugins/growfund\n   ```\n2. Install PHP and Composer dependencies:\n   ```sh\n   composer install\n   ```\n3. (Optional) Optimize Composer's autoloader for better performance:\n   ```sh\n   composer dump-autoload -o\n   ```\n\n### WordPress Access\n\n- Site URL: `http://localhost:8090`\n- Admin: set up during the WordPress installer on first boot.\n- Login to the wordpress admin panel `http://localhost:8090/wp-admin`\n\n### Activating the Growfund Plugin\n\n1. Go to the WordPress admin panel: [http://localhost:8090/wp-admin](http://localhost:8090/wp-admin)\n2. Log in with your admin credentials.\n3. In the dashboard menu, go to **Plugins** \u003e **Installed Plugins**.\n4. Find **Growfund** in the list.\n5. Click **Activate** under the Growfund plugin.\n\n### Update your rewrite rules\n\nTo update your rewrite rules, follow these steps:\n\n1. Log in to your WordPress admin dashboard.\n2. Go to **Settings** \u003e **Permalinks**.\n3. Select **Permalink structure** anything but **Plain** (**Post name** is recommended)\n4. Scroll to the bottom and click the **Save Changes** button (you do not need to change any options).\n5. This will refresh your site's permalink structure and update the rewrite rules.\n6. If you are developing locally and changes don't take effect, try restarting your local server or clearing your browser cache.\n\nThe plugin is now active and ready for configuration.\n\n## Testing Matrix\n\n- Navigate to the apps directory `cd apps/`\n- React unit tests: `yarn test`\n- Linting: `yarn lint`\n\n## Contribution\n\n### How to Contribute\n\nWe welcome contributions from the community! To contribute to Growfund, please follow these steps:\n\n1. **Fork the Repository**\n\n   - Click the \"Fork\" button at the top right of the repository page to create your own copy.\n\n2. **Clone Your Fork**\n\n   ```sh\n   git clone https://github.com/your-username/growfund.git\n   cd growfund\n   ```\n\n3. **Create a New Branch**\n\n   - For bug fixes or features, create a branch with a descriptive name:\n\n   ```sh\n   git checkout -b your-feature-name\n   ```\n\n4. **Make Your Changes**\n\n   - Implement your changes in the appropriate files.\n   - Follow existing code style and best practices.\n   - Add tests when applicable.\n\n5. **Commit Your Changes**\n\n   ```sh\n   git add .\n   git commit -m \"Describe your changes\"\n   ```\n\n6. **Push to Your Fork**\n\n   ```sh\n   git push origin your-feature-name\n   ```\n\n7. **Open a Pull Request**\n\n   - Go to the main Growfund repo on GitHub.\n   - Click \"Compare \u0026 pull request\" and submit a PR from your branch.\n   - Fill out the pull request template and provide context for your changes.\n\n8. **Code Review**\n   - The maintainers will review your pull request and may request changes.\n   - Make revisions as needed and push updates to your branch.\n\n### Contribution Guidelines\n\n- Please ensure your code passes all tests and linting checks before submitting.\n- Keep pull requests focused; do not bundle unrelated changes.\n- Describe the problem and your solution clearly in your pull request.\n- For large features or architectural changes, open an issue for discussion before starting work.\n\nThank you for helping make Growfund better for everyone!\n\n## Troubleshooting\n\n- **Ports already in use**: adjust `8090`/`8091` in `docker-compose.yml` or stop conflicting apps.\n- **SPA cannot reach WordPress REST API**: ensure Docker is running and the browser uses `http://localhost:8090` as the backend URL.\n- **Database corruption**: `docker compose down -v` removes the MariaDB volume and forces a clean install.\n- **Slow PHP responses**: Xdebug is enabled by default; disable by removing `XDEBUG_MODE` in `docker-compose.yml` for production-like profiling.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemeum%2Fgrowfund","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemeum%2Fgrowfund","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemeum%2Fgrowfund/lists"}