Skip to main content

A client-server notification system for HTML emails, sms and more.

Project description

badge_pipeline badge_coverage badge_release badge_pyver badge_license

https://raw.githubusercontent.com/tattler-community/tattler-community/main/docs/source/tattler-logo-large-colorneutral.png

🚩 Table of contents

  1. 👀 What is tattler?

  2. 🤩 Examples

  3. 🚀 Quick start

  4. 💙 Help us be better

  5. 🎖️ License

  6. 📈 Enterprise users

  7. 📌 Links

👀 What is tattler?

Are you building an online service and need to send beautiful, branded notifications via email or SMS to your users?

Tattler makes that easy for you. Your application makes a simple HTTP call to tattler:

curl -X POST 'http://127.0.0.1:11503/notification/mywebapp/password_changed/?user=123'

Tattler helps you with these:

  1. Templates: Load templates for event password_changed for email, SMS etc.

  2. Addressbook: Fetch the user’s email address and mobile number from your DB (with trivial-to-write plug-ins).

  3. Template data: Fetch variables for your templates from your DB (with trivial-to-write plug-ins).

  4. MIME: Package a multi-part email with HTML+text fallback.

  5. Delivery: Send the content through SMTP and an SMS delivery network.

  6. Dev mode: Let your applications trigger notifications to the real user and have tattler only deliver it to your debug address.

Tattler is designed with simplicity in mind. It strives to be easy to adopt and useful among common needs – so you can focus on your communication, brand and customer journey.

If your system sends notifications from multiple different softwares – say a web application, a billing daemon, and a cron job which monitors inventory – then your simplification gains with tattlers get multipled 🚀

https://raw.githubusercontent.com/tattler-community/tattler-community/main/demos/tattler-benefit.png

😵‍💫 Don’t beat around the bush!

Tattler is:

  • a server

  • written in python

  • for UNIX systems

  • that exposes a REST interface

  • which your applications contact

  • to request delivery of notifications to users.

🤩 Examples

Here’s a little gallery of notifications sent via tattler to email and SMS:

https://raw.githubusercontent.com/tattler-community/tattler-community/main/demos/tattler-notification-example-email-html.png

Fig 1. Example notification as HTML email.

https://raw.githubusercontent.com/tattler-community/tattler-community/main/demos/tattler-notification-example-email-plaintext.png

Fig 2. Its corresponding plain text version.

https://raw.githubusercontent.com/tattler-community/tattler-community/main/demos/tattler-notification-demo-email-html-light.png

Fig 3. Tattler’s demo notification with reusable code samples.

https://raw.githubusercontent.com/tattler-community/tattler-community/main/demos/tattler-notification-example-sms.png

Fig 4. A SMS notification.

🚀 Quick start

Install tattler:

# create and load a virtualenv to install into
mkdir ~/tattler_quickstart
python3 -m venv ~/tattler_quickstart/venv
. ~/tattler_quickstart/venv/bin/activate

# install tattler into it
pip install tattler

Run tattler server:

export TATTLER_MASTER_MODE=production

# if you need to customize your SMTP settings
export TATTLER_SMTP_ADDRESS="127.0.0.1:25"
export TATTLER_SMTP_AUTH="username:password" # you will learn secure configuration later
export TATTLER_SMTP_TLS=yes

# run tattler server on default 127.0.0.1:11503
tattler_server

Trigger a demo notification via HTTP:

# in a new terminal:

# replace ``your@email.com`` with your actual email address
curl -X POST 'http://127.0.0.1:11503/notification/demoscope/demoevent/?mode=production&user=your@email.com'

… or via command-line utility:

# load the same virtual environment where you installed tattler server
. ~/tattler_quickstart/venv/bin/activate

# replace ``your@email.com`` with your actual email address
tattler_notify -s '127.0.0.1:11503' -m production your@email.com demoscope demoevent

… or via tattler’s python SDK:

from tattler.client.tattler_py import send_notification

# replace ``your@email.com`` with your actual email address
send_notification('demoscope', 'demoevent', 'your@email.com', mode='production', srv_addr='127.0.0.1', srv_port=11503)

Done!

Want more? Proceed to the complete quickstart in tattler’s documentation for plug-ins, deployment and more.

💙 Help us be better

Here’s how you can help, in order of increasing time commitment 🙂

  • ⭐️ star our repository if you like tattler. That’s our go-to place whenever we feel sad! 😁

  • Let us know that you are using tattler. How long? For what organization? What is your feedback?

  • Blog about tattler. If you found tattler useful, chances are your post will be useful to others too.

  • Report any issue in our code or docs. We take those seriously.

  • Package tattler for your distribution. Else Ubuntu, Debian, CentOS and FreeBSD will serve the most people.

  • Implement a client for tattler in another language.

See our contributing guidelines for details.

🎖️ License

Tattler is open-source software (BSD 3-clause license).

📈 Enterprise users

Tattler is enterprise-friendly. Enterprise users avail of a subscription which provides a bugfixing warranty, extra features, and patronage for the continuity of the project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tattler-1.5.2.tar.gz (72.8 kB view details)

Uploaded Source

Built Distribution

tattler-1.5.2-py3-none-any.whl (92.4 kB view details)

Uploaded Python 3

File details

Details for the file tattler-1.5.2.tar.gz.

File metadata

  • Download URL: tattler-1.5.2.tar.gz
  • Upload date:
  • Size: 72.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.9

File hashes

Hashes for tattler-1.5.2.tar.gz
Algorithm Hash digest
SHA256 a26393ceb65edad475514485a7ebc219bc8233834f7418e86a28fccb2193d084
MD5 4150c0789c5f65ef862307348e2336df
BLAKE2b-256 2974a3d3955838f7a5e70c71b9905eed485b2d29a3c49b9ccae9bcd1c2b400fa

See more details on using hashes here.

File details

Details for the file tattler-1.5.2-py3-none-any.whl.

File metadata

  • Download URL: tattler-1.5.2-py3-none-any.whl
  • Upload date:
  • Size: 92.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.9

File hashes

Hashes for tattler-1.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0dcc00f733ffd8e7a337b70572c7e8035ffdb8591b47a8721109df6c18aca4f5
MD5 833923ae7513992e3972c9d83a99a73e
BLAKE2b-256 452667dcf7e2ea0633617e0df3c170dcae08a20e5a34b9fd9ede2a9d3694f6cb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page