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

makona-editor

v0.3.16

Published

Makona (Hawaiian for Mason), is a block-style editor for [React JS](http://facebook.github.io/react/index.html). As opposed to your standard WYSIWYG rich text editor, usually with a raft of little icons for formatting, Makona operates on a block paradigm,

Downloads

17

Readme

Makona Block-Style Editor

Makona (Hawaiian for Mason), is a block-style editor for React JS. As opposed to your standard WYSIWYG rich text editor, usually with a raft of little icons for formatting, Makona operates on a block paradigm, whereby you build up a document with blocks of content, which can be text blocks, code bocks, markdown blocks, image blocks, etc. The blocks can be reordered by dragging and dropping. Blocks should be as plain-text as possible, and not blobs of HTML. Editing the text in a block is done with a simple textarea, not a contenteditable div.

The final result is a JSON object with the content of each block. The idea is to store this JSON instead of the resulting HTML, that way you could apply different HTML structures and CSS styles to the content, or reuse it in interesting ways. Another thought is to store the JSON in a PostgreSQL h-store column, and allow for deep-indexing of the structure.

At any rate, this is currently a very rough spike. The basic mechanics are there, but the visual aspects still need a lot of work. Are you a creative type looking to contribute to a cool new open-source project? ;)

Inspiration

Sir Trevor is another take on a block-style editor.

Goals

Makona's goals are a bit different from Sir Trevor and others:

  • Based on React JS for a solid foundation.
  • Work on wider range of platforms, including legacy browsers (IE8+) up to modern tablets
  • All editing is done in a <textarea> (as opposed to a contenteditable div), so we sacrifice WYSIWYG while actually editing, but we gain universal compatibility.

Styling

React seems to guide you to use inline styles for your components, and makes it easy to do. Trying to find the right balance between inline styles for structural things, and then allowing for look-and-feel to be adjusted via external stylesheets. Different "themes" should be able to be applied via stylesheets, but the styles that are required for the component to actually work will go inline. Blurred lines, baby.

Dependencies

This requires a lot of JS libs to work, the plan is to slim things down once its all working. The main reason jQuery is used currently is for the drag-and-drop sorting. Once we implement this behavior in native React we can (probably?) ditch the jQuery dependency. Certain block types will each have their own dependencies, so if you dont need the image upload block, then you dont need the fineuploader libs, etc.

Building Your Copy of Makona

The process to build Makona is haphazard at best. This is a spike, after all.

Prerequisites

  • You have node installed at v0.10.0+
  • You are familiar with npm and know whether or not you need to use sudo when installing packages globally.
  • You are familiar with git.

Build

Once you have the repository cloned, building it is really easy...

# grunt-cli is needed by grunt; you might have this installed already
npm install -g grunt-cli
npm install
grunt server

At this point, you should now have a dist/ directory populated with all the necessary files, and an index.html to kick things off.

Once your local server is running, try it out!