Event-driven development platform

Create complex (Python) rules to interact with People and API's.

Start now, it’s free

Learn More

Build Workflows

Nebri easy handles the flow of information between your customers and staff. As new information arrives, your rules decide what the proper course of action will be. Complex workflows can be elegantly coordinated to keep your staff sane and up to date.

Use Custom Code

Want absolute power within your action? You got it. When a rule triggers a Nebri Action, the freedom of pure Python kicks into gear. Using custom python, built-in Nebri helper functions, and whatever Python packages you PIP Install, you are open to create sophisticated automation to handle any task you need.

Generate an Interface

No engine is complete without a beautiful paintjob to show off. With Nebri, the fantastic Polymer HTML and JavaScript platform is available to create your perfect interface. If you're looking to quickly create simple items, such as Forms, Nebri provides built-in Polymer elements with very clean default styling.

For Makers

Rules give you the most power over the internet of things with the least amount of code. Any device with internet connectivity and an API is available to Nebri. Think FitBit, Hue, Nest, Sense Mother, SmartThings and more.

For Business

Developed as a BPM alternative, a rule engine offers powerful workflows for humans. You can control a sales or project process, or orchestrate a software release process. Connect to Github and Trello to add even more insight.

For the Smart Home

Control your smart home with true home automation. No smart phones needed to turn on your lights now. That can be done with simple rules that might correspond to certain times, away statuses, or even remote buttons and sensors.

Listen and React

Here you see a button remotely turning off lights. You can tie in other events to the same button, or even have an rule that reacts to the light being off.

class kitchen_buttons(NebriOS):
    listens_to = ['kitchen_buttons']

    def check(self):
        return self.kitchen_button == 4 
            # no.4 is a night time scene

    def action(self):
        wink.lights("kitchen_lights", "off")

Schedule and Check

This rule waits until midnight and then checks if the room is empty. If that is the case, the lights go off. Schedules and Drips offer a powerful mechanism for checking your system, and injecting data at specified times.

class kitchen_buttons(NebriOS):
    schedule = "0 0 * * *" 
        # standard cron syntax for every night

    def check(self):
        return self.kitchen_occupancy == False

    def action(self):
        wink.lights("kitchen_lights", "off")

Program A Workflow

Loading more logic into the check() is a great way to make sure quite a few things are done before launching the next phase of the process. In this case managers and QA team need to approve the release, along with the build bot, before the release process is initiated.

class software_release(NebriOS):
    listens_to = ['buildbot_pass','managers_approved_release']

    def check(self):
        if self.testers_approved_release == True and \
            self.buildbot_pass == True and \
            self.managers_approved_release == True and \
            self.warning_flags == False:
                return True

    def action(self):
        self.release_latest_candiate = True
            #this initiates the full release process