

First, thank you for AI disclosure. Second, thank you for auto-filling the credentials for the demo. That small attention to detail is always a green-flag for me. I also had a great laugh at Rich’s timeline in the demo.
There was actually another CRM-like self-hosted software that I had written down to check out called Nametag, but the last time I looked at it, it didn’t have CardDav support, so I wonder how this would compare.
I am curious why you’ve exposed the backend port by default for the Docker Compose file. Is this for future external API access or just to ping the healthcheck thru something like Uptime Kuma? Why not just put both the frontend and backend in a network (I do already see the frontend having a depends_on dependency? I guess my assumption would be if the frontend is down, so would the back.
But this looks really neat, thank you for sharing! The next time I get some free-time I’ll spin up a little test instance for a deeper dive.
Omg, this is embarrassing, I just realized my dyslexia strikes again. I read that as
portsand notexpose. That’s nice, I rarely ever see that being used. Thank you for the explanation.