DEV Community

Akshay Subramaniam
Akshay Subramaniam

Posted on

Haystack -- an IDE for exploring and editing code on an infinite canvas

Hi All!

We’re building Haystack Editor (https://haystackeditor.com/), a standalone code editor that enables you to view and edit your code (written in any language!) on an infinite canvas.

Here's a quick demo/overview:

Backstory

Haystack was born out of our frustrations with working in large and mature codebases, specifically with navigating and editing functional flows (e.g. the code flow for adding an item to the Amazon shopping cart).

Oftentimes dealing with such flows would involve navigating a maze of files and functions, and making any edits would involve a lengthy process of doing corresponding downstream/upstream plumbing.

Haystack attempts to address this in the following ways:

1. It allows you to explore your codebase as a directed graph of functions, classes, etc on the canvas. We feel like this better fits how your mind understands your codebase and helps you find and alter functional flows more intuitively. We especially want to utilize this for pull request reviews! See an example below.

A functional flow

2. It has a navigational copilot that makes edits across files or functions much easier. After you make some changes, Haystack will try to predict your next action and create functions/methods or refactor upstream/downstream code for you. Haystack will surface these speculative edits on the canvas in a way that you can easily dismiss or incorporate them, allowing you to make large changes with a few clicks or keystrokes. See an example below!

Haystack generating a method

3. Haystack will utilize natural language search so you don’t have to play “Where’s Waldo” to find a functional flow in your codebase. This is coming soon!

Feedback

We’re still pretty early in development, but we really want to perfect the experience of navigating and editing code on a canvas. Any feedback would be much appreciated!

PSA: Since Haystack is a VS Code fork, you should be able to import your keyboard shortcuts and extensions pretty easily. Please let us know if you have any concerns or issues with this!

Top comments (0)