Project ideas from Hacker News discussions.

On caring for user data: NeoVim caused Vim undo files to be deleted

📝 Discussion Summary (Click to expand)

Theme 1 – Undo file compatibility / data loss
Many commenters criticized Neovim for silently deleting Vim’s undo files when the format changed, calling it a hostile design choice.

“It’s such an odd design decision. I could see ignoring the old undo data or warning before discarding it but just silently wiping it is so user hostile it’s hard to comprehend.” – cdmckay

Theme 2 – Moral duty of developers
A recurring debate centered on whether free/open‑source authors owe users a duty of care beyond the legal disclaimer.

“Most open source software is written by individuals who aren't paid for the effort, and are solving their own problems. Presuming that they feel an obligation to the folks who download and use their work for free seems... bold.” – timschmidt

Theme 3 – Political controversy (DHH endorsement)
The discussion frequently veered into the drama over a quote from DHH on Neovim’s site and accusations of platforming extremist views.

“Gotta be honest, this seems like making a mountain out of a molehill. Yeah, DHH is an awful person. His endorsement was removed from the page pretty quickly, but of course not fast enough to avoid the social media mob handing down their verdict upon the thankless maintainers.” – tmp_throwaway_q

Theme 4 – User responsibility / configuration
Several users argued that the data loss could be avoided by keeping separate undo directories or not sharing config between Vim and Neovim.

“But you still have to share the undodir for both vim and neovim right? If your undo data was that precious why would you gamble the interoperability? You could just have them in different folders and it would be fine.” – johnnypangs

Theme 5 – License / “AS IS” disclaimer
Defenders pointed to Neovim’s license, which provides the software without warranty, suggesting users accept the risk.

“Licensor provides the Work (and each Contributor provides its Contributions) on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied…” – timschmidt (quoting the Neovim/Apache‑2.0 license)


🚀 Project Ideas

UndoGuard CLI

Summary

  • A command‑line tool that runs before Neovim install/upgrade to detect shared undo directories, back up Vim’s .un~ files, and optionally migrate them to a safe location.
  • Core value proposition: prevents silent data loss when switching between Vim and Neovim by giving users a reversible backup step.

Details

Key Value
Target Audience Vim/Neovim users who frequently switch editors or maintain parallel configs
Core Feature Pre‑install/upgrade hook that backs up Vim undo files to a timestamped directory and logs the action
Tech Stack Rust (for speed and safety) + Clap for CLI args + std::fs for file ops
Difficulty Low
Monetization Hobby

Notes

  • HN commenters highlighted the silent deletion of Vim undo files as a major pain point (“They deleted important data of yours without warning”).
  • Provides a concrete, automatable safety net that aligns with the community’s call for “a migration path” and “warn before deleting”.

Neovim Undo Migration Plugin

Summary

  • A Neovim plugin that runs on VimEnter, checks for foreign undo files in the same undo directory, and offers to back them up, migrate them to Neovim’s format, or leave them untouched after user confirmation.
  • Core value proposition: turns a destructive, silent operation into an explicit, user‑consented workflow.

Details

Key Value
Target Audience Neovim users who reuse their vimrc and share undo directories with Vim
Core Feature Interactive prompt with options: backup, migrate, skip, or abort; integrates with Neovim’s undo subsystem
Tech Stack Lua (Neovim’s native plugin language) + LuaFileSystem
Difficulty Medium
Monetization Hobby

Notes

  • Commenters repeatedly asked “Why not give it a different name, so that it would not break vim?” and suggested migration or backup as a remedy (“They could have saved the contents of the old undo folder somewhere and notified the user”).
  • This plugin directly addresses those suggestions, offering a low‑friction way to honor the duty of care users expect.

UndoFile Versioning Service (UFVS)

Summary

  • A lightweight, self‑hosted API that stores undo histories keyed by file path and editor version, allowing Vim and Neovim to read/write a shared, version‑agnostic undo store instead of fragile .un~ files.
  • Core value proposition: decouples undo persistence from editor‑specific file formats, eliminating cross‑editor clashes.

Details

Key Value
Target Audience Teams or individuals who use both Vim and Neovim across multiple machines and want reliable undo history
Core Feature Centralized undo store with versioned snapshots; client libraries for Vim (vimscript) and Neovim (Lua) to push/pull undo data
Tech Stack Go (backend) + SQLite or BoltDB for storage; Lua/RPC client for Neovim, vimscript client for Vim
Difficulty High
Monetization Revenue-ready: Hosted plan $5/mo per user; self‑hosted open source

Notes

  • Users complained that “the feature that was broken is called persistent undo… the docs explicitly promise that edit history will be preserved.”
  • A versioned service guarantees that promise regardless of editor upgrades, satisfying the desire for a “drop‑in replacement” that doesn’t destroy data.

Editor Data Loss Detector (EDLD)

Summary

  • A daemon that monitors the configured undo directories for unexpected deletions or overwrites, logs the event, and optionally restores from a snapshot taken moments before.
  • Core value proposition: gives users a safety net that catches data loss after the fact and provides an easy undo‑recovery path.

Details

Key Value
Target Audience Cautious Vim/Neovim users who keep important undo histories and want assurance against silent wipes
Core Feature Inotify (Linux) / FSEvents (macOS) watcher; on delete, moves file to a trash folder and notifies via desktop alert or email
Tech Stack Python (watchdog) + optional systemd service; cross‑platform via PyObjC for macOS
Difficulty Low
Monetization Hobby

Notes

  • Many commenters noted that “they didn’t notice the loss until later” and wished for a way to “detect that something went wrong”.
  • This tool offers passive monitoring, aligning with the community’s request for better visibility into what editors are doing to their data.

Vim‑Neovim Compatibility Shim

Summary

  • A small FUSE‑based filesystem layer that presents a unified undo directory to both Vim and Neovim, translating each editor’s undo file format on the fly so they never see each other’s files directly.
  • Core value proposition: eliminates file‑format clashes entirely by handling format conversion transparently.

Details

Key Value
Target Audience Power users who run Vim and Neovim side‑by‑side on the same workstation and share an undo directory
Core Feature FUSE mount that maps ~/.undo/ to editor‑specific sub‑formats, performing read‑time conversion and write‑time translation
Tech Stack C + libfuse3; format parsers for Vim .un~ and Neovim undo binary
Difficulty High
Monetization Hobby

Notes

  • The thread repeatedly mentioned that “Neovim should have used a different file name” and that “separate undo files seems the obvious and expected choice”.
  • This shim makes the separate‑file idea invisible to the user, satisfying both the desire for compatibility and the editors’ internal expectations.

Read Later