Skip to content

Meel is an open source API for email templating and scheduling, built with Rust.

License

Notifications You must be signed in to change notification settings

borisnliscool/meel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

151 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shows the black Meel logo in light theme, and the white logo in dark theme.

About the project

Meel is an open-source API for email scheduling, built with Rust. It features a complex templating system with layout files that can be edited to update all emails at once, streamlining the process of managing email designs. This system ensures consistency across email campaigns while reducing the time and effort required to make widespread changes.

Usage

To use Meel, you can either compile the backend yourself, or use the automatically built Docker image. The Docker image is available on GitHub at borisnliscool/meel.

Meel also has a full docker image that has integrated Postgres database. The image is available on GitHub at borisnliscool/meel-full.

Example

services:
  db:
    image: postgres
    restart: unless-stopped
    shm_size: 128mb
    env_file:
      - .env.production
    volumes:
      - db_data:/var/lib/postgresql/data

  meel:
    image: ghcr.io/borisnliscool/meel:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    env_file:
      - .env.production
    depends_on:
      - db
    volumes:
      - ./data:/data

volumes:
  db_data:

Repository overview

This monorepo includes the main API, SDKs for supported languages, and tools to simplify the use of Meel templating syntax. Refer to the individual SDK directories for detailed documentation.

Directory Description
backend Core API functionality
sdk/node Node SDK for the API

Development notes

Creating new release

git tag -a <version> -m "v<version>" && git push --tags

Run Diesel migrations

To create the initial database schema and relations, run the following command (you may need to install the diesel cli first by running cargo install diesel_cli):

cd meel-backend
diesel migration run

RDD (Readme Driven Development)

  • Templating engine
    • Component system
    • i18n
    • simple if and for logic
  • API Routes
    • Sending mail
      • Send to mailing list
      • File attachments
      • Validate email sender and recipient names
    • Scheduling mail
    • Fetching mail status
    • Fetch templates list
    • Mailing lists
      • Fetch lists
      • Create mailing list
      • Delete mailing lists
      • Update mailing lists name and description
      • Add email to mailing list
      • Remove from mailing list
  • Configuration
    • Rate limiting
    • Mail server settings
    • Logging
    • Maximum number of send attempts
    • Template storage path

Error schema

{
  "code": "<code>",
  "message": "<message>",
  "details": {
    "<key>": "<value>"
  }
}

About

Meel is an open source API for email templating and scheduling, built with Rust.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •