# PromptVault — Application Specification > **Status:** COMPLETE (source of truth for this application) > **Last updated:** 2026-10-26 ## 1. Overview PromptVault is a **local-first prompt library for LLM workflows**. It lets a developer store, organize, search, and reuse reusable prompt templates, with `{{variable}}` placeholders that can be filled in and rendered on demand. Everything runs locally: PHP + SQLite on the backend, Vue 3 SPA on the front end. No accounts, no cloud, no external LLM calls. ### 1.1 Goals - CRUD for prompts with name, description, body, and tags. - Extract `{{variables}}` from a prompt body; render the prompt with provided values; strict about missing values. - Search (full-text-ish substring), filter by tag and by favorite, sort by a whitelisted set of fields, pagination. - Track per-prompt usage (`usage_count`, `last_used_at`) incremented whenever a prompt is rendered. - Duplicate, favorite-toggle, and delete prompts. - Fast, keyboard-friendly single-page UI. ### 1.2 Non-goals (v1) - Authentication / multi-user support (single-user local tool). - Calling LLM providers; rendering is purely client-side text interpolation. - Import/export (CSV/JSON), sharing, comments, versioning. - Soft deletes, audit logs, i18n. ## 2. Tech stack (decided) | Layer | Choice | Notes | |------------|---------------------------------------------------------------|-------| | Language | PHP **8.4** (min 8.3) | | | Framework | **Laravel** (current stable, 12.x/13.x skeleton) | Slim skeleton, `bootstrap/app.php` wiring | | ORM | **Eloquent** | | | Database | **SQLite 3** (`pdo_sqlite`), `database/database.sqlite` | Laravel's default | | Frontend | **Vue 3.5** (`