Skip to content
CAI
Software that uses CAICheck a score

pankajsoni19/fcm-erlang

27.9

Weak · 17 September 2026

266

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is an Erlang library designed to send Firebase Cloud Messaging (FCM) notifications to browsers, Android, and iOS devices. It manages notification delivery through a gen\_server-based architecture that supports both legacy and v1 FCM protocols, including automatic retry and token refresh logic. The project also provides a centralized logging abstraction layer to standardize debug, info, warning, error, and critical message handling across the codebase.

Features

Initial release of FCM Erlang client with build infrastructure

This change introduces the initial version of the FCM Erlang library, providing an Erlang client for Firebase Cloud Messaging that supports browser, Android, and iOS notifications. It establishes the project's build system using erlang.mk and rebar.config, defining dependencies on lager (3.8.1), jsx (3.0.0), and google\_oauth (1.0.0). The release includes configuration for building a release via relx and updates the documentation to reflect the new project structure and usage instructions.

(repo-wide) · high confidence

Initial release of FCM notification library

Added a new Erlang library for sending Firebase Cloud Messaging (FCM) notifications, including the main \fcm\ gen\_server for managing pools, a supervisor tree (\fcm\_sup\, \fcm\_app\), and two API implementations (\fcm\_api\_legacy\ and \fcm\_api\_v1\) supporting both legacy and v1 protocols with automatic retry and token refresh logic.

src · high confidence

Behavioural changes

Introduction of centralized logging macros

A new header file, logger.hrl, has been added to the project, providing a set of preprocessor macros for logging. These macros abstract the underlying logging mechanism (Lager) by defining convenience functions for DEBUG, INFO\_MSG, WARNING\_MSG, ERROR\_MSG, and CRITICAL\_MSG levels, as well as a generic PRINT macro for direct I/O output. This change centralizes logging logic, allowing other parts of the application to use these standardized macros instead of calling the logging library directly.

include · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 28.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 36
  • Readiness 25
  • Security 100
  • Event-Driven 10

Changes since last survey

  • 21 commits — 16 feature/other, 5 fixes

By area

  • (root) — 15 commits
  • src/fcm.erl — 4 commits
  • (repo) — 2 commits

Notable commits

  • fix: Merge pull request #7 from 2600hz/master-pr-fix-specs
  • fix: fix
  • fix: fix retry
  • fix: fix specs in fcm, fcm_api_v1, fcm_sup
  • fix: fix stop/start
  • change: FCM Erlang 1.0.0
  • change: Initial commit
  • change: Merge branch 'master' of https://github.com/softwarejoint/fcm-erlang
  • change: Update README.md
  • change: Version 1.0.1
  • change: add rebar.config file
  • change: bump readme
  • change: bump relx
  • change: clean up code, add type specs
  • change: jsx 3.0.0
  • change: remove qdate dependency
  • change: rename repo
  • change: tested
  • change: typo
  • change: update
  • …and 1 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

pankajsoni19/fcm-erlang was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b76cac6cbe6d81e632f1cf3b014217c1e50d15d2 — the exact code this score is about.
  • Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.