programozas-kft/
nationforge-community
g4t.io

NationForge: A Self-Hosted Admin Panel for Civic Organizations

23 stars by Yannick Lyn Fatt

Open-source CRM & community management platform for civic organizations. Built with Laravel 12 + Livewire.

civic-tech community-management crm laravel livewire open-source php political-organizing
README from 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
  • ✅ 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.

  1. Fork the repository
  2. Create your branch: git checkout -b fix/your-fix
  3. Commit: git commit -m "Fix: description"
  4. 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.


More from the ecosystem

marcreichel/
laya-php
g4t.io
3 53

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Classify text in PHP without an LLM bill: typed decisions in 100+ languages, self-hosted. Laravel-ready SDK for Laya, a Jev AI alternative.

ai classification decision-engine
marcreichel/laya-php via Laravel News
Josh-Dovey/
postcodes-laravel
g4t.io
5 9

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Postcodes for Laravel adds typed GB postcode lookups, validation, geography data, distance searches, and test fakes through the GB Postcodes API.

Josh-Dovey/postcodes-laravel via Laravel News
RedberryProducts/
mailbox-for-laravel
g4t.io
4 115

Mailbox for Laravel: Preview and Test Rendered Email

Mailbox for Laravel captures outgoing mail in a local dashboard and lets you test rendered HTML, recipients, and attachments with fluent assertions.

RedberryProducts/mailbox-for-laravel via Laravel News