About Humans
Made by Peter with love for the Nobodies Community.
Humans is the membership system that keeps Nobodies Collective running — volunteer onboarding, team provisioning, governance tracking, and all the plumbing that lets a Spanish nonprofit operate with the organisational memory of something ten times its size. Built with care, maintained with stubbornness, and deployed with crossed fingers.
Need help? humans@nobodies.team
License
Humans is free software, released under the GNU Affero General Public License v3.0 (AGPL-3.0).
You may use, study, modify, and redistribute this software. If you run a modified version and let others interact with it over a network, you must make your modified source available under the same license.
Full license text: gnu.org/licenses/agpl-3.0 · Source code: github.com/peterdrier/Humans
The Ingredients
Every workshop needs its materials. Here is what Humans is built from:
.NET 10
ASP.NET Core MVC with Razor views, Identity, and the whole Microsoft stack. The frame that holds everything together.
PostgreSQL + EF Core
Relational data with Entity Framework Core and Npgsql.
NodaTime types all the way down — no DateTime in sight.
Google Workspace APIs
Admin Directory, Drive, and Groups — provisioning Shared Drives, folders, and mailing lists so nobody has to do it by hand.
Hangfire
Background jobs for sync, reconciliation, and anything that shouldn't block an HTTP request. PostgreSQL-backed, dashboard included.
OpenTelemetry + Serilog
Structured logging, distributed traces, and Prometheus metrics. Because "it works on my machine" isn't a monitoring strategy.
MailKit
Transactional email for notifications and onboarding. The one library that makes SMTP feel almost pleasant.
Open Source Licenses
Humans is built on the shoulders of open-source projects. The table below lists every production dependency, its version, and license.
NuGet Packages
| Category | Package | Version | License |
|---|---|---|---|
| Framework | Microsoft.AspNetCore.Identity.EntityFrameworkCore | 10.0.3 | MIT |
| Framework | Microsoft.AspNetCore.Authentication.Google | 10.0.3 | MIT |
| Framework | Microsoft.AspNetCore.DataProtection.EntityFrameworkCore | 10.0.3 | MIT |
| Framework | Microsoft.EntityFrameworkCore | 10.0.3 | MIT |
| Framework | Microsoft.Extensions.Localization | 10.0.3 | MIT |
| Database | Npgsql.EntityFrameworkCore.PostgreSQL | 10.0.0 | PostgreSQL |
| Database | Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime | 10.0.0 | PostgreSQL |
| Date/Time | NodaTime | 3.3.0 | Apache-2.0 |
| Date/Time | NodaTime.Serialization.SystemTextJson | 1.3.1 | Apache-2.0 |
| State Machine | Stateless | 5.20.1 | Apache-2.0 |
| Background Jobs | Hangfire.Core | 1.8.23 | LGPL-3.0 |
| Background Jobs | Hangfire.AspNetCore | 1.8.23 | LGPL-3.0 |
| Background Jobs | Hangfire.PostgreSql | 1.21.1 | LGPL-3.0 |
| MailKit | 4.15.0 | MIT | |
| GitHub API | Octokit | 14.0.0 | MIT |
| Google APIs | Google.Apis.Admin.Directory.directory_v1 | 1.73.0.4030 | Apache-2.0 |
| Google APIs | Google.Apis.Drive.v3 | 1.73.0.4045 | Apache-2.0 |
| Google APIs | Google.Apis.DriveActivity.v2 | 1.70.0.3880 | Apache-2.0 |
| Google APIs | Google.Apis.Auth | 1.73.0 | Apache-2.0 |
| Resilience | Polly | 8.6.5 | BSD-3-Clause |
| Observability | OpenTelemetry.Exporter.OpenTelemetryProtocol | 1.15.0 | Apache-2.0 |
| Observability | OpenTelemetry.Exporter.Prometheus.AspNetCore | 1.10.0-beta.1 | Apache-2.0 |
| Observability | OpenTelemetry.Extensions.Hosting | 1.15.0 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.AspNetCore | 1.15.0 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.EntityFrameworkCore | 1.0.0-beta.12 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.Http | 1.15.0 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.Runtime | 1.15.0 | Apache-2.0 |
| Logging | Serilog.AspNetCore | 10.0.0 | Apache-2.0 |
| Logging | Serilog.Sinks.Debug | 3.0.0 | Apache-2.0 |
| Logging | Serilog.Sinks.OpenTelemetry | 4.2.0 | Apache-2.0 |
| Image Processing | SkiaSharp | 3.119.2 | MIT |
| Image Processing | SkiaSharp.NativeAssets.Linux | 3.119.2 | MIT |
| Markdown | Markdig | 0.45.0 | BSD-2-Clause |
| Health Checks | AspNetCore.HealthChecks.NpgSql | 9.0.0 | Apache-2.0 |
| Health Checks | AspNetCore.HealthChecks.Hangfire | 9.0.0 | Apache-2.0 |
| Health Checks | AspNetCore.HealthChecks.Uris | 9.0.0 | Apache-2.0 |
Frontend / CDN Dependencies
| Library | Version | License |
|---|---|---|
| Bootstrap | 5.3.3 | MIT |
| Font Awesome | 6.5.1 | Fonts: SIL OFL 1.1 · Code: MIT |
| Cormorant Garamond | — | SIL OFL 1.1 |
| Source Sans 3 | — | SIL OFL 1.1 |
License Compliance Summary
All production dependencies use permissive or weak-copyleft licenses. No violations found.
- MIT — requires copyright notice; this page satisfies that obligation.
- Apache-2.0 — requires copyright notice, license copy, and statement of changes if modified. All packages are used unmodified.
- BSD-2-Clause / BSD-3-Clause — requires copyright notice in documentation.
- PostgreSQL License — permissive, MIT-like; copyright notice required.
- LGPL-3.0 (Hangfire) — the library must be replaceable by the end user. Hangfire is consumed as unmodified NuGet packages (dynamically linked), satisfying LGPL obligations. Source available at github.com/HangfireIO/Hangfire.
- SIL OFL 1.1 (fonts) — free to use and redistribute; fonts cannot be sold standalone.