npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

firebase-functions-manager

v1.0.0

Published

Visual management tool for Firebase Functions deployment

Readme

Firebase Functions Manager 🔥

A visual management tool for Firebase Functions deployment. Deploy and manage your Firebase Functions through a beautiful web interface with real-time deployment logs.

Features

  • ✅ Auto-detects functions from functions/index.js
  • ✅ Shows deployment status via Google Cloud Functions API
  • ✅ Displays last invocation time for each function (optional - requires Monitoring Viewer role)
  • ✅ One-click deployment with real-time logs
  • ✅ Zero pollution to your codebase
  • ✅ Works with any Firebase project

Installation

Using npx (recommended)

No installation needed! Just run from your Firebase project root:

npx firebase-functions-manager

Global Installation

npm install -g firebase-functions-manager

Then run from any Firebase project:

ffm

Project Installation

npm install --save-dev firebase-functions-manager

Usage

  1. Navigate to your Firebase project root directory
  2. Ensure you have functions/index.js and functions/serviceAccount.json
  3. Run the command:
npx firebase-functions-manager
# or
ffm
  1. Your browser will automatically open to http://localhost:3001
  2. Manage your functions through the visual dashboard!

Prerequisites

  • Node.js >= 16.0.0
  • A Firebase project with Cloud Functions
  • Firebase Admin SDK credentials (serviceAccount.json)
  • Firebase CLI installed globally (npm install -g firebase-tools)

Getting Service Account Credentials

  1. Go to Firebase Console
  2. Select your project
  3. Go to Project SettingsService Accounts
  4. Click Generate New Private Key
  5. Save the downloaded JSON file as functions/serviceAccount.json

Optional: Enable "Last Invoked" Feature

To see when each function was last called, add the Monitoring Viewer role to your service account:

  1. Go to Google Cloud Console IAM
  2. Find your service account (email from serviceAccount.json)
  3. Click EditAdd Another Role
  4. Add: Monitoring Viewer
  5. Click Save

See MONITORING_SETUP.md for detailed instructions.

Note: Without this role, the tool works perfectly - you just won't see last invocation times.

Project Structure

Your Firebase project should have this structure:

your-firebase-project/
├── functions/
│   ├── index.js              # Your functions
│   ├── serviceAccount.json   # Firebase Admin credentials
│   └── package.json
├── firebase.json
└── .firebaserc

How It Works

  1. Detection: Scans functions/index.js for exported functions
  2. Status Check: Queries Google Cloud Functions API for deployment status
  3. Comparison: Shows which functions are deployed, not deployed, or orphaned
  4. Deployment: Triggers Firebase CLI deployment and streams logs in real-time

Features in Detail

Function Status

  • Deployed: Function exists locally and is deployed to Firebase
  • Not Deployed: Function exists locally but not deployed yet
  • Orphaned: Function is deployed but no longer in local code

Real-time Deployment

Click the "🚀 Deploy" button on any function to:

  • Start deployment using Firebase CLI
  • See live deployment logs
  • Get notified when deployment completes
  • Automatically refresh status

Dashboard

  • View all functions at a glance
  • See deployment timestamps
  • Check runtime versions
  • View function descriptions (from JSDoc comments)
  • Filter by status

Development

Setup

git clone https://github.com/yourusername/firebase-functions-manager.git
cd firebase-functions-manager
npm install
cd client
npm install
cd ..

Build

npm run build

Test Locally

npm link
cd /path/to/your/firebase/project
npx ffm

Configuration

The tool runs on port 3001 by default. To change this, modify:

  • bin/ffm.js (line 31)
  • server/index.js (function parameter)

Troubleshooting

"No functions/index.js found"

Make sure you're running the command from your Firebase project root directory.

"No functions/serviceAccount.json found"

Download your Firebase Admin SDK credentials and save them as functions/serviceAccount.json.

"Port 3001 already in use"

Another process is using port 3001. Either stop that process or modify the port in the configuration.

WebSocket connection fails

Check your firewall settings and ensure the server is running properly.

Security Notes

  • Never commit serviceAccount.json to version control
  • The tool only reads your local files; it doesn't modify them
  • All deployment actions use your existing Firebase CLI authentication
  • Credentials are used only for API calls to check deployment status

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

If you encounter any issues or have questions, please open an issue.

Author

Your Name

Acknowledgments

Built with: