{"id":44822794,"url":"https://github.com/tkhwang/prompt-pad","last_synced_at":"2026-02-21T08:26:03.035Z","repository":{"id":338412161,"uuid":"1157711609","full_name":"tkhwang/prompt-pad","owner":"tkhwang","description":"Simple Prompt IDE","archived":false,"fork":false,"pushed_at":"2026-02-16T13:22:07.000Z","size":840,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-17T01:39:45.004Z","etag":null,"topics":["prompt","reactjs","tauri-app","typescript","vitejs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tkhwang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-14T07:05:50.000Z","updated_at":"2026-02-16T13:21:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tkhwang/prompt-pad","commit_stats":null,"previous_names":["tkhwang/prompt-pad"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tkhwang/prompt-pad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkhwang%2Fprompt-pad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkhwang%2Fprompt-pad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkhwang%2Fprompt-pad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkhwang%2Fprompt-pad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkhwang","download_url":"https://codeload.github.com/tkhwang/prompt-pad/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkhwang%2Fprompt-pad/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29677405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T06:23:40.028Z","status":"ssl_error","status_checked_at":"2026-02-21T06:23:39.222Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["prompt","reactjs","tauri-app","typescript","vitejs"],"created_at":"2026-02-16T20:41:40.940Z","updated_at":"2026-02-21T08:26:03.031Z","avatar_url":"https://github.com/tkhwang.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PromptPad\n\nA desktop app for managing AI prompt templates. Prompts are stored as plain Markdown files on your filesystem — no cloud, no lock-in.\n\nBuilt 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.\n\n## Features\n\n- **File-based storage** — Prompts are Markdown files with YAML frontmatter, organized in topic folders. Portable and version-control friendly.\n- **Topic organization** — Group prompts by topic (e.g., Coding, Writing, General). Create, rename, and delete topics freely.\n- **Template variables** — Use `{{variable}}` placeholders in prompts. Fill values in a side panel and copy the final result to clipboard.\n- **Auto-save** — Changes are saved automatically with debounced writes and change detection.\n- **Search** — Instant case-insensitive search across prompt titles and bodies.\n- **Theming** — Light, dark, and system-follow modes with oklch color space.\n- **Onboarding wizard** — First-run setup for language, storage directory, theme, and font size.\n- **i18n** — English and Korean. Type-safe translations with `{{variable}}` interpolation.\n- **Keyboard shortcuts** — `Cmd+N` new prompt, `Cmd+Shift+N` new topic.\n\n## Data Model\n\nThe filesystem is the database. \u003cbr /\u003e\nOn first launch, the onboarding wizard lets you choose where to store your prompts:\n\n```\n~/Documents/PromptPad/               # configurable prompt directory\n└── Topic/\n    └── my-prompt1.md\n    └── my-prompt2.md\n```\n\nEach prompt file:\n\n```markdown\n---\ntitle: Code Review\ncreated: 2025-01-15T10:00:00.000Z\nupdated: 2025-01-15T10:30:00.000Z\ntags: []\n---\n\nReview the following {{language}} code for bugs and improvements:\n\n{{code}}\n```\n\nSettings persist via Tauri Store at `~/.PromptPad/settings.json`.\n\n## Getting Started\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) (v18+)\n- [pnpm](https://pnpm.io/)\n- [Rust](https://www.rust-lang.org/tools/install)\n- [Tauri prerequisites](https://v2.tauri.app/start/prerequisites/)\n\n### Install\n\n```bash\ngit clone https://github.com/tkhwang/prompt-pad.git\ncd prompt-pad\npnpm install\n```\n\n### Development\n\n```bash\n# Monorepo\npnpm dev              # All packages in dev mode (Turborepo)\n\n# Desktop\npnpm dev:desktop      # Vite dev server only (localhost:1420)\npnpm tauri:dev        # Full Tauri desktop app with hot reload\n\n# Backend\npnpm dev:backend      # NestJS watch mode (localhost:3000)\n```\n\n### Build\n\n```bash\n# Monorepo\npnpm build            # Build all packages (shared → desktop + backend)\n\n# Desktop\npnpm build:desktop    # tsc + Vite bundle\npnpm tauri:build      # Production desktop binary\n\n# Backend\npnpm build:backend    # nest build\n```\n\n### Lint \u0026 Format\n\n```bash\npnpm check            # Biome lint + format (auto-fix) across all packages\n```\n\n### Release\n\n```bash\npnpm release          # Interactive: pick version → update files → commit → tag → push\npnpm release patch    # 0.1.0 → 0.1.1\npnpm release minor    # 0.1.0 → 0.2.0\npnpm release major    # 0.1.0 → 1.0.0\n```\n\nUpdates version across all `package.json`, `Cargo.toml`, and `tauri.conf.json` in one step. Pushing a `v*` tag triggers the macOS build workflow.\n\n## Tech Stack\n\n| Layer         | Technology                                                |\n| ------------- | --------------------------------------------------------- |\n| Monorepo      | pnpm workspaces, Turborepo 2                              |\n| Frontend      | React 19, TypeScript (strict), Tailwind CSS v4, shadcn/ui |\n| Desktop       | Tauri 2 (Rust)                                            |\n| Backend       | NestJS 11, TypeScript (strict)                            |\n| Shared        | TypeScript types (`@prompt-pad/shared`)                   |\n| Tauri Plugins | fs, dialog, clipboard-manager, store                      |\n| Linting       | Biome                                                     |\n| Icons         | lucide-react                                              |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkhwang%2Fprompt-pad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftkhwang%2Fprompt-pad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkhwang%2Fprompt-pad/lists"}