tracyhenry
This has been a great idea for decades. I want Haystack to be successful just like many other attempts. The early execution seems promising. And I suspect there will be many challenges (e.g. when it's hard to figure out caller/callee,, inconsistent UX preferences across developers, etc). Kudos for taking this on!

Btw I've always thought that this is even more powerful when the screen estate is more infinite than a 2D screen (like in a VR headset).

faramarz
Very cool. I imagined my organizations entire codebase being mapped like this and across different frameworks and languages.

I don’t know if I missed this in the video or if it’s not yet possible, but that’s a lot of manual work, so instead of connecting the nodes, give a simple bot to run in the repo folder to automate the visualization.

It’s super cool and I’m adding to my watch list.

If I were you, i’d target enterprise organizations or local municipalities IT groups who are going through or planning their digital transformations. They have a need for way-finding and sense making across legacy and new work.

If you play your cards right, Salesforce will come knocking in under a year. I see a lot of compatibility with their vision and product offerings.

hyggetrold
Does this project take any inspiration from Light Table?

Potential feature request - take the visualization beyond 2D. Really complex systems are usually an intricate graph (polite way of saying ball of yarn) and just visualizing in the 2D plane doesn't seem to cut it in my experience.

I would love to have something like concentric spheres of visualization - boundary services on the outer layer, core/domain services in the inner layer.

closetkantian
So this is a major side question, but is there a go-to open source infinite canvas? I'm building a card game and I need a multiplayer infinite canvas for it. I'd appreciate any recommendations.
nicktikhonov
I would try it if it was a VSCode extension. I'd like to use it, but I live inside cursor these days.
belowm
Why can't this be an extension? I love the idea and can perfectly imagine this inside a tab of the editor area. This would allow for multiple haystack tabs as well, so switching contexts would be seven easier. Having to install another IDE (even if it is based on vscode) is a bit of a bummer for me. None the less, keep it up!
jecel
This reminds me of the "Kansas" environment in the Self programming language. Here is a video about it from Sun in 1995:

https://www.youtube.com/watch?v=Ox5P7QyL774

More interesting search features were added after this video was made.

theideaofcoffee
Oh, this is great. And pretty much the process of what I do when I look at larger codebases, except not as clean and organized. I would normally have a half dozen terminals open into various source files at once trying to build the map in my head. Though it eventually clicks and happens, it's laborious, but it seems like something like this would help immensely. Now, the only thing left is to combine it with an ultrawide monitor.
simonmysun
In my mind this a convenient approach for developers to map the code into a two dimensional space in a spread-out way. It is similar to method of loci[1] that the develpoper spacially elaborately encode the code snippets and their connections to strengthen the memory thus strengthen the comprehension. I boldly suggest considering ading an option for a background pattern which is not distracting but a little bit informative. I don't have a specific one in mind but consider if the background is a world map, users will remember the location they want to find faster and also locate themselves faster.

Following this line of thought, I think allowing user to define tab border color or even to add different noise for each tab worth considering (noise fades with zoom level and distance to the view port center).

https://en.wikipedia.org/wiki/Method_of_loci

ocean_moist
This feels helpful as I have to hold less stuff in my mind, but the UI is way too mouse dependent right now. You guys should make some shortcuts and somehow make it “tiling” like a window manager (dwm), so you don’t have to manually resize windows.
WuxiFingerHold
I have nothing intelligent to say, just that I somehow love this idea very much. Somehow visualizing complexity of any kind, helping understanding and refactoring it, is what I constantly have in the back of my mind. Probably a dream of my subconsciousness that is looking for a solution for the complexity (mainly) at my work life.
azhenley
Beware, canvas-based code editors (like Code Bubbles) have problems. A 1d carousel/ribbon performed better in some initial user studies:

https://austinhenley.com/pubs/Henley2014CHI_Patchworks.pdf

threecheese
This is great and I can’t wait to try it. I’ve been coding for a few decades, and have always been good at “keeping the program in my head”. However, in life I am very bad at this and have failed at just about everything that’s not programming, and based on a recent diagnosis I’ve learned a lot about ADHD, autism, and “visual learners” for whom abstract mental models are difficult to internalize without some visual anchor. Anyway, this has led me to use more visual tools - like Miro and Heptabase - and the lessened cognitive load is nothing less than stunning. I hope this model of human/machine interface is beneficial to everyone, and not just those who are broken, but coming from one of the latter I appreciate what you are doing here.
Blaec
Folks following this discussion might be interested in knowing about CoCalc's Whiteboard implementation. https://cocalc.com/features/whiteboard

You can access cocalc.com via your web browser to use the Whiteboard. It's an infinite canvas where you can write using a pen and tablet (like an iPad), make sticky notes using LaTeX/Markdown (or Rich Text), and run Jupyter cells.

The platform supports many kernels without the hassle of installation, including Python, R, Julia, Octave, SageMath, and more. You can also use custom kernel environments...

welder
This is very cool and building for a future of 100% AI generated coding, but for some reason I don't feel the urge to use it right now. I think it's because using the mouse turns me off. I use Vim or Vscode with Vim keybindings so any workflow depending on a mouse won't work for me.
atomicnature
Reminds me a bit of the old smalltalk GUI. It had this sort of "object editing" capability IIRC. Actually, smalltalk could connect different data types, such as code, images, videos, presentations, docs, etc into a cohesive whole. Not as polished as your demo of course , but that was the core idea.
g19fanatic
I've needed something this from the first days of learning to program. I've been able to recreate this (kinda) with vim panes and tabs in addition to tmux panes and sessions.

I'll keep my code in a left pane in vim, <C-w v> to duplicate the buffer in a new pane and then use tags to goto a definition and if needed to go deeper, do it again. I don't usually kill this unless no longer needed and If i need to go down some other branch, will just <C-w v> then <C-w T> to start that pane in a new tab and do it again. Easily keeping the different contexts in different panes and tabs inside of vim. all managed by <C-w |> and <C-w => to make it easier to read... Tmux panes and sessions for entire project contexts so on and so forth.

Having it graphical looks really really nice and I'd love to have something like this for presentations/debugging over zoom sessions.

xixixao
Congrats on the launch. It is an “obvious” idea, in a good way. Agree that minimizing the effort in constructing the workspace will be key. I’d also love to try a sort-of 3D stack for caller/callee relationship, zooming in and out. The code really is a graph (not acyclic though), and I think visualizing it that way can be helpful.
cdchn
It looks like a cool feature to an existing IDE but trying to sell it and forking VSCode as your own editor to try to sell seems like an uphill battle. Best of luck to you though.
pcarbonn
Thanks! I'll certainly give it a try. Not sure what the business model should be, though.

You may want to take some inspiration from prezi.com. One could write prezi-like HS workspaces to document some particular workflows. You would want the possibility to add text to the canvas (outside of the code editors), and allow zooming in/out from editors. This could be a premium feature that large companies want to pay for.

jacobsenscott
Interesting - though it probably just soft of devolves to using hot keys (hopefully those exist) to jump between files after a few editors are open. Panning around with even half a dozen files open would get tedious.
arvindrajnaidu
Reminds me of a hackathon submission I did for a Neo4j Hackathon. I remember winning some money :)

https://www.youtube.com/watch?v=RTsnSxyO6MY

It will be great if you are able to run tests on the codebase and watch the entire graph light-up in different colors. This is much cooler way to depict test coverage and also identify the most heavily used part of the codebase.

Scribbd
I often use `code` command in the cli for a bunch of tasks. Mostly to just open an instance of vscode in a dir I am at. Is there a plan for such a command like that for haystack-ide?

Meanwhile, an alias is easily created for macOS: `alias needle="/Applications/Haystack\ Editor.app/Contents/MacOS/Electron"`

thesurlydev
I like the idea but what would be next level would be to visualize a project and all its dependencies such as microservices, database, queue, etc.

Has there been any studies that prove that this infinite canvas mode is more productive than using a traditional IDE with heavy use of keyboard shortcuts, etc.

wanderingmind
Digression, but among two contributors there are over 100,000 commits and the year listed is only 2024. That's an insane amount of commits (about 200 per person per day). Did they use autocommits? Would love to learn the tooling and devprocess that was used.
williamstein
Is most development of Haystack done using Haystack?
slightwinder
This looks like a very simple mindmap, but more annoying to use because of the big elements. Some automated positioning seems very necessary here. Additionally, what about proper mindmap/diagram-features and notes?

If you take a look at https://obsidian.md/canvas you will see that they have things like colored groups and different element-types. And their community-extensions have many more improvements for the canvas. Just focusing on navigation seems wasted. A good focus on mixing code, documentation and notes might be a more worthy goal, I think.

Anyway, as this is forked from VS Code, does this also support normal vscode-extensions and other features like workspaces? And does it receive updates from the original, or is it fixed to the initial forked VS Code-version?

vouaobrasil
Looks like it might also work for writing a book with lots of chapter/source files. Will give it a go.
billconan
I'm also building a canvas app these days. Thank you very much for sharing the code. I'm very curious to know your tricks to make the canvas efficient.

for my project, I use virtualization/windowing to only draw what's visible. but mine doesn't draw complex widgets like a code editor.

I will dig the code to find out.

valianter
I get that this is a completely new idea so adoption is going to be slow but I'm curious to see how your user interviews and user research is going. I'm a young dev but I'm not even sure if I would use this because the way I've learned to code is already so ingrained into the traditional IDE. Nevertheless, congrats on the launch!
observationist
Screenshots. Show - don't tell, especially if you're making claims about visualization!
DenisM
How would you defend your business if/when IntelliJ implements a similar concept?
throwaway4aday
Wow, great work and kudos for making the source available! I'll have to give this a try.
999900000999
Very awesome!

I want this for C# and Python! Are their any technical challenges there? I would love to use this with Unity.

nisten
looking at the package.json infestation of this thing makes me want to just go plain vim WITHOUT any plugins.

Ok, what's that , you want AI sir, guess what b:tch, you can :split out a :terminal window and run a llama-cli conversation right inside vim too. Ctrl + w N and you even get line numbers from whatever contraption of code you got out of that 7b coder model.

btown
This is really, really cool!

On the licensing side, though:

> We’ve made the decision to make the editor source-available so that folks can make contributions and so that they can examine the code to make sure they can trust it.

This is a very reasonable intent, and it absolutely makes sense to preserve your options to monetize, but Polyform Strict https://polyformproject.org/licenses/strict/1.0.0/ , which you link to from your readme, seems to be far stronger than this intent.

The way I read that license, I cannot "make changes" even if I do not distribute those changes, not even changing a line of code on a version I'm running on my own computer, whether I'm using it for a commercial project or not. So contributors, it seems, would be limited to raising issues but not PRs? And it's unclear what applies as commercial use - if I'm using Haystack on a commercial codebase, and I encounter a bug that triggers on that codebase, and want to use the Haystack source code to understand what's going on to further my commercial purpose, would that be an unlicensed use of the source code?

Now, make no mistake - this is in no ways worse than the prior status quo of Haystack being closed-source. And I think you as a company should focus on building, with the certainty and comfort that this license, if anything, does err on the side of being restrictive. But some users, given this license, will be uncomfortable referring to the repository at all. I'll be one of those, but will still be excited to experiment with Haystack as a binary distribution nonetheless!

(Not a lawyer, this is not legal advice!)

gavmor
> Haystack takes care of the tedious confusing parts of coding

Tedious, yes, but confusing? Yikes!

My job as a coder is to resolve ambiguity favorably. Every day, I strive to leave the world less confusing than I found it. I would no more rely on an IDE to "take care" of confusion than I would outsource my firm's core competencies.

But the main conceit is cool, and I'm sure the dependency graph is helpful. I'm just picking nits with marketing copy. Can't wait to check it out! (Although my first instinct is to check for a canvas plugin for VScode).

Edit: I should say that I think this UI paradigm will fundamentally improve coder understanding by exploiting our visual cortex and "sixth sense" of proprioception, at least as far as I understand it via Supersizing the Mind (Andy Clark, 2008).

Nidhug
This seems great! Wondering how it handles files being used in a lot of places (I am thinking hundred of usages) ?
waingake
Is there a way to move the canvas via mac track pad which works the same way the middle mouse button does? I.e. always drags even if I'm looking at an editor
joshdavham
> we're going to eventually monetize

How do you plan on monetizing?

sohzm
hey love the concept (though Im not sure if its for me).

btw you should add a (small) gif or video in the github readme cuz that makes it really clear of what exactly its about.

bhy
This looks quite useful! However could Haystack be made an VSCode extension instead of a fork? So I could use this in Cursor, which is also a VSCode fork.
drawnwren
Is this just a pretty picture of the AST that I"m already navigating with go-to definition, fuzzy search, and harpoon in 2024?
ElFitz
Oh. That would be fun on the Vision Pro.

Don’t know wether or not it would be productive, that remains to be seen, but it certainly would be fun.

ivanjermakov
Interesting, for me this is exactly the opposite of efficient code navigation.

LSP + keyboard-driven interface is miles ahead in terms of efficiency and speed.

I respect the effort of breaking into less researched lands though. Congrats on the launch, I'm sure some will find this tool useful.

haolez
If this is supposed to be a next step from text files, what would be the previous step? Forth blocks? :)
t-writescode
So where does paying for it come in? This needs to make money in some way, right?
TheBengaluruGuy
interesting -- i recently another startup trying to play around in this area https://metz.sh/
cedws
Reminds me of Ted Nelson’s Xanadu. Was that an inspiration at all?
chirau
Is this a YC backed company?
bitbasher
A gulpfile... has been while since I've seen one of those.
MaggieL
Looks interesting, but the license is a show-stopper for me. I can't expose my employer to that kind of risk. I poured a lot of time and effort into learning Akka and has to throw it all away.
aappleby
What happens when I have 10,000 or so editors open at once?
calderwoodra
If you structure your directories sensibly, you can get the same effect/value prop in every IDE and dev env.

Or is there a deeper experience/knowledge that gets unlocked coding in this paradigm?

fogx
seems like a neat idea, but how does this 10x my dev performance?
jderick
It doesn't make sense unless zooming out shows some higher level representation of the code.
bofadeez
VirusTotal detects malware on windows version "Bkav Pro W32.AIDetectMalware" (alert)
Tepix
Did you really have to pick the same name as the Haystack open source AI framework? https://haystack.deepset.ai/ https://github.com/deepset-ai/haystack

It's a very active project and it's confusing to have two projects with the same name. Besides, I don't understand why you'd give a "2D digital whiteboard that automatically draws connections between code as you navigate and edit files" the name haystack.

rrr_oh_man
This is so. fucking. sexy.

Wow.

Thank you for sharing your work.

Please don't go down the GenAI bullshit bingo VC route.

ksksksko
Winsnw