Home
Softono
Operational.co

Operational.co

Open source Nodejs
465
Stars
17
Forks
10
Issues
3
Watchers
1 week
Last Commit

About Operational.co

<p align="center"> <a href="https://operational.co"> <img src="media/operational-banner.jpg" width="700px" alt="Operational Event tracker" /> </a> </p> <p align="center"> <a href="https://operational.co" target="_blank">Website</a> | <a href="https://operational.co/api" target="_blank">Docs</a> | <a href="https://operational.co/selfhosted/introduction" target="_blank">Self-hosting</a> | <a href="https://operational.co/pitch" target="_blank">Pitch</a> | <a href="https://operational.co/other/vision" target="_blank">Vision</a> <br /><br /> </p> [Operational.co](https://operational.co) is a open-source Event tracking tool. Monitor signups, webhooks, cronjobs and more. Currently [Swipekit Facebook ad library tool](https://swipekit.app/articles/facebook-ads-library) and [youtubedescriptionextractor](https://youtubedescriptionextractor.com/) are using this in production. <p align="center"> <strong><a href="https://app.operational.co/?signinas=kevin">πŸ” View Live Demo</a></strong ...

Platforms

Web Self-hosted

Languages

Node.js

Operational Event tracker

Website | Docs | Self-hosting | Pitch | Vision

Operational.co is a open-source Event tracking tool. Monitor signups, webhooks, cronjobs and more.

Currently Swipekit Facebook ad library tool and youtubedescriptionextractor are using this in production.

πŸ” View Live Demo - See Operational in action with a demo account receiving test events.

Operational Event tracker

✨ Key Features

  • Get push notifications for critical events straight to your phone, or on the webapp
  • Monitor critical events
  • Trigger webhooks via action buttons
  • Understand complex events via contexts(events-in-events)
  • Usable on mobile as a progressive web app(can receive push notifications on mobile too)
  • Built for tech products

πŸš€ Getting Started

There are two ways to start using Operational:

Option Description
Hosted Service Fastest way to get started
Self-Hosting Deploy and manage Operational on your own VPS

πŸ“š Explore our documentation to learn more about setup and usage.


πŸͺ„ Highlights

  • Heaps of self-hosting options, from Render.com to docker images, with video guides. We want you to self-host!
  • Very few 3rd party dependencies. No need to install clickhouse in the open source version.
  • Feature packed. Send json, formatted json, bundle up logs in contexts, add action buttons, and more.
  • Easy to grok and tear apart - no useless dependencies, nor unnecessarily complex code.

🏑 Community

We have a active Discord community. We highly recommend jumping on our Discord server for updates, feedback and help.

⛏️ Contributing to Operational

How to contribute?

πŸ‘©β€πŸ”¬ Technology

Operational has a dead-simple tech stack:

  • Nodejs >=18
  • Mysql 8.x
  • Prismajs
  • Clickhouse(optional)
  • Expressjs 5.x
  • Vue 3
  • Vite

Operational itself is a monorepo of 3 repos:

  • /app the SPA for operational.co

  • /backend the expressjs app powering the backend

  • /website astrojs marketing website

  • /packages folder has public npm packages which are shared across all repos.

Bootstrap article

Use the article bootstrap command to create a new draft blog post and its banner assets.

Required env var:

  • OPENROUTER_API_KEY

The command reads OPENROUTER_API_KEY from website/.env first, then falls back to your shell environment.

Examples:

  • npm --workspace website run bootstrap-article -- --title="My Article Title"
  • npm --workspace website run bootstrap-article -- --slug="my-article-slug"
  • npm --workspace website run bootstrap-article -- --title="My Article Title" --slug="my-article-slug"

What it creates:

  • website/src/content/blog/{slug}.md
  • website/public/images/blog/{slug}/banner.png
  • website/public/images/blog/{slug}/banner-og.jpg

Behavior:

  • If only title is passed, the script slugifies it and uses that for the article slug.
  • If only slug is passed, the script de-slugs it into a readable title.
  • If both are passed, the script keeps the provided title and slug.
  • The article is created as a draft with starter content.
  • The script stops without overwriting anything if the target article already exists.