Skip to content
Mumma6Public

About

Workflow observability for TypeScript apps. Instrument existing processes and inspect every run with milestones, operations, context, errors, progress, and reported results.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Flowmark

flowmark.

Understand every execution. Discover what matters across them.

Open source · Workflow observability · TypeScript

npm MIT License flowmark.dev

Flowmark is workflow observability for processes your application already runs. Mark a named process in ordinary TypeScript. Each execution becomes evidence you can investigate — milestones, operations, progress, errors, and the result your code reported — and many executions become a picture of what that process is accomplishing.

Flowmark observes. It does not execute, schedule, or retry your work.

Install

npm i @flowmarkdev/node
// Next.js Route Handler / Server Action
import { createFlowmark } from "@flowmarkdev/node/next"
export const flowmark = createFlowmark()
// Node worker or long-lived server
import { createFlowmark } from "@flowmarkdev/node"
export const flowmark = createFlowmark()
FLOWMARK_API_KEY=<project write key>
FLOWMARK_API_URL=https://api.flowmark.dev
export async function completeCheckout(orderId: string) {
  const flow = flowmark.workflow("checkout.order", {
    properties: { orderId },
  })
  try {
    flow.step("payment-captured")
    const shipment = await flow.operation("create-shipment", () =>
      createShipment(orderId),
    )
    flow.done({ result: { shipmentId: shipment.id } })
    return shipment
  } catch (error) {
    flow.fail({ code: "CHECKOUT_FAILED" })
    throw error
  }
}

Product

Landing flowmark.dev
Dashboard app.flowmark.dev
Docs docs.flowmark.dev
API api.flowmark.dev
npm @flowmarkdev/node

Sign up on the dashboard to create a project and a write key. Password reset is not available yet.

What you get

  • TypeScript SDK for Node.js, Next.js, and the browser
  • Validated, project-scoped ingestion into PostgreSQL
  • Dashboard: volume, success rate, duration, trends, slowest operations, failure codes, run timelines, and peer comparison
  • Explicit links between related runs via ids you pass

Local development

Node.js 20.19+ (24 LTS recommended) and pnpm 10.

pnpm install
pnpm dev:setup
# Set DATABASE_URL in apps/server/.env.local to a loopback Postgres database.
pnpm db:setup
pnpm dev

pnpm dev starts the apps and watches the SDK. See development for the full local pipeline. Open the dashboard at http://127.0.0.1:3001.

apps/dev-harness and apps/internal-docs are loopback-only. Do not deploy them.

Repository

Path Purpose
packages/sdk @flowmarkdev/node
packages/core Shared event contracts
packages/api Use cases and ports
packages/db Schema, migrations, persistence
packages/ui Shared UI
apps/server API
apps/dashboard Signed-in UI
apps/web Landing
apps/docs Customer docs

Contributing

See CONTRIBUTING.md for local setup, branch workflow, and self-hosting expectations. Report security issues through SECURITY.md.

Create feature and infrastructure branches from staging and open PRs into staging. CI checks each PR; merging deploys Staging through Vercel. A reviewed release PR from staging into main deploys Production. Application GitHub Releases are published separately after verification; SDK npm releases keep their own workflow. See application releases for merge policy, agent skills, and approval steps.

Each PR runs two CI jobs: format/lint/typecheck/unit checks and database-backed server tests against disposable Postgres 18. Both should be green before merge; CI never uses Neon credentials or demo seed data. See database integration tests for the local equivalent. Ordinary releases do not require a sync back into staging; bring main changes back only when needed, such as after a hotfix.

The database suite includes real registration and session-based sign-in, project/key creation, ingestion, persisted-run reads, and cross-project denials. It exercises server routes and API procedures; browser UI and hosted cookie behavior still need Staging verification.

Server auth, CORS, and dashboard API settings are validated at request time. See Runtime environment validation for required hosted settings, local defaults, and Preview/Staging behavior.

Database CI also checks that repeated auth and ingestion requests retain a bounded auth pool and release API connections; see connection lifecycle verification.

License: MIT.

About

Workflow observability for TypeScript apps. Instrument existing processes and inspect every run with milestones, operations, context, errors, progress, and reported results.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages