mnm open source

m.n.m
FAQDemoDownloadContact

TMTP: site-centric Internet messaging

TMTP is a new Internet protocol combining elements of email and the web. TMTP offers a simple, reliable, free, secure, decentralized method for messaging & correspondence & notification.

Online services lack a way to directly message their customers/members. Email (SMTP etc) is unreliable, insecure, and typically transits multiple third-party hosts between sender & recipient. (Email also has other painful problems!) Text messaging (SMS) is expensive. Some sites patch this gap by building & maintaining custom phone apps—at great cost.

The mnm open source project implements TMTP, both server and client. It’s applicable to any site that keeps a users list, but especially:

As well as letting sites reach customers/members directly & securely, TMTP also benefits end users:

  1. It provides a far safer model than email, where you:
    + choose the sites where you participate
    + select which members of a site can message you
    + always know from which site a message originated
    + can block anyone with whom you’ve made contact
    + may leave a site and never see traffic from it again

  2. It offers capabilities missing in email, including:
    + message formatting & layout via Markdown (aka CommonMark)
    + hyperlinks to messages and other threads
    + hashtags and private tags
    + slide deck layouts
    + data-driven charts & graphs
    + forms/surveys whose results are collected into tables
    + many more features to foster focus, creativity, efficiency, and clarity

Further reading:   Frequently Asked Q’s   –   TMTP Draft Specification


Status

The client and server are open source, subject to the terms of the Mozilla Public License, v2.0.

Major portions of this page and the FAQ were rewritten in April 2022.

The mnm client app has had nine preview releases since April 2019. It runs on Windows, MacOS, and Linux; ports to Android and iOS are planned. Its UI appears in a web browser, and is tested with Chrome & Firefox. It stores all data on the user’s machine, and can replicate the data to other devices. It includes complete docs, and a tour for first-time users. See also the release history and Readme.

The mnm TMTP server has been deployed on a host in a public datacenter for testing use since early 2019. It runs on Linux; ports to FreeBSD, Windows, and MacOS are planned. It has no runtime dependencies. It does not yet support restrictions on who may create accounts. See also the release history and Readme.


Got an issue, idea, insight?

To submit a question, observation, feature request, or bug report, please open or comment on an issue:


Download & Startup

You’ll need an invitation to a TMTP service. To run your own service, set up the mnm TMTP server.

You’ll need Firefox or Chrome. (I strongly endorse Firefox :-)

Windows MacOS Linux

  1. Download & save
    a) Click mnm-app-windows-amd64-v0.9.0.zip.
    b) In the browser downloads list, find the above file and click “Open File”.
    c) Drag the item mnm-app-v0.9.0 to the Downloads folder in the left-hand pane.

  2. If a previous version is running
    a) Go to its log window and press Ctrl-C and then Y to stop it.

  3. Start app
    a) Open the mnm-app-v0.9.0 folder now in Downloads, and double-click App (aka App.cmd).
    b) You’ll see a notice, either
    b.1) “Windows protected your PC…” Click “More info” and then “Run anyway”.
    b.2) “The publisher could not be verified…” Click “Run”.
    c) You’ll see a system notice, “Do you want to allow …?” Click “Yes”.
    +  You’ll see the mnm log window.
    +  If you have a previous version in Downloads, it will offer to update it.
    +  If the app fails, it will offer to restart it.
    +  To stop the app, press Ctrl-C and then Y (closes the window).

  4. Connect Firefox or Chrome
    a) Right-click localhost:8123, and select “Open link in new tab”.
    +  You’ll see the landing page, with a tour.


Installation Notes

On Windows, the app needs Administrator privileges to create symlinks and configure the firewall. App.cmd creates the firewall configuration. To inspect it, run:
netsh advfirewall firewall show rule name=mnm-hammer verbose

To start the app using a different TCP port, run:
MacOS & Linux (as any user): ./mnm-hammer -http :8123
Windows (as administrator): mnm-hammer.exe -http :8123

Updating from a previous version moves the folder mnm-app-v0.X.0/store to the new version, and leaves the previous version otherwise untouched. Launching App.cmd or App in the previous version will offer to update to it, moving the store folder back again (not recommended).


Credits

The mnm app and TMTP server are written in Go. The app also depends on Couchbase-sponsored Bleve, and Gorilla Websocket. The server also depends on Brett Vickers' NTP client.

The browser-based UI depends on Vue.js for HTML templates and components, UIkit for icons, markdown-it for Markdown rendering, Luxon for Date/Time formatting, and vue-form-generator for the Blank Forms feature.

mnm is always tested first with Mozilla Firefox, and the author frequently turns to the MDN web docs. Development of mnm is managed with Git.

The logo is by David Gilmore.

Robin Eng tested the preview releases at length.

Copyright © 2020 Liam Breck