# Formfire **Structured data input for Obsidian — forms that create notes or update frontmatter.** [![GitHub License](https://img.shields.io/github/license/tolvitty/obsidian-formfire)](LICENSE) [![Obsidian](https://img.shields.io/badge/Obsidian-Plugin-7C3AED?logo=obsidian&logoColor=white)](https://obsidian.md) [![Version](https://img.shields.io/badge/version-1.0.0-blue)](manifest.json) [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript&logoColor=white)](tsconfig.json) ---
## Overview
Formfire brings **structured data input** to Obsidian. Define custom forms with a visual builder, then use them to create new notes or update existing frontmatter — no manual YAML editing required. Part of the **Fire-Suite** concept: closing the *Input* gap in the Input → Observe → Output workflow.
## Features
### 13 Field Types | Field | Description | |-------|-------------| | **Text** | Single-line text input | | **Textarea** | Multi-line text with resizable area | | **Number** | Numeric input with validation | | **Toggle** | Boolean on/off switch | | **Date** | Date picker with today as default | | **Time** | Time picker (HH:MM) | | **Dropdown** | Single-select from predefined options | | **Tags** | Multi-select with chip UI | | **Note Link** | Autocomplete from vault files | | **Folder Picker** | Autocomplete from vault folders | | **Rating** | 1–5 star rating | | **Slider** | Range input with configurable min/max/step | | **Color** | Color picker | ### Two Output Modes - **Create** — Generate a new note with frontmatter and a body template - **Update** — Modify frontmatter of an existing note (active file or prompt) ### Visual Form Builder - Drag & drop field reordering - Side-by-side live preview - Undo / Redo with keyboard shortcuts (`Ctrl+Z`, `Ctrl+Shift+Z`) - Per-field type configuration (options, min/max/step, folder restrictions) ### Template Engine Use `{{fieldId}}` variables in file names and body templates, plus built-in variables: - `{{date}}` — current date (YYYY-MM-DD) - `{{time}}` — current time (HH:MM) - `{{datetime}}` — current date and time ### Import & Export Share forms as JSON files — individually or all at once. Imported forms receive fresh UUIDs to prevent collisions.
## Installation
### Manual 1. Download the latest release (`main.js`, `manifest.json`, `styles.css`) 2. Create a folder `/.obsidian/plugins/formfire/` 3. Place the files in that folder 4. Enable the plugin in **Settings → Community Plugins** ### Build from Source ```bash git clone https://github.com/tolvitty/obsidian-formfire.git cd obsidian-formfire npm install npm run build ``` Copy `main.js`, `manifest.json`, and `styles.css` into your vault's plugin folder.
## Usage
1. Open **Settings → Formfire** to create your first form 2. Use the **Command Palette** (`Ctrl+P`) → *Formfire: Open Form* to fill it out 3. Alternatively, click the **ribbon icon** or use the **sidebar view** Each form gets its own direct-access command for quick launching.
## Access Points
| Method | Description | |--------|-------------| | **Command Palette** | `Formfire: Open Form` or per-form commands | | **Ribbon Icon** | Quick access from the left sidebar | | **Sidebar View** | Persistent form list panel | | **Settings Tab** | Full form management with builder |
## Development
```bash npm run dev # Watch mode with hot reload npm run build # Production build ```
## License
[MIT](LICENSE) © tolvitty