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 🙏

© 2024 – Pkg Stats / Ryan Hefner

couch-potato

v0.0.1

Published

Couch Potato ============

Downloads

3

Readme

Couch Potato

...is a set of libraries, tools and guidelines for using CouchDB as a full backend solution.

It's the perfect companion for developers without time to waste.

U wot m8?

CouchDB presents a rich feature set, is highly configurable and wraps everything up in a lovely REST API - perfect for using directly from the browser.

Advantages

  • Response Times
    • Clients connect directly to the database, cutting out any middlemen. This reduces latency and removes bottlenecks.
    • Map/Reduce based views are constantly updated. Say goodbye to expensive queries that slow your app down to a crawl.
  • Robust
    • CouchDB is battle tested.
    • It can do most of what you're likely planning on implementing e.g. using express and socket.io. And for free!
  • Security
    • CouchDB comes with basic, token, session auth and SSL built-in - freeing you from making mistakes.
  • Development speed
    • Relax, concentrate on the front-end code and let CouchDB do the rest.

Disadvantages

  • Some flexibility is lost.
    • ... however in this age of service-oriented architectures there is nothing stopping you adding custom server-side code eventually alongside your couch instance!

Components

Couch Potato consists of three components. potato.js is the interface to CouchDB and can be used from the browser or Node. sofa.js is a command-line utility for configuring CouchDB instances and setting up/configuring projects.

potato.js

potato.js is a browser/node library and is the interface to your CouchDB instances. potato.js will form the backbone of your apps - whether in the browser or node environment.

Among other things, your potato will provision your app with:

  • User management
    • Login
    • Logout
    • Sign up
  • CRUD operations on documents
  • Queries
  • ... and much more

sofa.js

sofa.js is a set of command line tools used in configuring your CouchDB instance. From the comfort of your sofa you can do the following:

  • Configure design documents.
  • Configure permissioning
    • Read/write permissions
    • User roles
  • Admin users
  • Design documents
  • ... and more

sofa.js manages configuration using declarative config files that are plain Javascript.

Guidelines

The use of a declarative API makes it much easier to test your map/reduce views.

TODO: Example mocha test

Caveats

Certain features do not work with plain-old CouchDB. E.g. for read permissions you will need to use rcouch. Note that rcouch will be merged into CouchDB from v2 onwards!