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

oyod

v0.1.1

Published

Own Your Own Data (OYOD) to the next generation of SaaS apps.

Downloads

20

Readme

OYOD - Bring Your Own Data

OYOD is an aspiring movement and ecosystem where users take back control of their data. In return, developers can build cool and useful apps without worrying about the app making money to be sustainable.

OYOD is Decentralized SaaS for Web 3.0.

Current status: Prototype, in development, with demos.

Requirements

  • Node 6.13.0+
  • Your own server (for hosting)
  • Your own computer (for testing)
  • Node 7.5.0+ --harmony (if developing)

Concepts

  • User - A normal internet user.
  • OYOD Home - A server that houses a user's data for potentially many apps.
  • OYOD App - An app that stores its data in a OYOD Home (see the helper library)
  • Developer - The developer that creates and maintains their respective OYOD App.

A OYOD Home is where a user's data lives. With a OYOD Home, a user may sign into an oyod-app, kicking off the following:

  • oyod-app requests access to user's OYOD Home via OAuth.
  • User accepts or rejects.
  • If accept, Home creates an isolated database for oyod-app.
  • oyod-app gains an access token to read and write to this database (via an HTTP API).

Once an oyod-app has an access token, they are free to create and read data as it sees fit to best serve the user. Because there is no central database, an oyod-app does not need to worry about scaling, and can even be a CDN-delivered static SPA.

A OYOD Home can host data for any number of oyod-apps. The user only needs to pay for their Home's server hosting costs.

Use Cases

The concept of users hosting their own data opens the door to many possibilities.

Utility Apps

There are many apps that can be useful but just not quite enough to warrant charging money for. For example, take a bookmarking app. Users want to save, sort, and share bookmarks. However, as a developer it can become expensive to keep your app running if it gets popular.

Historically, many useful apps have shut down due to the hosting costs associated with the scale of their popularity. This includes:

  • pastie.org, a snippet pasting website
  • etherpad, a realtime, collaborative text editor
  • del.icio.us, a bookmarking website

With OYOD, you as a developer can write an app without worrying about such costs, and your users can feel safe knowing they won't ever lose their data.

Security Apps

Have you ever seen an note app where you can encrypt a note and send it to your friends/coworkers? How do you know they're not sending your data to their own servers? If not today, then tomorrow?

OYOD will not only allow users to host their own data, but also their own security apps. Taking the previous example, a user would be able to install the "EncryptedNote" security app onto their own OYOD Home. This app would not be able to make ANY external requests, guaranteed by CSP; it would be impossible for the EncryptedNote app developer to ever see your data.

Because security apps are versioned, the EncryptedNote developer – if so desired – could charge for app code updates to support continuing development.

Split Hosting

Leaning on OYOD doesn't preclude making money. For example, a Slack app alternative could host their own user accounts and chat servers, but store chat history and file uploads on an admin user's OYOD Home. This could dramatically cut costs on hosting, make users feel safe about their data, and allow developers to make money for their work, all at the same time.

What about IPFS / Dat / etc?

IPFS and alike are solutions for a more distributed web. OYOD does not compete, but complements these solutions. For example, you might host your oyod-app's HTML/JS/CSS/image assets on IPFS, and have users store data on their respective OYOD Homes.

Roadmap

  • [x] OAuth grant to oyod-app's own database
  • [x] Path-Value API
  • [ ] User-generated refresh tokens for granting more trusted API access to own Home data
  • [ ] Standard datapoint bookmark API
  • [ ] Cross-oyod-app Home search
  • [ ] Search API
  • [ ] OAuth grant to other oyod-app databases
  • [ ] Security oyod-apps & encrypted storage, secured with CSP
  • [ ] Subuser account management
  • [ ] More data APIs (realtime? graphql?)

Getting Involved

If you're a developer and want to get involved, here are some places to get started:

  • Build your own oyod-app: an app that stored data in a OYOD Home. It's possible to do this using plain HTML/JS/CSS like the demo – no backend required.
  • Create an issue and get the discussion started on private oyod-apps.
  • Write a blog post or tutorial on how to set up your own OYOD Home server.
  • Create an issue to suggest ideas for more useful APIs.
  • Help work on an item on the roadmap!
  • Make it easier for users to set up their own OYOD Home server (I hear people like docker)

Setting up your own server

OYOD is in alpha. Here's how you can test locally:

git clone https://github.com/oyod/oyod-home
cd oyod-home
npm install
npm run setup
npm run dev

Now visit localhost:8484

Production

(not yet recommended)

git clone https://github.com/oyod/oyod-home
cd oyod-home
npm install
npm run setup
cat 'NODE_ENV=producton' >> .env
npm run build

Development

$ npm install
$ npm test
$ npm run dev

Philosophy

  • Low tech server-side
  • Mild tech client-side
  • High-ish but straightforward tech testing-side

Credits

splash.jpg photo by NordWood Themes