this post was submitted on 13 Jan 2026
208 points (97.3% liked)

Selfhosted

60707 readers
556 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

I've been using various contact managers but they all feel like sales tools, so I built Nametag to track the people I actually care about - friends, family, colleagues. It maps relationships, tracks birthdays, and visualizes your network as an interactive graph.

Self-hosting highlights:

  • Docker Compose setup - PostgreSQL, Redis, Next.js app. One command to start
  • No email service needed - Accounts auto-verify, works completely offline
  • Unlimited contacts - No artificial limits (hosted version caps free tier at 50)
  • Complete data ownership - Your relationship data stays on your infrastructure
  • Optional email - Can configure Resend if you want birthday/reminder emails
  • No phone-home - Runs entirely on your network if you want
  • AGPL-3.0 licensed - Full source access

Features:

  • Track people with flexible attributes (name, birthday, contact info, notes)
  • Map relationships between people (family, friends, colleagues, custom types)
  • Interactive D3.js network graph visualization
  • Custom groups for organizing contacts
  • Birthday reminders (if you configure email)
  • Dark mode, i18n (English and Spanish for now, but more are coming)
  • Mobile-responsive

Tech stack:

  • Next.js 16 (TypeScript)
  • PostgreSQL + Prisma ORM
  • Redis for rate limiting
  • D3.js for graph visualization
  • Tailwind CSS

Quick start:

git clone https://github.com/mattogodoy/nametag
cd nametag
# Edit .env with your secrets
docker-compose up -d

Database migrations run automatically on first start.

Access at localhost:3000.

There's also a hosted version at https://nametag.one/ if you don't want to self-host (helps fund development).

GitHub: https://github.com/mattogodoy/nametag

Happy to answer questions about the setup, architecture, or deployment!

you are viewing a single comment's thread
view the rest of the comments
[โ€“] SomeDudeFromSpace@lemmy.ml 2 points 6 months ago (1 children)

Would you mind taking a look at this issue? https://github.com/mattogodoy/nametag/issues/15 I'm planning the implementation for CalDAV/CardDAV and have a few high level questions I'd like your opinion on. Thanks!

[โ€“] jjlinux@lemmy.zip 1 points 6 months ago* (last edited 6 months ago)

Sorry for the late reply. My wife has been keeping me busy with shit I don't want to do. ~~Looking at the conversation on github, I saw the first suggestion being the inclusion of pimsync into the docker compose file. I'm no developer, but it stands to reason that the same challenges remain if doing this because at the end of the day, pimsync is just a parser to sync with file systems, and for it to work with carddav the other party would still need to support carddav, right? So that idea is dead in the water.~~ I am going to reply now to your 4 questions in the github. My handle is 'mofongox'.

Edit. I was a complete moron and chose to asume before even trying the software. I replied to your comment on GitHub just now, and now that I'm clear on what this actually does (thank you for your patience man) I fixed my reply accordingly. The short of it is that any way to import the information from a carddav server, or even a template on how to format an import json file for the purpose of adding people should suffice. Thanks so much for this great addition to the FOSS community.