Tech Stack
| Database | Backend | Frontend |
|---|---|---|
| Postgresql | ASP.NET Core MVC | Alpine.js, HTMX, Tailwind |
Libraries
TimePeriodLibrary — check availability, handle which events collide. Discussed in more depth here: Designing Calendar Events NodaTime — Replacement for DateTime (NOTE: TimePeriodLibrary expects DateTime objects and handles most of the math for us. Perhaps NodaTime is unnecessary?) iCal.net — Create and send calendar invitations MailKit — SMTP Stripe.net — Stripe integration Google (Google.Apis.Auth and Google.Apis.Calendar.v{x})