Hacker News new | threads | past | comments | ask | show | jobs | submit vertis (3182) | logout
Launch HN: Glide (YC W24) – AI-assisted technical design docs
86 points by robmck 5 hours ago | flag | hide | past | favorite | 35 comments
Hi everyone! We're building an AI-enabled editor (https://glide.agenticlabs.com) that helps developers write technical design docs faster. It’s like an IDE with Copilot, but instead of directly editing your code, it helps you come up with a solid plan before implementing a change. There’s a basic demo here (https://youtu.be/5uEapdT6nYE), and we also recorded a session with one of our early users running through an unusual task (calling a Fortran algorithm from Go, https://youtu.be/ppluB0Z1OIA)

Why use design docs? Mainly because on complex software projects, if you don’t have a careful strategy, a few lines of code can lead to a ripple effect across the whole codebase. You're working on a small new feature and suddenly, your PR is touching dozens of different files in a handful of directories, and you may be questioning if it still makes sense at all.

Laying out your approach in a technical design document helps to avoid these situations, so tech companies often embed this practice in their engineering culture. Unfortunately, producing these write-ups is a manual and time-consuming process that keeps you switching between typing in Confluence, searching on GitHub, and drawing on a whiteboard.

For example, one of our early users is building a RAG (Retrieval Augmented Generation) system in Rust, and needs to rewrite their original chunking algorithm that was created in Python. A change like that involves not only porting the chunking logic but also defining new structs, choosing the Rust libraries for text parsing, re-integrating with the Rust server, and changing the endpoint on the front end. Simple-sounding changes like these can end up with many "tentacles" devs have to work through. Our product helps teams like this spec out their approach more quickly.

The need for this hit us when we were working on a product using LLMs to turn tickets into PRs. You can just assign a ticket to GPT-4 and review the PR, right? Turns out that most people (including us) don’t write very complete or specific tickets on the first pass, and when they do, that ends up being more effort than just doing the whole thing yourself.

What was missing was a fast way to iterate on goals, requirements, and implementation plans for code that could then be useful to developers (whether AI assisted or not) to implement with high confidence. Our editor, Glide, splits this process into the following stages and lets you spend as much or as little time on each stage as makes sense.

(1) We index your project code with Tree-Sitter and make it searchable, so you can add relevant parts of the codebase to the task context.

(2) AI writes the first pass for a high-level solution outline given the code and the goal. It will try to point out missing details or ambiguities about the task so far.

(3) As a developer you can easily edit the generated content—tweaks like “change step 3” or “remove the part about caching” don’t require additional back-and-forth conversation.

(4) The next stage is a step-by-step plan—a pseudocode-level guide for how to complete the change. AI generates this, and again you can make adjustments in-line as needed.

(5) There is a chat mode for deeper discussions about the content—just highlight any text and click chat. This works well for exploring alternatives, getting more specific on a particular point, or understanding why the AI wrote what it did.

(6) Once the plan looks good, you can have AI generate code edits for each step. You’re free to make additional changes here or just open the markdown doc with code edits in your local VSCode via an extension, so you have it as a reference while you implement.

This looks a lot like collaborative Chain of Thought, explicitly writing out each step in a line of reasoning, for both the developer and the LLM. Breaking down a high-level task with AI this way can work well for building consensus on the desired end state of your change.

We plan to charge companies per seat, but today, it’s free for individual use as we get more feedback on the product. One future area we’re excited for is multiplayer mode—where a few developers can share, edit, and leave comments on the generated docs in a shared workspace. If you have ideas for this experience, we’d love to hear them.

We would love for you to give it a try at https://glide.agenticlabs.com/ and tell us what you think! We’re excited to discuss this with any comments you have!

P.S. We only keep the indexed code in an in-memory cache while you’re using it. We don’t store your code or use it as training data!






Some initial thoughts:

- It would be significantly more helpful if it could ingest my database schema.

- Why make me manually pick files instead of indexing them all and doing some RAG magic?

- Having used ChatGPT for similar tasks, I'm skeptical that step 2 you have, where it generates a high-level solution, will work all that well. Right now, LLMs work best for me when I'm giving them much more specific tasks and keeping the high-level plan in my head.

- This isn't really a technical design doc in the sense that I use the term? This might just be me using language incorrectly but I typically call a tech design doc a document that explains the inner workings of a system, normally with something like a UML or similar diagram. This just seems like todo list or subtask generation for writing a feature.

- Have you considered feeding the AST directly into the LLM? Honestly just curious how well it would understand the code if you did that vs. giving it the raw source.

Either way, congrats on the launch!


We'll queue up database schemas, good call.

On RAG, I have a lot of thoughts - it's my pet project to make it work really well. We started out down this road but in practice getting good results out of RAG has been shockingly hard on bigger, more complicated codebases. In many cases when we put this in front of devs that know their code, the RAG part has been a lossy approximation of what they already knew the relevant code to be, so they'd sit there and watch "is this thing going to find the code that I already know I need for this task"

I think the key here will be a robust, language-agnostic symbol graph that maps out high-resolution dependencies, so when you are retrieving `foo`, you can also efficiently retrieve the references to and from of `foo` to some depth (often greater than 1). Some languages have better tools for this kind of symbol resolution than others, but in many cases they're highly bespoke. Github's stack-graphs and Sourcegraph's SCIP are the best attempts I've seen at solving this in a generic way, but neither of them have gotten all the way there yet.

I've been half-seriously thinking about running neovim in headless mode and using it as an interface to all the LSP's for each language, and resolving all the edges of the symbol graph that way - I might still try it one of these days

On design doc convention - I think you're right, it's not completely 1-1 with the term today, and there's not a single definition that everyone agrees on. We're using it as the initial mental model of where we want to plug in, but there might be a better succinct way to describe it

Haven't tried the raw ast yet, curious how that goes


Thanks so much for the thoughts! Happy to respond.

-Schema: We agree. After seeing how many times it has asked to see the database schema when working on a task, that is definitely something we will be adding.

-Manual / RAG: We did some RAG magic in the first two iterations of our product and found it was really hard to get right when the task was not well defined and as the size of the codebase grew. We found that our users were watching it do the search for the files and basically saying, "Let's see if it finds the code file I already know we need." So, we decided to go manual so at least the user isn't unpleasantly surprised by the results while we determine the right path forward with RAG. Or maybe even combine both where the user gives an "entry point," and the AI figures out the rest of the files

-I think you're right to be skeptical. In our experience, the LLMs are really best at breaking down a task to be just one notch more specific. So, I think the output here wouldn't be the best for a more high-level task. Our plan to handle this is to allow plans to be solved recursively, where you continually create a tree of subtasks, and only when you get to a specific enough "leaf" do you actually go through with generating code.

-You're right; I think we used the term "technical design doc" more generally to steer people's thinking toward software design in English rather than code. I like that you mention diagrams, though, because we would love to incorporate diagrams into our documents as our tool and LLM's capabilities increase!

-This is a very interesting idea! We used a version of this (a select set of elements of the AST that we tried to rank in importance) in our initial RAG system to give the AI a "starting point" for the RAG code search. It worked pretty well. My concern would be that the quality of the search might then depend on the naming/structure of the code (I'm thinking some 1000-line mega functions or something)

Thanks so much for the thoughtful questions!

EDIT: I see Maks also responded and I think we both offer similar messaging with slightly different delivery :)


I really appreciate the approach of orienting this to be very much "AI-assisted" rather than "AI-driven". At no point in the process did it feel like the LLM entered a black box, did something, then made the walls transparent.

There's an incredible amount of promise in this UX. Excited to see it continue developing alongside the foundation models and new technique approaches.


Thanks for the feedback! We've really focused on keeping the engineer in control.

It looks great, and it's exactly the kind of thing I've been wanting

Iterating back and forth with GPT is cool at first, then it turns into a pain This is a lot better!

From seeing the demo, one thing I'd prefer, is if Glide would immediately generate everything, the thoughts, the plan and the code, together, then I can get a better overview and tweak where necessary

Keep up the great work!


Thanks so much for the positive feedback!

We've been thinking about ways to make the user experience more seamless, and I think what you suggest could be a good option. We just need OpenAI to give us more tokens/sec! So you're not watching code generate for 10 minutes before being able to do anything.


Wow this looks awesome!

> P.S. We only keep the indexed code in an in-memory cache while you’re using it. We don’t store your code or use it as training data!

Personally before using this on a work repo I'd like to get some more info on this to make sure nothing from the private repo will leak out.

Also I'm a bit worried about giving Glide the permission "Act on your behalf". Is there no more granular and less powerful permission you could ask for, i.e. read access only? It seems that only "pull request (coming soon...)" which hasn't been implemented needs "write access".


Happy to explain a bit more!

Here are the steps we go through:

- Checkout the code to a temporary directory (which is deleted when it goes out of scope in python, so at the end of the indexing API call)

- Use Tree Sitter to create an index of just your chosen "Directory to Index" and then store that in a Redis cache

- We clear the index from the Redis cache if you haven't used it in 2 hours.

I don't know why exactly it says the message to "Act on your behalf". I just double-checked in our app, and confirmed that these are the only permissions we get:

- Contents - Read-only

- Metadata - Read-only

- Email addresses - Read-only

We agree that we shouldn't take write access if we are not writing PRs. Hopefully that helps!


Thank you!

It does say which sounds really ominous: https://imgur.com/a/w8M0wcE

The link on the page points to https://docs.github.com/en/apps/using-github-apps/authorizin... which basically says the app can do whatever whenever.

I think if the wording was different I would be able to successfully pitch this to my work.


It's unfortunately terrible wording from GitHub for any app install: https://github.com/orgs/community/discussions/37117

Despite the scary warning, you're only granting the listed permissions.


What a terrible UX by Github.

> Despite the scary warning, you're only granting the listed permissions.

Is there a way for me to verify that that's the case? At least after granting the permissions?


Yes you can. If you click on your profile, and then Settings->Applications->Configure you can see the permissions

If you have it installed for an organization its slightly different. Go to the organization, then Settings->Github Apps->Configure.

For me at least, it lists the permissions the app has. Additionally, if we ever want to request new permissions in the future, you will have to grant them.


This is weird, and it does sound ominous. I went to double check the configuration!

On-prem is on our roadmap, we can definitely make that happen for you. We just went this route for now to make the app easily accessible to everyone


Act on your behalf is the correct access for GitHub.

I’ve seen several company’s receive the same complaint on HN…. GitHub should reword it or make it more clear in some way

You have to “act on their behalf “ in order to read private repos (potentially) only they have access to…


I'm a bit worried about exposing our codebase.

I wish this ran locally or was self-hosted.


+1 on this as well. We have an on-prem gitlab instance, so it needs to run locally to ingest source anyway.

We totally hear you and have been thinking through the best way to support this!

Question for you: would the app running locally be sufficient, or would the LLM also need to run on-premise?


Not OP but I would be happy with the app running locally and providing an enterprise OpenAI API key

This is a great piece of feedback, and getting just this to work would not be too difficult. Thanks so much!

Not person you responded to but for me it needs to be able to connect to ollama api.

+1 it's also a no go for most of my clients for whom data cannot even leave the country, let alone the European union.

I was initially confused because Glide is the name of a different YC company (from W19: https://www.ycombinator.com/companies/glide). But now I understand that Glide is the name of your product, but not company

Apologize for the confusion! Yes, the company is Agentic Labs (https://www.agenticlabs.com/), and our product is Glide.

Looks really interesting! Would love it to support Swift, it's very underserved with other AI code assistant tools currently.

We agree Swift would be awesome to support! We're looking into how to turn it on. The Tree Sitter parser for Swift is a bit tough to work with which is why we haven't implemented that yet.

Stay tuned!


Are you aware of the work on https://github.com/paul-gauthier/aider? What's your take on generating code diffs directly instead of code editing instructions?

Yes, I've seen aider and I think it's a super cool product!

We tried generating code diffs with our initial product. The issue we had was that when that diff started to grow, parsing it to determine whether it did the right thing became increasingly difficult.

We will generate code diffs in the future, but we're happy with generating the instructions for two main reasons:

-The LLMs seem to produce better output when you write out the intermediate steps

-The developer understands the thinking behind the code that was written. We feel that this is an important factor as the team size grows and developers have to interact more with each other's code


> but instead of directly editing your code, it helps you come up with a solid plan before implementing a change.

Is this similar to Devin that just launched today, except that Glide is less autonomous and gives you more control? How do you compare to them? https://twitter.com/cognition_labs/status/176754876313496400...


Great callout! I think it's similar, but our approach is a bit different from Devin's because we're currently focusing less on autonomy.

It looks like Devin chooses a plan and then writes and runs the code or uses the internet to get feedback on how to change the plan/code accordingly.

We focus on having the engineer work with the AI on the plan before writing the code, and the engineer is responsible for the final implementation.

We found that doing everything autonomously was awesome when it worked but frustrating when it didn't; so we wanted to make the UX interactive enough to be useful even if the AI gives some unexpected results. Does that help?


Makes sense, it will be intersting to see how the balance between control and autonomy will play out.

From Kapathy on Twitter:

> In my mind, automating software engineering will look similar to automating driving. E.g. in self-driving the progression of increasing autonomy and higher abstraction looks something like:

1. first the human performs all driving actions manually

2. then the AI helps keep the lane

3. then it slows for the car ahead

4. then it also does lane changes and takes forks

5. then it also stops at signs/lights and takes turns

6. eventually you take a feature complete solution and grind on the quality until you achieve full self-driving.

There is a progression of the AI doing more and the human doing less, but still providing oversight. In Software engineering, the progression is shaping up similar:

1. first the human writes the code manually

2. then GitHub Copilot autocompletes a few lines

3. then ChatGPT writes chunks of code

4. then you move to larger and larger code diffs (e.g. Cursor copilot++ style, nice demo here https://youtube.com/watch?v=Smklr44N8QU)

5.... Devin is an impressive demo of what perhaps follows next: coordinating a number of tools that a developer needs to string together to write code: a Terminal, a Browser, a Code editor, etc., and human oversight that moves to increasingly higher level of abstraction.


Building on the self-driving analogy - our goal is to create a good "GPS" interface where you can set your destination and chart a path you wanna take while driving. In that frame Copilot is like an advanced drive-by-sensors system that sees the road around you and suggests some turns you might wanna take based on the drive so far. What could make this really great is the ability to build up the big picture of the code change so the in-line suggestions are informed by the path ahead.

I love this anecdote because we've discussed following "Tesla's model" of autonomy, where they have incrementally delivered more complex driver-assist features.

It's very different from others like Waymo, who are going for more of an all-or-nothing approach.

Similarly, we hope to be useful early with fairly simple features so that we can get it into developers' hands to learn how to incrementally make the product better.


That feels like a much better approach compared to Devin. Autonomous agents are great for demos, not for products. Their demo smelled like smoke and mirrors.

I like Devin's take on rolling up more tools (terminal, editor, browser) in their interface.

We're thinking about this a lot, but our goal is to be very careful about adding complexity to the product (we failed at this in our other endeavors!)

Echoing Rob's sentiment on autonomy, we're more focused on tit-for-tat collaboration between the developer and AI as opposed to "set it and forget it" agent execution. I think both modes will have a role in the dev workflow of the future




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: