QA • QA • QA • QA • QA • QA • QA • QA • QA • QA • QA • QA • QA • QA • QA

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
Email 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.