Skip to content

Releases: aboderinsamuel/closedNote

v1.1.0 -- Prompt Version History

16 Mar 10:40

Choose a tag to compare

Pre-release

What's new

Prompt Version History

Every edit is now tracked as a versioned snapshot. Open any prompt, click Version History, and see a visual diff of every change — additions in green, removals in red. Restore any previous version in one click without overwriting the history chain.

  • Full version timeline on every prompt
  • Visual diff powered by Google diff-match-patch
  • Smart versioning -- only creates a new version when content actually changes
  • Restore without noise -- restoring a version does not create a duplicate entry

Editor improvements

  • Textarea auto-resizes as you type or paste
  • ⌘S to save, Escape to cancel while editing
  • Paste cleanup -- strips leading/trailing blank lines on paste
  • Character count shown while editing
  • ⌘Enter to submit on the new prompt form

Landing page & docs

  • Redesigned landing page with differentiation story, comparison table, and version history spotlight
  • Updated docs with Version History section, new database table reference, and corrected migration count

v1.0.0 -- First stable release

16 Mar 09:09

Choose a tag to compare

🗒️ closedNote v0.1.0 — First Stable Release

The first stable release of closedNote — a minimalist open-source web app for saving, organizing, and reusing your best AI prompts.

Built for students, teachers, engineers, and anyone tired of re-engineering the same ChatGPT prompt twice.

👉 Live app: closednote.vercel.app


✨ What's included in this release

Core Prompt Management

  • Create, edit, and delete prompts with title, content, and AI model tagging
  • Organize prompts into Collections (group by topic, project, or use case)
  • One-click copy — paste straight into ChatGPT, Claude, Cursor, or any AI tool

Search

  • Command palette (⌘K / Ctrl+K) for instant search across all your prompts

Image to Text (OCR)

  • Upload a screenshot of any prompt or AI conversation
  • Tesseract.js extracts the text offline — no API key required
  • Optional AI refinement via OpenAI GPT-4o-mini or HuggingFace Zephyr-7b to clean it into a reusable prompt

Prompt Threads

  • Chain multiple prompts together into ordered sequences (Prompt Threads)
  • Each step can reference previous steps and map outputs to inputs

Auth & Privacy

  • Email/password signup with PKCE auth via Supabase
  • Row Level Security (RLS) — your prompts are private by default, always
  • Session persistence across browser restarts
  • Password visibility toggle on login/signup

Settings

  • Add your own OpenAI or HuggingFace API key to unlock AI features
  • Users without API keys still get full prompt management + offline OCR

UI/UX

  • Dark mode
  • Fully responsive — works on mobile
  • Optimistic UI updates (no page refresh on edits)

🧪 Tests

  • 25 tests passing across auth logic and UI components (Jest + React Testing Library)
  • CI pipeline via GitHub Actions

🗄️ Database

  • 3 Supabase migrations covering initial schema, user deletion, and Prompt Threads
  • Tables: users, prompts, tags, prompt_chains, chain_steps
  • Full RLS policies on all tables

⚙️ Tech Stack

  • Frontend: Next.js 14 · React 18 · TypeScript · Tailwind CSS
  • Backend: Supabase (PostgreSQL + PKCE Auth + RLS) · Next.js API Routes
  • AI / OCR: OpenAI GPT-4o-mini · HuggingFace Zephyr-7b · Tesseract.js
  • Deployment: Vercel

🚀 Getting Started

git clone https://github.com/aboderinsamuel/closedNote_v0.01.git
cd closedNote_v0.01
npm install
cp .env.example .env.local
npm run dev

Set NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY in .env.local. AI features are optional.


closedNote : because your prompts deserve better than browser history.