Code Monkey home page Code Monkey logo

courier-react's Introduction

What is courier-react?

This repository, also called In-App, is a set of features and components that can work inside our customers websites. Courier is a powerful application but integrating all of the features into your frontend manually can be overwhelming and time consuming. This is where In-App steps up and can superpower your application by providing Realtime Messaging (Toast), an Inbox, Notification Preferences, and many more coming soon!

Embedded Integration

Want to use packages with other frameworks/libraries like angular or vue? Check out how to do Embedded Integration

2.0 and 3.0 Releases

We've recently created both 2.X and 3.X releases related to this monorepository. This is because we've migrated to a new simpler, streamlined style for our components and there are breaking changes with props and api. Below is a short description of each of our versions:

1.X

The 1.X versions will consist of our old UX, and use our legacy APIs. If you are a free tier customer your data retention on 1.X will be limited to 30 days and subject to change.

2.X

We introduced a new theme that makes the UX smaller and simplifies the UX. Some of the notable changes are:

  1. Single list design - no more tabs
  2. Entire message is clickable vs having action buttons
  3. Make all actions (read/unread/archive) displayable without having to click into a menu
  4. Expose "archive" as an action

The 2.X version will now default to this new theme and will utilize our new API that does not have the same data retention as the legacy API.

You can still access the 1.X designs by passing theme.name === "classic" to the Inbox component

3.X

We created a separate breaking change branch to make sure our bundles are small and optimized. We didn't want to bundle any uneccesary code to support the "classic" theme so 3.0 has removed all the deprecated code. There are breaking changes and a

Table of Contents

  1. Contributing
  2. Packages

Packages:

components

This package imports the other react components and bundles them up using webpack and preact to create a bundle that can be used to render all of our components in a frontend that does NOT use React.


react-provider

This package exports a component called CourierProvider which creates a context object that is required for the following packages.


react-toast

Toast is a non modal, component used to display brief, optional-expiring windows of information to a user. This can be integrated with a push provider or can be triggered manually.


react-inbox

Inbox is a component used to display a history of read and unread messages to a user. If we send a message to a user when they are not logged in, or if they didn't interact with the message before it disappeared, we also have an Inbox to show the history of messages received.


react-hooks

hooks that can be used to build your own inbox or interact with other parts of Courier.

  • useInbox
  • usePreferenes

client-graphql

GraphQL library that interacts with Courier's backend


react-brand-designer

The "React Brand Designer" package provides components with a slick UI for branding notifications delivered with Courier. This enables your own users to personalize their brand-able notifications like emails without leaving your app or site.


types

Utility package to share common Typescript types and interfaces shared between packages


storybook

Our development environment. This package depends on all the other packages and imports them into a storybook instance. This allows us to develop in an isolated environment.



courier-react's People

Contributors

rileylnapier avatar heyglassy avatar suhasdeshpande avatar drew-y avatar dependabot[bot] avatar tk26 avatar nmsand avatar joshshowalter avatar vahnag avatar misabel avatar cgradwohl avatar nikhil-ismail avatar scarney81 avatar bblatnick32 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.