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

app-form

v2.2.1

Published

CLI to generate reusable, type-safe form components using react-hook-form and zod with ShadcnUI

Readme

🧩 app-form

A CLI for generating reusable, type-safe form components using React Hook Form, Zod, Tailwind CSS, and shadcn/ui.

npm license downloads


✨ Features

  • ✅ Built with react-hook-form and zod
  • ✅ Uses Tailwind CSS + shadcn/ui components
  • ✅ Reusable form fields: Input, Textarea, Select, Checkbox, Radio, Switch, Combobox, Multi-Select, Image Upload, and more
  • ✅ One-by-one component installation (shadcn-style)
  • ✅ Dependency-aware CLI (auto-installs internal deps)
  • ✅ Clear warnings for required shadcn & external packages
  • ✅ Works with Next.js App Router ("use client")

📖 Documentation, Setup & Examples

Full setup instructions and live, copy-paste examples for every field are on the website:

👉 app-form-client.vercel.app

Visit the site for the complete setup guide (peer dependencies, shadcn/ui configuration, schema setup) and runnable examples — basic forms, login forms, and advanced programmatic control with setValue, watch, getValues, and reset.


📦 Installation

npm install app-form

⚙️ CLI Usage

List available components

npx app-form list

Example output:

app-form
app-input-field
app-textarea
app-checkbox
app-checkbox-group
app-switch
app-radio-group
app-select-item
app-combobox
app-multi-select
app-file-uploader
app-input-field-array

Install a single component (recommended):

npx app-form add app-input-field

What this does:

  • Installs app-form automatically if required
  • Copies files into components/app-form/
  • Lists the required shadcn/ui components for each field
  • Warns about external dependencies (e.g. lucide-react)

Install all components:

npx app-form init

📁 Generated File Structure

Once initialized, you'll get:

All files are owned by your project and fully editable.


🔌 Peer Dependencies

You must already have these installed in your app:

npm install react react-dom react-hook-form zod @hookform/resolvers tailwindcss class-variance-authority

And make sure the required shadcn/ui components are generated. The CLI prints exactly which ones each field needs when you install it — see the setup guide for full details.

npx shadcn@latest add input label checkbox select

📄 License

ISC

Built by Md Aminul Islam (Rahat)