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

@aavanamkit/designer

v1.0.26

Published

Are you looking for a powerful, open-source solution to generate PDF and DOCX documents in your web application? **AavanamKit** is a modern document generation toolkit designed to fix the broken workflow of hardcoded layouts. It provides a full-stack ecos

Downloads

141

Readme

Are you looking for a powerful, open-source solution to generate PDF and DOCX documents in your web application? AavanamKit is a modern document generation toolkit designed to fix the broken workflow of hardcoded layouts. It provides a full-stack ecosystem, featuring a visual, drag-and-drop React component for template design and a headless Node.js engine for high-quality, server-side document creation. Stop fighting with print CSS and clunky libraries—AavanamKit is the definitive invoice generator and report builder that saves you time and empowers your users. AavanamKit is built on top of the popular React and Node.js frameworks

License: MIT AavanamKit Engine CI GitHub stars npm version npm downloads

Stop Coding Layouts Blindly.

You know the process. You need to generate a PDF invoice. You open your editor and start writing code like `doc.text('Total:', 400, 750)`. You save, re-run your script, and check the output. The text is a few pixels off. You go back, guess a new coordinate, and repeat the cycle. It's slow, frustrating, and completely disconnected from the visual nature of the task.

The alternative is often worse: fighting with print CSS to convert HTML to a PDF, only to end up with a low-quality, blurry document that looks terrible on a professional invoice or a thermal printer receipt.

AavanamKit is designed to fix this broken workflow.

A Visual Development Tool for Documents

AavanamKit is a complete ecosystem that treats document layouts not as a coding chore, but as a visual design process.

Our core philosophy is simple: Design your document visually first, then use the exported JSON as your production-ready template.

Instead of guessing at coordinates, you use our powerful visual designer to draw your layout. You see exactly how it will look in real-time. When you're done, you export a clean JSON object that represents your entire design. This JSON is your layout code, ready to be used by our headless backend engine.


🚀 Live Demo & Sample Templates

Seeing is believing. We've built a full live demo where you can experience the power of the AavanamKit designer right in your browser.

» Try the Live Demo Now!

AavanamKit Live Demo GIF

The demo comes pre-loaded with a gallery of professional templates. The complete source code for these templates can be found in the packages/designer/src/lib/templates.js file.


🚀 Documentation

Seeing is believing. We've built a full a comprehensive documentation site.

The demo comes pre-loaded with a gallery of professional templates. The complete source code for these templates can be found in the packages/designer/src/lib/templates.js file.


The demo comes pre-loaded with a gallery of professional templates for a mobile repair shop, showcasing the versatility of the designer:

  • A full A4 Service Invoice: A standard, comprehensive invoice perfect for detailed billing.
  • A compact A5 Invoice: A modern, stylish design for smaller jobs or quotes.
  • A continuous-roll Thermal Receipt: Demonstrates the "Roll Mode" for printers with dynamic paper length.
  • A small Job Repair Ticket: A custom-sized ticket for internal tracking and customer claims.

You can access these templates by clicking the "New from Template" button in the demo. The complete source code for these templates can be found in packages/designer/src/lib/templates.js.

✨ The AavanamKit Ecosystem

AavanamKit is a monorepo containing two distinct but perfectly synchronized packages:

🎨 @aavanamkit/designer (Your Visual Dev Tool)

A powerful, embeddable React component that provides a full WYSIWYG "design studio." Use it in your local development environment to visually build and export your document templates.

  • Complete Visual Canvas: A full WYSIWYG experience. Drag, drop, resize, rotate, and style every element with an intuitive properties panel.

  • Powerful Data Binding: Visually map any element's property to your application's data schema. The designer intelligently flattens complex, nested JSON for easy use.

  • Advanced Components Built-In: Go beyond simple text and images with a powerful, auto-paginating Table that handles page breaks automatically, plus support for Barcodes and various Shapes.

  • Total Page Control: Full control over your document's layout. Choose standard sizes like A4/Letter, define custom dimensions, switch between portrait/landscape, or use the Continuous Roll mode for dynamic-height thermal printer receipts.

  • Professional Workflow Tools: Speed up your design process with keyboard shortcuts, canvas zoom & pan, and a built-in gallery of production-ready templates to start from.

  • Conditional Rendering: Easily set rules to show or hide elements based on your live data (e.g., only show a "Discount Applied" label if discount > 0).

  • Pre-Printed Stationery Support: Upload an image of your pre-printed paper as a background to perfectly align your digital design with your physical media.

  • Instant JSON Export: Get a clean, production-ready template JSON with one click.

📦 Installation

Install the designer in your React project using npm:

npm install @aavanamkit/designer

🔧 Usage

Import the AavanamKit component and its required, pre-built CSS file. You control the designer by passing it your application's data schema and wiring up the onSave callback to your backend.

import React, { useState, useEffect } from 'react';
import AavanamKit from '@aavanamkit/designer';
import '@aavanamkit/designer/dist/AavanamKit.css';

function MyTemplateEditor() {
  const myAppSchema = {
    customer: { name: "string", address: "string" },
    invoiceNumber: "string",
    items: [{ description: "string", total: "number" }]
  };

  const [template, setTemplate] = useState(null);

  useEffect(() => {
    // fetchTemplateFromApi().then(savedTemplate => setTemplate(savedTemplate));
  }, []);

  const handleSave = async (newTemplate) => {
    console.log("Saving template to database:", newTemplate);
    // await saveTemplateToApi(newTemplate);
  };

  return (
    <div style={{ height: '100vh', width: '100%' }}>
      <AavanamKit
        schema={myAppSchema}
        template={template}
        onSave={handleSave}
      />
    </div>
  );
}

📘 Component API

<AavanamKit />

| Prop | Type | Required | Description | |-----------|----------|----------|-----------------------------------------------------------------------------| | schema | object | ✅ Yes | An object representing the data structure of your application. | | onSave | function| ✅ Yes | A callback function that receives the complete template JSON on save. | | template| object | ❌ No | A previously saved template object to load into the designer. | | data | object | ❌ No | Sample data used for live previews and in-browser exporting. |


The Bonus: Safe Client Empowerment

And if you want to go the extra mile, you can then embed the same `@aavanamkit/designer` component into your application's admin panel. This allows your clients to safely handle their own visual changes without ever needing to touch the underlying data structure.

What clients can do:

  • Change element positions (move the logo, rearrange footer text).
  • Adjust styling (font sizes, colors, bold/italics).
  • Upload their own images, including using a scan of their pre-printed stationery as a background to perfectly align their design.

What clients cannot do:

  • They cannot change the data schema or the data bindings. The core data structure is controlled by you, the developer, ensuring data integrity is always maintained.

❤️ Contributing & Support

The AavanamKit Project is a community-driven, open-source initiative. Your help makes it better.

🪪 License

This project is licensed under the MIT License.