Welcome to our newsletter!

This is a code-along implementation of zero2prod.
The server is built in async Rust with Actix Web and SQLx for database interactions, the website is server-side generated with Askama. The API documentation is generated with Utoipa and available at /swagger-ui/.

This website is a newsletter management portal, featuring:

The newsletter publication is asynchronous, idempotent and resilient to transient errors.
It uses a database queue and background workers to achieve asynchronous part. And uses idempotency keys to avoid publishing the same newsletter twice.
Error handling ensures newsletter emails are sent at most once to each subscriber, even in the event of a network outage or an email sender (SendGrid) downtime.

The newsletter subscription is done by submitting a form and clicking a confirmation link received by email.

Admin registration is currently manual with a CLI tool, but the website allows them to reset their password using a dedicated form with validation.