About Humans
Made by Peter with love for the Nobodies Community.
Humans is the membership system that keeps Nobodies Collective running — human 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
With additional help from Jokin, Aaron, David, Laura, and Daniel.
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
Conversational helper responses are produced by Anthropic's API. No data is used for model training per Anthropic's DPA.
| Category | Package | Version | License |
|---|---|---|---|
| AI/LLM | Anthropic | 12.27.0 | MIT |
| Framework | Microsoft.AspNetCore.Identity.EntityFrameworkCore | 10.0.8 | MIT |
| Framework | Microsoft.AspNetCore.Authentication.Google | 10.0.8 | MIT |
| Framework | Microsoft.AspNetCore.DataProtection.EntityFrameworkCore | 10.0.8 | MIT |
| Framework | Microsoft.AspNetCore.DataProtection.Extensions | 10.0.8 | MIT |
| Framework | Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation | 10.0.8 | MIT |
| Framework | Microsoft.EntityFrameworkCore | 10.0.8 | MIT |
| Framework | Microsoft.Extensions.Localization | 10.0.8 | MIT |
| Database | Npgsql.EntityFrameworkCore.PostgreSQL | 10.0.1 | PostgreSQL |
| Database | Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime | 10.0.1 | PostgreSQL |
| Date/Time | NodaTime | 3.3.2 | Apache-2.0 |
| Date/Time | NodaTime.Serialization.SystemTextJson | 1.3.1 | Apache-2.0 |
| Calendar | Ical.Net | 5.2.2 | MIT |
| Spreadsheet | ClosedXML | 0.105.0 | MIT |
| 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.17.0 | MIT | |
| GitHub API | Octokit | 14.0.0 | MIT |
| Google APIs | Google.Apis.Admin.Directory.directory_v1 | 1.74.0.4159 | Apache-2.0 |
| Google APIs | Google.Apis.CloudIdentity.v1 | 1.74.0.4161 | Apache-2.0 |
| Google APIs | Google.Apis.Drive.v3 | 1.74.0.4135 | Apache-2.0 |
| Google APIs | Google.Apis.DriveActivity.v2 | 1.74.0.3880 | Apache-2.0 |
| Google APIs | Google.Apis.Groupssettings.v1 | 1.74.0.2721 | Apache-2.0 |
| Google APIs | Google.Apis.Auth | 1.75.0 | Apache-2.0 |
| Resilience | Polly | 8.6.6 | BSD-3-Clause |
| Observability | OpenTelemetry.Exporter.OpenTelemetryProtocol | 1.15.3 | Apache-2.0 |
| Observability | OpenTelemetry.Exporter.Prometheus.AspNetCore | 1.15.0-beta.1 | Apache-2.0 |
| Observability | OpenTelemetry.Extensions.Hosting | 1.15.3 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.AspNetCore | 1.15.2 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.EntityFrameworkCore | 1.15.0-beta.1 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.Http | 1.15.1 | Apache-2.0 |
| Observability | OpenTelemetry.Instrumentation.Runtime | 1.15.1 | Apache-2.0 |
| Logging | Serilog | 4.3.1 | 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 | Magick.NET-Q8-AnyCPU | 14.14.0 | Apache-2.0 |
| Markdown | Markdig | 1.2.0 | BSD-2-Clause |
| Sanitization | HtmlSanitizer | 9.0.892 | MIT |
| User-Agent | MyCSharp.HttpUserAgentParser | 3.1.6 | MIT |
| Payments | Stripe.net | 51.1.0 | Apache-2.0 |
| 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 |
| MapLibre GL JS | 4.7.1 | BSD-3-Clause |
| maplibre-gl-draw | 1.4.0 | ISC |
| Turf.js | 7.1.0 | MIT |
| @microsoft/signalr | 8.0.7 | MIT |
| Cormorant Garamond | — | SIL OFL 1.1 |
| Source Sans 3 | — | SIL OFL 1.1 |
| Chart.js | 4.x | MIT |
| @zxing/browser | 0.1.5 | MIT |
License Compliance Summary
All production dependencies use permissive or weak-copyleft licenses. No violations found.
- MIT — requires copyright notice; this page satisfies that obligation.
- BSD-3-Clause (MapLibre GL JS) — requires copyright notice; this page satisfies that obligation.
- ISC (maplibre-gl-draw) — permissive, functionally equivalent to BSD-2-Clause; copyright notice required.
- 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. 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.