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

tapwrite

v1.1.94

Published

<h1 align="center">Tapwrite</h1> <p align="center"> </p> <p align="center"> Enhance your web applications with `Tapwrite`, a robust WYSIWYG rich text editor component for React built on top of Tiptap designed to integrate seamlessly into your projects. Th

Downloads

697

Readme

Description

Building text editors for browsers from scratch is challenging, with few options for seamless integration into browser-based applications. Headless technologies like Tiptap offer customization but demand time and effort. Tapwrite is a lightweight, effortless solution for developers, providing a seamless rich text editing experience with zero configuration needed. Easily incorporate features like image and file uploads directly within the editor environment.

tapwrite

Installation

Install Tapwrite with npm by running the following command:

npm i tapwrite

Usage

Here’s how to implement Tapwrite in your project:

import { Tapwrite, ImagePickerUtils } from 'tapwrite';

<Tapwrite
  // Function triggered after a file is selected. Parameter uploadFn is optional.
  uploadFn={async (file, tiptapEditorUtils) => {
    // 'file' is the selected image or attachments of type File. The uploadFn should return a url for src of the file. 
  }}
  content=""  // Pass the initial content to be rendered in the editor.
  readonly    // Make the editor read-only.
  onBlur = () => {} //callback function to call on blurring the editor.

  getContent={(content) => console.log(content)}  // Function to output the current content of the editor.
  deleteEditorAttachments = {async(id) => { }}  // Function to invoke after deleting attachments/Images from the editor.
  className={className} // custom classname for Editor.
  hardbreak={false} // applies hardbreak on the editor.
  attachmentLayout={attachmentLayout} // custom React node for attachments.
  maxUploadLimit ={maxUploadLimit} //for limiting the size of attachments.
  
/>

Demo

DEMO video

Testing Locally

  • Clone the Tapwrite repository and apply your changes.

  • Run npm run build to transpile your changes.

  • Run npm pack which creates a .tgz(tarball) file of the build. It essentially bundles your package just like npm publish but without actually publishing it.

    image

  • In your package.json, replace the value of tapwrite in dependencies with the path of your .tgz file.

    image

  • Run npm install

  • To revert the changes and use the published version, simply run npm i tapwrite

Contributions

Contributions are vital for the continuous improvement of Tapwrite. If you're interested in contributing, please feel free to submit pull requests or share your ideas and feedback through issues on our GitHub repository.

Contribution Guidelines

Coding Standards

  • [x] Linting: Use ESLint and Prettier to maintain code consistency.
  • [x] TypeScript: Ensure all contributions are typed.
  • [x] Documentation: Update relevant documentation (e.g., README, inline comments) for new features.
  • [x] Commit Messages: Follow Conventional Commits.

Submitting Pull Requests

  • Use descriptive branch names.
  • Pull Request Template :
    • Describe changes and motivation.
    • Reference related issues if there are any.
    • Attach screenshots/videos for testing and UI changes.
  • Be responsive to feedback.

Reporting issues

  • Use the GitHub Issues template.
  • Please describe :
    • Steps to Reproduce in detail.
    • Expected vs. Actual Behavior comparison.
    • Screenshots/Logs.
    • Environment.

Future Enhancements

We have plans on enhancing Tapwrite in the future versions. The immediate requirements are:

  • Implement mentions.
  • Optimize custom node view extensions : Image, Attachments, Mentions.
  • Add ability to style the editor, slash command menu, and bubble menu.
  • Ability to extend the Titap editor plugins to include custom features
  • Ability to add further commands in the slash command menu/bubble menu

Philosophy

We strive for Tapwrite to seamlessly integrate with your app without extensive configuration requirements. However, we also value its potential for extension, such as the ability to customize Tiptap editor plugins to include custom features, which is part of our future enhancements plan. Our aim is for Tapwrite to operate with zero configuration while offering simple, minimal configuration options for customizing and enhancing its core behavior. We actively encourage contributors to uphold this philosophy when working on feature enhancements.