Growfund 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.
With 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.
It’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.
You 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.
- WordPress plugin, PHP 7.4+, Composer auto loading
- React 19, TypeScript, Vite 6, TanStack Query, React Hook Form, Tailwind CSS UI
- Docker Compose stack for WordPress, MariaDB 10.6, phpMyAdmin, and WP-CLI
- Vitest, ESLint, TypeScript project references, zod schemas, Radix UI primitives
growfund/
├── apps/ # React workspace (Vite, scripts, config)
│ ├── growfund/ # SPA source, assets, scripts
│ └── package.json # All yarn scripts live here
├── conf/ # Custom PHP and Xdebug ini files
├── docker-compose.yml # Local WordPress + DB stack
├── Dockerfile # Custom WordPress image with Xdebug
├── readme.md # This document
└── wordpress/ # WordPress core + growfund plugin source
└── wp-content/plugins/growfund # PHP, resources, Composer deps
- Node.js 20+ and Yarn 1.22+
- Docker Desktop with Compose v2
- WordPress: Version 5.9 or higher (6.8+ recommended)
- PHP: Version 7.4 or higher (PHP 8.0+ recommended)
- MySQL: Version 5.7 or higher, or MariaDB 10.3 or higher
- Memory Limit: 256MB minimum (512MB recommended)
- Upload Limit: 64MB minimum for file uploads
- Clone the repository
git clone git@github.com:themeum/growfund.git - Navigate to the directory
cd growfund
docker compose up --build -d
| Service | Ports | Purpose |
|---|---|---|
wordpress |
8090 → 80 | WordPress with Growfund plugin, Xdebug enabled |
db |
internal | MariaDB 10.6 with growfund database |
phpmyadmin |
8091 → 80 | UI for inspecting the MariaDB schema (wordpress / wordpress) |
wpcli |
on-demand | Runs WP-CLI commands against the same containers |
Volumes mount wordpress/ into /var/www/html, conf/php.ini and conf/xdebug.ini into PHP configuration, and persist MariaDB data under the db volume.
- Open your terminal and go to the React workspace:
cd apps/ - Install all project dependencies:
yarn install
- Start the development server:
yarn dev
- In a new terminal tab/window, navigate to the Growfund plugin directory:
cd wordpress/wp-content/plugins/growfund - Install PHP and Composer dependencies:
composer install
- (Optional) Optimize Composer's autoloader for better performance:
composer dump-autoload -o
- Site URL:
http://localhost:8090 - Admin: set up during the WordPress installer on first boot.
- Login to the wordpress admin panel
http://localhost:8090/wp-admin
- Go to the WordPress admin panel: http://localhost:8090/wp-admin
- Log in with your admin credentials.
- In the dashboard menu, go to Plugins > Installed Plugins.
- Find Growfund in the list.
- Click Activate under the Growfund plugin.
To update your rewrite rules, follow these steps:
- Log in to your WordPress admin dashboard.
- Go to Settings > Permalinks.
- Select Permalink structure anything but Plain (Post name is recommended)
- Scroll to the bottom and click the Save Changes button (you do not need to change any options).
- This will refresh your site's permalink structure and update the rewrite rules.
- If you are developing locally and changes don't take effect, try restarting your local server or clearing your browser cache.
The plugin is now active and ready for configuration.
- Navigate to the apps directory
cd apps/ - React unit tests:
yarn test - Linting:
yarn lint
We welcome contributions from the community! To contribute to Growfund, please follow these steps:
-
Fork the Repository
- Click the "Fork" button at the top right of the repository page to create your own copy.
-
Clone Your Fork
git clone https://github.com/your-username/growfund.git cd growfund -
Create a New Branch
- For bug fixes or features, create a branch with a descriptive name:
git checkout -b your-feature-name
-
Make Your Changes
- Implement your changes in the appropriate files.
- Follow existing code style and best practices.
- Add tests when applicable.
-
Commit Your Changes
git add . git commit -m "Describe your changes"
-
Push to Your Fork
git push origin your-feature-name
-
Open a Pull Request
- Go to the main Growfund repo on GitHub.
- Click "Compare & pull request" and submit a PR from your branch.
- Fill out the pull request template and provide context for your changes.
-
Code Review
- The maintainers will review your pull request and may request changes.
- Make revisions as needed and push updates to your branch.
- Please ensure your code passes all tests and linting checks before submitting.
- Keep pull requests focused; do not bundle unrelated changes.
- Describe the problem and your solution clearly in your pull request.
- For large features or architectural changes, open an issue for discussion before starting work.
Thank you for helping make Growfund better for everyone!
- Ports already in use: adjust
8090/8091indocker-compose.ymlor stop conflicting apps. - SPA cannot reach WordPress REST API: ensure Docker is running and the browser uses
http://localhost:8090as the backend URL. - Database corruption:
docker compose down -vremoves the MariaDB volume and forces a clean install. - Slow PHP responses: Xdebug is enabled by default; disable by removing
XDEBUG_MODEindocker-compose.ymlfor production-like profiling.