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 🙏

© 2026 – Pkg Stats / Ryan Hefner

abc-db-sdk

v1.0.5

Published

ABC-DB Public SDK

Readme

ABC-DB SDK

Public SDK for AbcDB. Setting up cloud databases is as easy as "ABC"!

Motivation

Does anyone feel like Firestore is becoming too complicated for the average user? I used Firestore for my most recent project and I certainly think so. The amount of customization and options is just overwhelming. From security rules, cache vs. server fetch, snapshots, pending writes, etc. the product offers a lot of functionalities that 80% of its users will not use.

With AbcDB we want to keep it simple stupid. We give you a simple database with Map-like semantics that just works.

Are we trying to replace Firestore? By no means. We want to provide a simpler alternative to Firebase that lightweight database users can utilize.

Installation

# NPM
npm install abc-db-sdk

# Yarn
yarn add abc-db-sdk

End-to-end encryption

Transparency and user trust is our number one priority. All of AbcDB records are end-to-end encrypted using your API key, which is only retained by you and you only. Authentication to the server is handled by the hash of the API key. The SDK is public for you to verify for yourselves.

Because of this end-to-end encryption, AbcDB does not support regeneration of API keys (we simply do not have your API key to re-encrypt your data for you), and it is up to you to keep your API key safe. For example, you should not expose your API key in your frontend code since the Javascript source is publicly viewable. Take a look at the examples page on our documentation page on how to keep your API key safe.

Usage

Example usage:

import AbcDB from 'abc-db-sdk'

const db = new AbcDB({ apiKey: '{your_database_api_key}' })

await db.put(
  'dummy-key',
  {
    name: 'John Doe',
    occupation: 'Pilot',
    address: {
      street: '123 ABCXYZ Rd.',
      city: 'Brooklyn',
      state: 'New York',
      zip: '11201'
    }
  },
)

const record = await db.get('dummy-key')

const records = await db.list()
const prefixedRecords = await db.list('dummy')

await db.delete('dummy-key')

Advanced usages

Writing record with random key.

const record = await db.putWithRandomKey({
  name: 'John Doe',
  occupation: 'Pilot',
  address: {
    street: '123 ABCXYZ Rd.',
    city: 'Brooklyn',
    state: 'New York',
    zip: '11201'
  }
})
console.log(record) // Result: { key: '{random-key}' }

Batch deletes based on a prefix.

await db.batchdelete('dummy')

Roadmap

  • Transaction support by end of July 2022
  • Origin-based authorization by end of July 2022
  • Go SDK by end of July 2022

Looking for more features?

Submit an issue! We will address them as soon as possible.