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

jdumont
I could write forever about this, but I’ll do my best to keep it succinct. For anyone familiar with event sourcing, what is your opinion...
New
krainboltgreene
Today I noticed that when defining a embeds_many the new struct has a default of [] which is confusing since: You can have jsonb[] colu...
New
neilberkman
Carson Katri from DockYard posted today about swift-erlang-actor-system, which enables Swift programs to join Erlang clusters as distribu...
New
hauleth
Maybe some of you know that there was (is?) something like BERT-RPC which in short is simplified version of External Term Format (also kn...
New
lichuan
Hi, I’ve created a new repository on GitHub to compare the fairness and real-time performance of schedulers in Erlang and Go. Feel free t...
New
wanton7
Our company has used virtual actor framework called Orleans that is for C#/.Net Framework. There are clones of it in Erlang GitHub - erle...
New
AstonJ
Bart’s talk about Hologram got me wondering what kind of apps or components people are thinking about building (or think could be built) ...
New
axelson
Hi there! :wave: @frigidcode and I (but mostly him) have been running an Elixir Book club, we’re almost done with Designing Elixir Syste...
New
karlosmid
The |> operator appears in many languages, mostly in the functional world. F# has essentially the exact same operator, as does OCaml. ...
New
AstonJ
Posting this as a separate thread as I’m sure lots of people will be curious - what will the (or the intended) differences be and when mi...
New

Other popular topics Top

chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30048 115
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers' Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New

We're in Beta

About us Mission Statement