# Mascarpone CRM I always write "cream cheese" on my grocery list as "crm chs", so that's what I think of when I see "CRM". ## Planned Features * Local contacts * Contacts stored on a remote CardDAV server * Act as CardDAV server for other clients * For each contact: * Name, address as single fields (plus code? lat/long? go crazy!) * Relationship mapping * Birthday reminders * Desired contact periodicity * Last-contact-time mapping * Additional arbitrary fields * Journal with Obsidian-like `[[link]]` syntax * Contact groups (e.g. "Met with `[[Brunch Bunch]]` at the diner") * "Named in journal but has no contact entry" detection * CalDAV server for birthday reminders * Email birthday reminders over SMTP ## Tech axum: fast and scalable, lots of middleware from tower axum-htmx: helpers when dealing with htmx headers axum-login: user auth, has oauth2 and user permissions tower-sessions: save user sessions (Redis, sqlite, memory, etc.) fred: Redis client for user sessions tracing: trace and instrument async logs reqwest: for API calls, oath2 anyhow: turn any error into an AppError returning: “Internal Server Error” maud: templating html, can split fragments into functions in a single file (LoB) sqlx: dealing with a database, migrations, reverts