open-index/open-npm huggingface dataset:
npm package: @select-org/select-post-builder
Description: A reusable, extensible Post Builder widget for the Select platform and beyond.
Latest version: 1.1.45

# Post Builder Widget

A reusable, extensible **Post Builder widget** for the Select platform and beyond.  
Designed to ensure functional parity across web and mobile clients, while enabling rapid iteration and consistent UX.

---

## ✨ Features

- **Functional Parity with Mobile**  
  Supports all content types available in the mobile client.

- **Rich Text Editing**  
  Powered by [Tiptap](https://tiptap.dev), with support for:

  - Bold, italic, underline, lists, etc.
  - Representative formatting preview before publishing.
  - Extensible architecture for custom features (polls, embeds, etc.).

- **Multi-media Posts**

  - Inline image and GIF search.
  - Drag-and-drop or select image uploads.

- **Exposure Settings**  
  Audience and privacy controls directly in the composer.

- **Creation UX**

  - Floating action button: start composing from anywhere.
  - Modal-based editor: avoids disrupting scroll position.
  - Optimized for desktop and small-screen views.

- **Fast-Follow UX**  
  TBD improvements for polish and responsiveness.

---

## 🛠️ Technical Decisions

- **Widget-First Architecture**  
  The Post Builder is implemented as a self-contained widget, ensuring:

  - Reusability across multiple projects/clients.
  - Improvements are shared instead of locked into a single client.

- **Build & Distribution**

  - **[Vite](https://vitejs.dev/):** Lightning-fast dev builds (esbuild) and optimized production bundles (Rollup).
  - **GitHub Packages:** Internal package distribution with flexibility to migrate to npm if needed.

- **Styling**

  - **Tailwind CSS v4:** Utility-first design system for consistency and maintainability.

- **Rich Text Engine**
  - **Tiptap:** Extensible editor framework enabling custom nodes, formatting, and media integrations.

---

## 📦 Installation

```bash
# Install via GitHub Packages
npm install @your-org/post-builder
# or with yarn
yarn add @your-org/post-builder
```