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!

  • Neofox@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 hours ago

    Congratulations on the launch! Could this also be used as a genealogy tree? I’ve been wanting for a long time to create mine but the options I found were too expensive and I wasn’t up to create it from scratch (too long and not future proof).

    • Harald_im_Netz@feddit.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 hour ago

      Ugh, also looking for a way to digitalize mine, but all tools I’ve found are either way too complex or lack critical functions, like e. g. supporting patchwork families/split-up parents which have new children.

  • cravl@slrpnk.net
    link
    fedilink
    English
    arrow-up
    3
    ·
    4 hours ago

    For small personal deployments, is SQLite support planned? It’s crazy performant and I have to imagine it would work for up to 500 contacts at the very least, which should cover the majority of deployments. Making Redis optional (otherwise using a basic in-memory KV store of some kind) would also be cool.

    • SomeDudeFromSpace@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      3 hours ago

      I love SQLite, and I agree that it could very well fit this project. I’m adding it to my list :) Thanks for the feedback!

      • filcuk@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 hours ago

        I’m subbing to releases, definitely keeping an eye on this!
        I’m currently having sync my carddav to nocodb for relationships and other details since monica went bust, which isn’t very practical.

  • petersr@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 hours ago

    I remember using Monica years back for something similar. Quickly lost the habits of using it since it was a lot of work updating and it didn’t feel like it was worth the effort.

    • klymilarkA
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 hours ago

      I use org-roam (similar to Obsidian) to do that, the graph is neat for it! I only personally go to metamours, but I might pass an Obsidian vault around to see how deep that rabbit hole goes.

      • GenderNeutralBro@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        8 hours ago

        A poly group (also known as a polycule) is a network of polyamorous people’s relationships. Polyamory, in case you’re unaware, is the practice of having multiple romantic or sexual partners at the same time, in contrast to monogamy.

        If you were polyamorous and wanted to graph out your relationships, you could do it a few different ways. For example:

        • Just you and your partners. If any of your partners are also in relationships with each other, you’d draw lines between them as well.

        • Extend an extra level and include all of your partners’ partners (known as metamours), again connecting any pair on the graph who are partners.

        • Extend that further and include all of your partners’ partners’ partners (no specific term for this as far as I know). This would likely include people you don’t personally know, and it would be difficult to build a complete graph of all their relationships.

        Etc.

        • Victor@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 hours ago

          I had a feeling they were talking about polyamory, but I wasn’t sure since it felt a lot like over-sharing. But I guess it’s good to announce any and all use cases for something like this, why not. 👍

        • femtek@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          0
          ·
          8 hours ago

          Yeah, we have been wanting to make a who is connected to who chart. I was going to use draw io but it was a little manual.

          • Passerby6497@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 hours ago

            I don’t have the attention span to draw out a Pepe Silva looking graph (even if I periodically have to try to explain it to newbies haha)

  • Shady_Shiroe@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    10 hours ago

    Quick question, when hosted plan says up to 50 people, is that you can add 50 people to remember or 50 people can access one database?

  • eli@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    7 hours ago

    This looks great. I’m running a Teable instance, but sometimes it feels like it is “too much” sometimes.

    I think I’ll deploy this for fun to check out. I don’t see anything specific here for things like gift ideas or favorite flowers/colors? Like custom tags/categories/attributes.

    I’m using Teable to track things like that, but I love the visualization here, reminds me of my obsidian mind map lol.

    • SomeDudeFromSpace@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 hours ago

      Thanks for the feedback! I wanted to keep it simple, so I just added a single notes field for purposes like those. This said, I am also considering adding custom attributes to people to solve these needs that apply to some of the contacts, but not all.

      • eli@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 hours ago

        I would appreciate some type of custom attributes, but the notes section works fine as-is, so definitely not a huge “need” IMO.

        I have used Monica/other CRMs in the past, but they all felt a bit too corporate or “sales” driven like you said in your OP.

        I spun up a quick docker instance in my test environment and I’m using it right now, it’s been quite solid! I do have some confusion with how relationships get applied(from/to in regards to child/parent), but I believe I just need to use it a bit more to get used to the “flow” of how it is supposed to work.

        My biggest want/need is being able to select multiple people at once to add to another person, so I guess a “bulk” edit or multi-select. Like adding 10 “child” to one “parent” at once if all of the children have already been created. Or if some logic can be applied where if one parent(dad) has three children, then you add a spouse(mom) to dad, then nametag can auto-add or offer to bulk edit the three children to add the new spouse(mom) as a parent too? Just quicker/better/fluid workflow.

        Again, the site as-is is already solid. Just some fine-tuning IMO.

    • Bluesheep@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      7 hours ago

      I only found out about Monica from one of the ADHD communities, and when I looked there has been. No update for almost a year. I thought it might be dead?

      • SomeDudeFromSpace@lemmy.mlOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        6 hours ago

        That is one of the reasons I started this project. Monica feels too complex for what I need. Also, self hosting it is not very straightforward. And finally, as you mentioned, it seems to be a bit abandoned and outdated.

        • Bluesheep@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 hours ago

          I like what you’ve got and will give it a go. I’m following a trail that started with an iOS app for helping you keep track of when you last contacted your friends. I couldn’t see that in your screenshots, but it would be a great feature for me at least!

          • SomeDudeFromSpace@lemmy.mlOP
            link
            fedilink
            English
            arrow-up
            1
            ·
            3 hours ago

            Thank you! Yes, there are reminders for keeping up with your friends, and you can set the frequency you want for each contact. Also, mobile apps are on the roadmap :)

    • RadDevon@lemmy.zip
      link
      fedilink
      English
      arrow-up
      3
      ·
      10 hours ago

      Couldn’t the same be said for just about any self-hosted app? You can watch video files with a local video player, so no need for Jellyfin; you can save passwords in KeePass, so no need for Vaultwarden; etc.

      Seems to me like, if you’d like to have access to this app along with your data from any computer without having to overlay a separate data syncing solution and install a local app on each of those computers, that’s justification enough. Or maybe I’m just not understanding your critique here…

      • Autonomous User@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        arrow-down
        1
        ·
        edit-2
        6 hours ago

        It’s not Minecraft. My contacts list is not multiplayer.

        It’s not a video file. How many terabytes do you think my contacts list is?

        How many people do you think are getting a server before getting a file sync app?