https://github.com/tkhwang/prompt-pad
Simple Prompt IDE
https://github.com/tkhwang/prompt-pad
prompt reactjs tauri-app typescript vitejs
Last synced: 4 months ago
JSON representation
Simple Prompt IDE
- Host: GitHub
- URL: https://github.com/tkhwang/prompt-pad
- Owner: tkhwang
- Created: 2026-02-14T07:05:50.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-02-16T13:22:07.000Z (4 months ago)
- Last Synced: 2026-02-17T01:39:45.004Z (4 months ago)
- Topics: prompt, reactjs, tauri-app, typescript, vitejs
- Language: TypeScript
- Homepage:
- Size: 820 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PromptPad
A desktop app for managing AI prompt templates. Prompts are stored as plain Markdown files on your filesystem — no cloud, no lock-in.
Built with [Tauri 2](https://v2.tauri.app/) + [React 19](https://react.dev/) + [NestJS 11](https://nestjs.com/), managed as a [Turborepo](https://turbo.build/) monorepo.
## Features
- **File-based storage** — Prompts are Markdown files with YAML frontmatter, organized in topic folders. Portable and version-control friendly.
- **Topic organization** — Group prompts by topic (e.g., Coding, Writing, General). Create, rename, and delete topics freely.
- **Template variables** — Use `{{variable}}` placeholders in prompts. Fill values in a side panel and copy the final result to clipboard.
- **Auto-save** — Changes are saved automatically with debounced writes and change detection.
- **Search** — Instant case-insensitive search across prompt titles and bodies.
- **Theming** — Light, dark, and system-follow modes with oklch color space.
- **Onboarding wizard** — First-run setup for language, storage directory, theme, and font size.
- **i18n** — English and Korean. Type-safe translations with `{{variable}}` interpolation.
- **Keyboard shortcuts** — `Cmd+N` new prompt, `Cmd+Shift+N` new topic.
## Data Model
The filesystem is the database.
On first launch, the onboarding wizard lets you choose where to store your prompts:
```
~/Documents/PromptPad/ # configurable prompt directory
└── Topic/
└── my-prompt1.md
└── my-prompt2.md
```
Each prompt file:
```markdown
---
title: Code Review
created: 2025-01-15T10:00:00.000Z
updated: 2025-01-15T10:30:00.000Z
tags: []
---
Review the following {{language}} code for bugs and improvements:
{{code}}
```
Settings persist via Tauri Store at `~/.PromptPad/settings.json`.
## Getting Started
### Prerequisites
- [Node.js](https://nodejs.org/) (v18+)
- [pnpm](https://pnpm.io/)
- [Rust](https://www.rust-lang.org/tools/install)
- [Tauri prerequisites](https://v2.tauri.app/start/prerequisites/)
### Install
```bash
git clone https://github.com/tkhwang/prompt-pad.git
cd prompt-pad
pnpm install
```
### Development
```bash
# Monorepo
pnpm dev # All packages in dev mode (Turborepo)
# Desktop
pnpm dev:desktop # Vite dev server only (localhost:1420)
pnpm tauri:dev # Full Tauri desktop app with hot reload
# Backend
pnpm dev:backend # NestJS watch mode (localhost:3000)
```
### Build
```bash
# Monorepo
pnpm build # Build all packages (shared → desktop + backend)
# Desktop
pnpm build:desktop # tsc + Vite bundle
pnpm tauri:build # Production desktop binary
# Backend
pnpm build:backend # nest build
```
### Lint & Format
```bash
pnpm check # Biome lint + format (auto-fix) across all packages
```
### Release
```bash
pnpm release # Interactive: pick version → update files → commit → tag → push
pnpm release patch # 0.1.0 → 0.1.1
pnpm release minor # 0.1.0 → 0.2.0
pnpm release major # 0.1.0 → 1.0.0
```
Updates version across all `package.json`, `Cargo.toml`, and `tauri.conf.json` in one step. Pushing a `v*` tag triggers the macOS build workflow.
## Tech Stack
| Layer | Technology |
| ------------- | --------------------------------------------------------- |
| Monorepo | pnpm workspaces, Turborepo 2 |
| Frontend | React 19, TypeScript (strict), Tailwind CSS v4, shadcn/ui |
| Desktop | Tauri 2 (Rust) |
| Backend | NestJS 11, TypeScript (strict) |
| Shared | TypeScript types (`@prompt-pad/shared`) |
| Tauri Plugins | fs, dialog, clipboard-manager, store |
| Linting | Biome |
| Icons | lucide-react |