What's in a message?

EVERYTHING

The world’s first rule-based chat API infrastructure.
Build experiences around messaging communication apps & services that work with your tech stack and logic

Messaging at the centre of Everything

More features, less code

Mitter.io provides you powerful, low-level tooling that allows you to customize every channel, message and interaction in just a few lines of code.

Your app, your rules

Enable features like private replies within groups using our powerful ACL architecture to set policies/configurations on any entity.

                      
mitter.sendMessage(
  "e1gh41",                 /* channel id */
  new TextMessage(
    editText.getText().toString(),
    activeTab == Tabs.ToMain ?:
        "" :                /* default, sends to all
                               participants  */
        "+read:friend-101"  /* send only to specific
                               user friend-101 */
    )
)
                      
                    

Everything is a message

With custom payloads, messages are whatever you want them to be -- from text or multimedia, to actionable or interactive components.

                      
mitter.channel("e1gh41")
  .sendMessage(
    // Set a text representation for the message
    "Is this an emergency? Click 'Yes' to call the doctor",

    // Set a payload type
    "my.EmergencyMessage",

    // Add any data you want!
    {
      doctorPhoneNumber: assignedDoctor.getPhoneNumber()
    }
)
                      
                    

Customizations run deep

Out-of-box support for custom attributes on platform entities like users or channels means you can store data without relying on external services.

                      
// Set common user profile attributes
mitter.user("me")
  .profile()
  .set("mitter.upa.FirstName", "Axe")

// Or create your own attributes for all your users!
mitter.users().profile()
  .createAttribute("my.Animoji", "video/webm", ["base64"])

// And set user-specific values, text, images or binary
mitter.user("me")
  .set("my.Animoji", "/9j/4AAQSk...")
                      
                    

Policy engine

Your app, your rules

Enable features like private replies within groups using our powerful ACL architecture to set policies/configurations on any entity.

PrivateReplies.java Check what it does
            
mitter.sendMessage(
  "e1gh41",                 /* channel id */
  new TextMessage(
    editText.getText().toString(),
    activeTab == Tabs.ToMain ?:
        "" :                /* default, sends to all
                               participants  */
        "+read:friend-101"  /* send only to specific
                               user friend-101 */
    )
)
            
          

Custom Payloads

Everything is a message

With custom payloads, messages are whatever you want them to be -- from text or multimedia, to actionable or interactive components.

custom-payloads.js Check what it does
            
mitter.channel("e1gh41")
  .sendMessage(
    // Set a text representation for the message
    "Is this an emergency? " +
          "Click 'Yes' to call the doctor",

    // Set a payload type
    "my.EmergencyMessage",

    // Add any data you want!
    {
      doctorPhoneNumber:
              assignedDoctor.getPhoneNumber()
    }
)
            
          

Entity Profiles

Customizations run deep

Out-of-box support for custom attributes on platform entities like users or channels means you can store data without relying on external services.

user-animojis.js Check what it does
            
// Set common user profile attributes
mitter.user("me")
  .profile()
  .set("mitter.upa.FirstName", "Axe")

// Or create your own attributes for all your users!
mitter.users().profile()
  .createAttribute("my.Animoji",
            "video/webm", ["base64"])

// And set user-specific values, even binary!
mitter.user("me")
  .set("my.Animoji", "/9j/4AAQSk..." /* base64 */)
            
          

SDKs for your choice of platform, with more on the way

iOS Logo
iOS (Swift/Objective-C)

Coming Soon!

React Logo
React Native

Coming Soon!

Think outside the text bubble

Messaging-driven applications make for amazing experiences and ideas, and Mitter.io helps you create just that

Your Creativity

Create custom message types, like a to-do item, a form, an order update and more, right within a channel

Your Logic

Implement app-wide custom logic by combining rules/permissions using the Mitter.io ACLs

Your Vision

Build unique, messaging- driven experiences -- like collaborative task-lists, journaling apps, and more