Chat

Build modern, feature-rich chat in days with the SDK and API

Fuel real-time interactions on your applications with the in-app messaging.

Vibrant communities start from intimate in-app conversations.

Start a project

🤔

😄

chatgpt

ChatGPT integration

Simply enable ChatGPT to embed an integlligent assistance in the app.

scalabiltiy

Scalable and reliable

Supports any amount of traffic with the global cloud infrastructure.

security

Security compliance

Nbase Chat API ensures all data are encrypted and protected.

Pre-built features for quick integration

Ship in-app messaging effortlessly, with Nbase libraries and components.

Live streaming chat

Live streaming chat

Implement live chat feature on live streaming for users to acvively engage and communicate real-time.

Lightspeed translation

Lightspeed translation

Embed a real-time translation powered by A.I. which supports 26 languages for a half of price of Google Translation.

Chat monitoring

Chat monitoring

Monitor chat sessions to prevent inappropriate contents and identify unusual activities. Restrict abusers' access by their IP or ID.

Friend list and status

Friend list and status

Enable uesrs to add and manage friends on friend lists. Utilize online/offline indicator and read receipts.

Push and SMS notification

Push and SMS notification

Direct, private chat channels for business-to-customer and user-to-user.

Moderation and spam filter

Moderation and spam filter

Filter and block malicious contents and users - manually or automatically.

Real-time data and statistics

Real-time data and statistics

View real-time data and statistics on chat sessions, active time, messages, and active users.

Chat history

Chat history

Search chat history to retrieve previous chat that has been safely stored and protected.

For developers, by developers

Keep the conversations flow between platforms. Deploy a fully featured in-app chat in less time.

Explore documentation


  const nbaseClient = createClient('URL', 'ANON')
  const channel = nbaseClient
    .channel('postgresChangesChannel')
    .on('postgres_changes', {
      event: 'INSERT',
      schema: 'public',
      table: 'messages'
    }, payload => console.log(payload))
    .subscribe()










      


  const nbaseClient = createClient('URL', 'ANON')
  const channel = nbaseClient.channel('presenceChannel', { configs: { presence: 'id123' } })

  channel
    .on('presence', { event: 'sync' }, () => console.log(channel.presenceState()))
    .on('presence', { event: 'join' }, ({ key, currentPresences, newPresences }) => console.log(key, currentPresences, newPresences))
    .on('presence', { event: 'leave' }, ({ key, currentPresences, leftPresences }) => console.log(key, currentPresences, leftPresences))
    .subscribe((status) => {
      if (status === 'SUBSCRIBED') {
        channel.track({ user_name: 'user1' })
        channel.track({ user_name: 'user2' })
      }
    })
      


  const nbaseClient = createClient('URL', 'ANON')
  const channel = nbaseClient.channel('broadcastChannel', { configs: { broadcast: { self: true, ack: true } } })

  channel
    .on('broadcast', { event: 'pos' }, payload => console.log(payload))
    .subscribe((status) => {
        })
      }
    })

    


      


  const nbaseClient = createClient('URL', 'ANON')
  const channel = nbaseClient.channel('broadcastChannel', { configs: { broadcast: { self: true, ack: true } } })

  channel
    .on('broadcast', { event: 'pos' }, payload => console.log(payload))
    .subscribe((status) => {
      if (status === 'SUBSCRIBED') {
        channel
        .send({ type: 'broadcast', event: 'pos', payload: { x: 0, y: 0 }})
        .then(status => {
          if (status === 'ok') console.log('ok')
          if (status === 'timed out') console.log('timed out')
        })
      }
    })
      


  const nbaseClient = createClient('URL', 'ANON')
  const channel = nbaseClient.channel('broadcastChannel', { configs: { broadcast: { self: true, ack: true } } })

  channel
    .on('broadcast', { event: 'pos' }, payload => console.log(payload))
    .subscribe((status) => {
      if (status === 'SUBSCRIBED') {
        channel
        .send({ type: 'broadcast', event: 'pos', payload: { x: 0, y: 0 }})
        .then(status => {
          if (status === 'ok') console.log('ok')
          if (status === 'timed out') console.log('timed out')
        })
      }
    })
      

Supercharge your application