alexslade

alexslade

Tidewave + Linear + Hosting

This is a post for @josevalim and Dashbit and all the others involved in Tidewave. (I’m sorry for not knowing you all and giving due credit!)

I was about to write an email to José with details of how our team is using AI tools, and Fidewave, and then I thought this was probably useful to a wider audience so I’m posting it here instead.

Context

Tidewave is really very cool. It works MUCH better than other code-only tools we’ve tried (cursor, claude code) for complex tasks. But I wanted to share our use case, and Tidewave’s shortcomings, in case that’s helpful to the creators. (and in the hope that our “perfect” workflow becomes available to us)

  • I work in a small, remote team that’s prototyping and testing new features and products inside a larger established product. This means we’re currently doing a lot of UX prototyping, trying out new concepts, etc. We expect this to continue for a long time, our roadmap over the next year or two is full of experiments and improvements on the main product.
  • LLMs are proving really helpful for early prototying and exploration. We’re 3 senior devs, and a senior designer, and it speeds us up. (We’re not using this to vibe-code production features, we move carefully on prod features. This post is about how we rapidly iterate on new ideas and experimental stuff).
  • We use AI for 3 main reasons:
    1. Prototype a small feature, so the dev can work out higher level ideas while the AI tries out code implementations. Cursor with the faster models (claude generally, with sonnet 4.5 being our favourite at the moment) works well for this. But cursor gets stuck on bigger things, so this is only ever useful when “pairing” with the AI, and so we’re limited to 1 feature at a time per dev.
    2. Prototype a big feature. Tidewave is amazing. The UI interaction it can do unlocks a whole higher level of abliity. I’ve been able to give it complex tasks (e.g. implement new flow that needed a nested liveview and error handling) and come back to a working prototype.
    3. Fixing tiny little things that don’t need much thought, but currently require a dev. E.g. “rename this button”, “change this link to a different destination”, “split this options list into 3 buttons’“.
  • We use Linear, heavily, to track our work and discuss things. We live in Linear, it’s 80% of our work communication (apart from pairing calls).

Right now we have a model where 1 developer can explore 1 idea at a time, and maybe has AI to help speed them up. This works if that developer is prototyping some moderately complex feature and wants to see various versions, or wants to work on UX design while the AI tries to implement, etc.

But there’s still overheads, there are still manual admin tasks that the dev/designer doesn’t really care about. And we’re still limited to involving a developer for every task.

I’ve been trying out various agents that integrate with linear.

We have a big list of minor, easy changes, often initiated by non-developers, that need to get picked up and implemented at some point. An AI agent should be perfectly capable of solving these, freeing us up for more interesting problems.

My problem with existing agents

  1. Poor DX
  2. Worrying execution model / supply chain safety / where they run
  3. Friction

In terms of threat modelling, we currently “trust” Claude with our code (and OpenAI). We won’t use other providers yet (e.g. grok/x doesn’t inspire confidence regarding leaks or other issues). We trust Github and Depot with build environments.

I don’t want to use agent-of-the-week startup to host all our code, run execution environments, potentially have dev secrets, etc. And I don’t want to give up control over which LLMs to use. I do not want to pay a fixed fee for an agent where they try to save costs by sometimes sending our code to a cheaper provider like Grok.

Tidewave works great for this reason - it’s local, it uses Claude API directly. But it doesn’t integrate with Linear, it needs a human to start every task and wait for it to finish.

I really like atcyrus.com for this, they have a linear agent but the AI runs on my local machine using my claude API keys. It uses worktrees to do stuff in parallel, and pushes a PR at the end. But Cyrus is limited by Claude, in the same way as using it directly.

What my team would gladly pay for

I would pay good money for this:

  • Tidewave
  • Running in a trusted environment (we use Depot for builds who are exploring agent environments, I would also accept Github, or local machine we own)
  • Integrated as a Linear agent
  • That exposes a local testing URL so we can jump in and “pair” with tidewave on the feature
  • That can be run on many different tasks in parallel, one per Linear ticket

That’s it. Thanks for reading, apologies for the length.

Where Next?

Popular in Discussions Top

adamu
When starting a new project, do you have any go-to libraries you pull in out of habit/preference? For example, Ash, Credo, Mox, ExMachin...
New
AstonJ
Inspired by @dogweather’s thread about Active Record Doctor, have you seen any impressive or cool things in other non-BEAM languages or f...
New
garrison
The Elixir ecosystem is one of our biggest strengths, and the BEAM really lends itself to native implementations (e.g. Cachex over Redis,...
New
New
tristan
First announced on the Erlang Forum, BEAMup is a tool for installing a managing the active instance of BEAM languages. It has support for...
New
bartblast
Hologram provides a way to write your entire web application in Elixir, with automatic transpilation to JavaScript for the frontend. It h...
New
yolo007wizard
I’ve been reading up on Firefly and it looks very impressive. Does this mean faster CPU bound Elixir? i.e. ballpark java speeds? Or at le...
New
sergio
Laravel just announced their Series A round for $57 million. If Laravel wasn’t already the defacto PHP stack, it now most certainly is. T...
New
gushonorato
Hey everyone, I’ve been working with Elixir for over 5 years and I’m a big enthusiast of the language. However, when starting new projec...
New
isaacsanders
When I try to run my applications and I haven’t updated the dependencies, the output tells me to run mix deps.get. Why doesn’t the binar...
New

Other popular topics Top

sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
myronmarston
The Elixir Typespec docs show the following syntax for keyword lists in typespecs: # ... | [key: type] # keyword lis...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
magnetic
Hey :wave:t3: Elixir community, I’ve been learning Elixir, and working on some side projects. My editor of choice is VSCode, and althoug...
New

We're in Beta

About us Mission Statement