programozas-kft/nationforge-community
Open on GitHub →
What is NationForge?
NationForge is an open-core platform built for political movements, civic organizations, and community groups to manage their operations from a single, self-hosted admin panel.
Running an organization means juggling hundreds of contacts, events, volunteers, donors, and internal communication — all at once. Generic CRMs are expensive and built for sales teams, not communities. NationForge is purpose-built for the way civic organizations actually work.
Own your data. Host it yourself. Extend it freely.
Features
✅ = implemented · 🔲 = planned
Contacts (CRM)
- ✅ Full people database: name, status, address, phone, email, birthdate, gender, social links
- ✅ Status workflow: Prospect → Supporter → Member → Volunteer → Donor → VIP → Inactive
- ✅ Photo upload (Spatie MediaLibrary)
- ✅ Newsletter subscription management + unsubscribe token
- ✅ Custom fields (JSON), source tracking, notes, biography
- ✅ Donation statistics per contact (total donated, count, last donation date)
- ✅ Group membership & event RSVP history
- ✅ Soft deletes
- ✅ CSV / Excel import & export
- ✅ Advanced saved filters & search with named presets
- ✅ Duplicate detection & contact merge
- ✅ Per-contact activity log (interaction history)
- ✅ Contact scoring / lead scoring (6-stage pipeline + 1–5 stars)
Groups
- ✅ Types: Community, Campaign, Chapter, Committee, Team
- ✅ Privacy levels: Public / Private / Secret
- ✅ 28 custom icons per group
- ✅ Cover image, member list with role badges
- ✅ Built-in real-time group chat (Livewire)
- ✅ Soft deletes
- ✅ File sharing within groups (upload, download, delete; 20 MB limit; PDF, Office, images, ZIP)
- ✅ Group-level calendar (monthly view, linked to group events)
Events
- ✅ Types: Meetup, Rally, Webinar, Fundraiser, Volunteer, Conference
- ✅ Online & offline support (venue/city + online URL)
- ✅ Capacity management, ticket pricing fields
- ✅ RSVP tracking per event
- ✅ Public event registration page (name, email, phone, guests, notes, token)
- ✅ Status workflow: Draft → Published → Completed / Cancelled
- ✅ Cover image, featured flag, tags, soft deletes
- ✅ Registration confirmation email (automatic after sign-up)
- ✅ Volunteer shift scheduling with sign-up & attendance tracking
- ✅ Event check-in via QR code (camera scanner + personal ticket page)
- ✅ Waitlist management (auto-promotion, email notifications)
- ✅ Online payment for paid tickets (Stripe / Barion)
Email Campaigns
- ✅ Compose and send HTML / Markdown email campaigns
- ✅ Sender name & email configurable per campaign
- ✅ Delivery tracking: sent count, failed count, recipient count
- ✅ Status workflow: Draft → Sending → Sent / Failed
- ✅ Powered by Resend transactional email API
- ✅ Email template library (reusable layouts)
- ✅ Audience segmentation (send to group / tag / status)
- ✅ Automated drip / sequence campaigns
- ✅ One-click unsubscribe landing page
- ✅ Open & click tracking
Donations
- ✅ Donor records linked to contacts (or anonymous)
- ✅ Amount, currency, payment status, payment method, transaction ID
- ✅ Per-campaign tracking label
- ✅ Monthly donation totals on dashboard
- ✅ Recurring donation fields (interval, next charge date)
- ✅ Public online donation form
- ✅ Donation receipt / acknowledgment email
- ✅ Export for accounting (CSV, XLSX, PDF)
Projects & Tasks
- ✅ Project management: title, status, priority, start/end date
- ✅ Assigned team members (many-to-many)
- ✅ Overdue detection & progress percentage (based on tasks)
- ✅ Task list with status and deadlines per project
- ✅ Task comments & file attachments
- ✅ Gantt-style timeline view
Dashboard
- ✅ Stat cards: total contacts, upcoming events, donation totals, newsletter subscribers
- ✅ Chart.js charts: monthly donations (bar), contact growth (dual-axis line), status distribution (doughnut)
- ✅ Upcoming events panel, latest contacts feed
- ✅ Custom dashboard widget builder
- ✅ Scheduled summary reports via email (daily/weekly/monthly, configurable recipients & hour, "Send test" button)
Users & Roles
- ✅ Role-based access control: Super Admin, Admin, Editor, Member
- ✅ Powered by Spatie Laravel Permission
- ✅ User photo upload
- ✅ Users assignable to groups with roles
- ✅ Audit log (who changed what, when — with field-level diff)
- ✅ Invitation-based user registration (email invite, 7-day token, role pre-assignment)
Link Collection & Quick Links
- ✅ Configurable link library for the whole team (social media, news, resources)
- ✅ Custom colors, sort order, category grouping
- ✅ Quick links bar in top navigation
- ✅ Managed from Settings — no code needed
Settings
- ✅ App name, mail from address / name configurable from admin UI
- ✅ Changes written directly to
.env - ✅ Branding settings (logo, primary color, org name — applied to sidebar in real time)
- ✅ SMTP / mailer configuration from UI (SMTP, Resend API, log mode)
Help & Documentation
- ✅ Built-in help article editor (Markdown + image lightbox + video embed)
- ✅ Full 5-language documentation: HU / EN / DE / RO / SK
- ✅ Separate title & content columns per locale in the database
- ✅ Admin editor with per-language tabs (HU / EN / DE / RO / SK)
- ✅ Accessible to all users from the admin panel
Multi-language
- ✅ Full HU / EN / DE / RO / SK admin panel
- ✅ Language switcher in sidebar (SVG flag-icons)
- ✅ Per-session locale switching
- ✅ All 16 built-in help articles translated in all 5 languages
Integrations & API
- ✅ Outgoing webhooks — configurable HTTP POST to any URL on system events
- 12 event types:
contact.*,event.*,donation.created,campaign.sent,task.*,drip.enrolled - HMAC-SHA256 request signing (
X-NationForge-Signature) - Delivery log with per-attempt status, HTTP code and response body
- Automatic retry (3 attempts, 60 s backoff) via queue
- Manual retry for failed deliveries from the admin UI
- 12 event types:
- ✅ Google Calendar / iCal sync — public iCal feed (
/events.ics) subscribable in any calendar app; one-click "Add to Google Calendar" from the Integrations page - ✅ Facebook Events sync — publish events to a Facebook Page via Graph API (Page Access Token in Integrations settings)
- ✅ Zapier / Make (Integromat) integration — use existing outgoing webhooks as triggers; step-by-step guide built into the Integrations page
Advanced / Enterprise
- ✅ Multi-organization / Multi-tenant support
- ✅ White-label & custom domain per tenant
- ✅ Advanced reporting & data export
- ✅ Two-factor authentication (TOTP)
- ✅ REST API for mobile clients
- ✅ Document storage (files per contact / project)
- ✅ Survey & form builder
- ✅ Petition / signature collection
- ✅ Volunteer hours tracking
- ✅ Priority support & SLA
- ✅ Managed cloud hosting
Tech Stack
| Layer | Technology |
|---|---|
| Backend | PHP 8.2+, Laravel 12 |
| Templating | Blade |
| Reactivity | Livewire 3 + Volt |
| Auth | Laravel Breeze |
| Roles & Permissions | Spatie Laravel Permission |
| Media | Spatie Laravel MediaLibrary |
| Charts | Chart.js 4.4 |
| CSS | Tailwind CSS |
| Database | MySQL 8+ / SQLite |
Requirements
- PHP >= 8.2
- Composer 2
- Node.js >= 18 + NPM
- MySQL 8+ (or SQLite for local development)
Installation
# 1. Clone the repository
git clone https://github.com/programozas-kft/nationforge.git
cd nationforge
# 2. Install PHP & JS dependencies
composer install
npm install
# 3. Set up environment
cp .env.example .env
php artisan key:generate
# 4. Configure database in .env
# DB_DATABASE=nationforge
# DB_USERNAME=root
# DB_PASSWORD=
# 5. Run migrations & link storage
php artisan migrate
php artisan storage:link
# 6. Build frontend assets
npm run build
Or use the one-command setup:
composer run setup
Create your first admin user
php artisan tinker
$user = User::create(['name' => 'Admin', 'email' => 'admin@example.com', 'password' => bcrypt('password')]);
$user->assignRole('super-admin');
Local Development
composer run dev
Starts the Laravel server, Vite, queue listener and log watcher concurrently.
Open Core Model
NationForge follows an Open Core strategy — the community foundation is MIT-licensed and free forever, while advanced enterprise features are available in the Pro tier.
The Community / Pro split is being finalized. See the Features section above for the full list (✅ done, 🔲 planned). The table below will be updated once the split is confirmed.
| Feature | Community (this repo) | Pro / Enterprise |
|---|---|---|
| Full source code | ✅ | ✅ |
| Contacts, Groups, Events | ✅ | ✅ |
| Donations, Projects, Tasks | ✅ | ✅ |
| Built-in chat | ✅ | ✅ |
| Email campaign sender | ✅ | ✅ |
| Multi-language (HU/EN) | ✅ | ✅ |
| CSV / Excel import & export | ✅ | ✅ |
| Advanced filters & saved presets | ✅ | ✅ |
| Duplicate detection & merge | ✅ | ✅ |
| Activity log per contact | ✅ | ✅ |
| Lead scoring (pipeline + stars) | ✅ | ✅ |
| Event QR code check-in | ✅ | ✅ |
| Waitlist management with auto-promotion | ✅ | ✅ |
| Outgoing webhooks (12 event types, HMAC-signed) | ✅ | ✅ |
| Google Calendar / iCal sync | ✅ | ✅ |
| Facebook Events sync | ✅ | ✅ |
| Zapier & Make (Integromat) integration | ✅ | ✅ |
| Help documentation (5 languages: HU/EN/DE/RO/SK) | ✅ | ✅ |
| Advanced analytics & reports | — | ✅ |
| Multi-organization / Multi-tenant | — | ✅ |
| White-label & custom domain | — | ✅ |
| Two-factor authentication (TOTP) | — | ✅ |
| REST API for mobile clients | — | ✅ |
| Document storage | — | ✅ |
| Survey & form builder | — | ✅ |
| Petition / signature collection | — | ✅ |
| Volunteer hours tracking | — | ✅ |
| Priority support & SLA | — | ✅ |
| Managed cloud hosting | — | ✅ |
Interested in Pro or managed hosting? → View NationForge Pro · programozas.kft@gmail.com
Contributing
Pull requests are welcome for bug fixes, UI improvements, and translations.
- Fork the repository
- Create your branch:
git checkout -b fix/your-fix - Commit:
git commit -m "Fix: description" - Push and open a Pull Request
For larger features, please open an Issue first so we can discuss direction before you invest the time.
Security
If you discover a security vulnerability, please email programozas.kft@gmail.com instead of opening a public issue. All reports are addressed promptly.
License
The NationForge Community Edition is released under the MIT License.