Remix.run Logo
arrowsmith 2 days ago

Ah man I'm really happy to see this and excited to try it out.

As an Elixir enthusiast I've been worried that Elixir would fall behind because the LLMs don't write it as well as they write bigger languages like Python/JS. So I'm really glad to see such active effort to rectify this problem.

We're in safe hands.

acedTrex 2 days ago | parent | next [-]

LLMs not writing it well might be the biggest current selling point of elixir lol.

matt_s 2 days ago | parent | next [-]

Selling point from a developer and career perspective for sure. Its also fun to program in and at least for me made me think about solutions differently.

Its a negative point for engineering leaders that are the decision makers on tech stacks as it relates to staffing needs. LLMs not writing it well, developers that know it typically needing higher compensation, a DIY approach to libraries when there aren't any or they were abandoned and haven't kept pace with deprecations/changes, etc.

In the problem space of needing a web framework to build a SaaS, to an engineering leader there are a lot of other better choices on tech stack that work organizationally better (i.e. not comparing tech itself or benchmarks, comparing staffing, ecosystem, etc.) to solve web SaaS business problems.

I don't know where I stand personally since I'm not at the decision maker level, just thought I'd point out the non-programmer thought process I've heard.

zupa-hu 2 days ago | parent | prev [-]

Oh lol I love that angle!

bad_haircut72 2 days ago | parent | prev | next [-]

This is such a weird meme, Claude crushes elixir especially a fullstack app in liveview

heeton 2 days ago | parent [-]

Yea CC is great with phoenix / liveview. It’s been doing things that teach me new tricks about elixir I didn’t know yet.

ferfumarma a day ago | parent [-]

What's a good place to start for a completely naive but interested user?

bluehatbrit 2 days ago | parent | prev | next [-]

This last few weeks I've been going hard on LLMs to put together a new prototype project. I've exclusively been using Claude Sonnet 3.7 within Zed (via github copilot) and it' fantastic.

From time to time it tries to do something a little old-school, but nothing significant really. It's very capable at spitting out entire new features, even in liveview.

Over all the experience has very productive, and at least on-par with my recent work on similar sized python and nextjs applications.

I think because I'm using mostly common and well understood packages it has a big leg up. I also made sure to initialise the phoenix project myself to start with so it didn't try to go off on some weird direction.

indigodaddy 2 days ago | parent [-]

Assuming you are on the $20 Zed plan? Has the 500 prompts/mo been sufficient for you? I'm debating between the Zed and Claude $20 plans-- no doubt I'd get better value from Zed's?

bluehatbrit 2 days ago | parent | next [-]

I'm on the free plan and have been using it via GitHub copilot instead, as the current project is a work one and they pay for that.

Before this I did a small project and I hit the 50 free tier limit through Zed by the time I was about 90% done. It was a small file drop app where internal users could create upload links, share them with people who could use them to upload a file. The internal user could then download that file. So it was very basic, but it churned out a reasonable UI and all the S3 compatible integration, etc.

I had to intervene a bit and obviously was reviewing everything and tweaking where needed. But I was surprised at how far I got on the 50 free prompts.

It's hard to know what you really get for that prompt limit though as I probably had a much higher number of actual prompts than they were registering. It's obviously using some token calculation under the hood and it's not clear what that is. All in all I probably had about 60-70 actual prompts I ran through it.

My gut says 500/mo would feel limited if I was going full "vibe" and having the LLM do basically everything for me every day. That said, this is the first LLM product I'm considering personally paying for. The integration with Zed is what wins for me over Claude, where you'd have to pay for API credits or use Claude Code. The way they highlight code changes and stuff really is nice.

Bit of a brain dump, sorry about that!

indigodaddy 2 days ago | parent [-]

Thanks, that gives me some new things to think about

jostylr a day ago | parent | prev [-]

I have used Zed's plane with Claude and also Claude Code. They are very different experiences. Zed's agent work is very much a set it, go away, review, give some tips to it, iterate. As long as you use the Sonnet and absolutely avoid the burn mode (formerly max mode), it should do a lot of work for you. The main limitation I hit is the context window. As the codebase gets larger, it takes more context for it to get going and then it tends to have a hard time finishing. I find that about 4 prompts works for a feature that would take me a few hours to code.

For Claude Code, the limit is reset every 5 hours so if you hit it, you rest a bit. Not that big a deal to me. But the way it works I find much more stressful. It is reviewing just about everything it is doing. It is step-by-step. Some of it you can just say Yes, do it without permission, but it likes to run shell commands and for obvious reasons arbitrary shell commands need your explicit Yes for each run. This is probably a great flow if you want a lot of control in what it is doing. And the ability to intercede and redirect it is great. But if you want more of a "I just want to get the result and minimize my time and effort" then Zed is probably better for that.

I am also experimenting with OpenAI's codex which is yet a different experience. There it runs on repos and pull requests. I have no idea what their rate/limit stuff will be. I have just started working with it.

Of the three, disregarding cost, I like Zed's experience the best. I also think they are the most transparent. Just make sure never to use the burn mode. That really burns through the credits very quickly for no real discernible reason. But I think it is also limited to either small codebases or prompts that limit what the agent is going through to get up to speed due to the context window being about 120k (it is not 200k as the view seems to suggest).

debian3 20 hours ago | parent | next [-]

Try claude --dangerously-skip-permissions

indigodaddy a day ago | parent | prev [-]

Helpful feedback, thank you!

mrcwinn 2 days ago | parent | prev | next [-]

Worried it might fall behind… further? I love LiveView, Phoenix, Elixir, OTP. But the ecosystem is a wasteland of abandoned packages.

If Phoenix.new helps solve that problem, I’m all for the effort. But otherwise, the sole focus of the community leaders of Elixir should be squarely and exactly focused on creating the incentives and dynamics to grow the base.

Compare, for example, Mastra in TypeScript or PydanticAI in Python. Elixir? Nothing.

Not here to bash. It’s more just a disappointment because otherwise I think nothing comes close.

uncircle 2 days ago | parent | next [-]

All languages are a wasteland of abandoned packages, i.e. there is a very long tail of stuff no one has maintained for years. It’s all relative to the mindshare. For its size, Elixir is doing quite well.

mrcwinn 2 days ago | parent | next [-]

It's not the long tail. It's that the HEAD of packages in Elixir are also often poorly maintained or not maintained. The fundamental question for any developer: can I be productive quickly? Despite all that Elixir has going for it, the answer is often "no."

Want a first-party client library for the service you're using? Typically the answer is "too bad, Elixir developer." And writing your own Finch or Req wrapper for their REST endpoint simply isn't a valid answer.

>For its size, Elixir is doing quite well.

I'm actually arguing the opposite. Elixir is not doing well because of its size. So how can that be influenced and changed?

prophesi 2 days ago | parent [-]

What packages in Elixir have you found unmaintained/missing in the ecosystem? Genuinely curious.

AlchemistCamp 2 days ago | parent | next [-]

Probably the highest profile and most consistent example would be Stripe. The most popular Stripe wrapper for Elixir’s docs point to a 2019 Stripe API version: https://github.com/beam-community/stripity-stripe

Worse still, the quality of Stripe’s own docs have really degraded this decade for anyone not using a language they have an SDK for. Most of their newer docs assume m have a drop-down toggle for on backend language with a few popular languages and no option for “other”. Example: https://docs.stripe.com/billing/quickstart

None of this is a fault of anyone working on Elixir or Phoenix but it definitely has an effect of discouraging some of the fledgling entrepreneur types who Elixir would otherwise be a near perfect fit for, as Rails was in the late aughts.

movedx01 a day ago | parent | prev [-]

anything OAuth

uncircle a day ago | parent [-]

There is an excellent (maintained, funded, audited AND with official certification) erlang/Elixir library for that: https://github.com/erlef/oidcc

I have just shipped a production service centered around OAuth and interfacing with OpenID Connect servers.

erichocean 2 days ago | parent | prev [-]

Most languages require maintenance.

Some languages—Clojure is a good example—have packages from 10 years ago, entirely unmaintained, that still work great because no maintenance is needed.

arrowsmith 2 days ago | parent | next [-]

This is also true for Elixir though. A lot of "unmaintained" Elixir packages still work fine.

sodapopcan 2 days ago | parent [-]

That's their point (I think, lol).

spiderice 2 days ago | parent | prev [-]

In my experience, Elixir is very much on that end of the spectrum as well. I'm wondering if GGP just considers packages that don't have updates for 6 months as "unmaintained" or "dead" because they come from Javascript world where everything is, well... you know.

21 hours ago | parent | next [-]
[deleted]
debo_ 2 days ago | parent | prev [-]

Broken and deprecated from inception?

mervz 2 days ago | parent | prev | next [-]

This is such a weird thing to say and I see it all of the time. It sucks people have been tricked into thinking a library must be updated every 2 weeks in order to still be relevant.

You think just because an author bumps the version number of a library it's somehow better than a library that is considered complete?

It boggles my mind that people actually think this way.

sodapopcan 21 hours ago | parent [-]

You must never have been a Ruby developer. “I notice this library hasn’t been updated in 8 days, is it still being maintained?”

conradfr 2 days ago | parent | prev [-]

Old packages usually still run great in Elixir though.

victorbjorklund 2 days ago | parent | prev | next [-]

I found them to be pretty solid for writing Elixir (not perfect but neither is it with JS) the last couple of months.

throwawaymaths 2 days ago | parent | prev | next [-]

in principle llms should do better on immutable languages since there is no risk a term will get modified by a distant function call.

bevr1337 2 days ago | parent [-]

In my experience, it's the functional part, not immutability, where they fall short. Any LLM can write immutable C# because it's easy and there's incredible amounts of training data.

throwawaymaths 2 days ago | parent [-]

good news, "immutable" is pretty much the only way that elixir is "functional" except for lambdas being first class datatypes (which is almost every language now)

nxobject 2 days ago | parent | prev | next [-]

Yeah – as someone who works in Common Lisp, I wish there was way to do complementary training for LLMs with existing corpora of codebases. Being able to read access documentation doesn't do much, unfortunately, to help with more general issues with correctness of output.

neya 2 days ago | parent | prev | next [-]

I use o3, it's really good with Elixir. I prefer it to Claude, but Claude does a decent job as well.

If you want to take your website and business down, use ChatGPT-4o's code

2 days ago | parent | prev | next [-]
[deleted]
pawelduda 2 days ago | parent | prev | next [-]

Claude 3.5 produces very good Elixir/Phoenix code. Haven't tried 3.7 much but I assume it's only going to get better from here

te_chris 2 days ago | parent | prev | next [-]

Claude and o3 are both excellent (if a bit erratic) elixir developers.

zorrolisto 2 days ago | parent | prev [-]

Same, I watched a video from Theo where he says Next.js and Python will be the best languages because LLMs know them well, but if the model can infer, it shouldn’t be a problem.

rramon 2 days ago | parent | next [-]

Folks on YouTube have used Claude Code and the new Tidewave.ai MCP (for Elixir and Rails) to vibe code a live polling app in Cursor without writing a line of code. The 2hr session is on YT.

rahimnathwani 2 days ago | parent [-]

This one?

https://www.youtube.com/live/V2b6QCPgFTk

rramon 2 days ago | parent [-]

That's the one.

sieabahlpark 2 days ago | parent | prev | next [-]

[dead]

dingnuts 2 days ago | parent | prev [-]

since models can't reason, as you just pointed out, and need examples to do anything, and the LLM companies are abusing everyone's websites with crawlers, why aren't we generating plausible looking but non working code for the crawlers to gobble, in order to poison them?

I mean seriously, fuck everything about how the data is gathered for these things, and everything that your comment implies about them.

The models cannot infer.

The upside of my salty attitude is that hordes of vibe coders are actively doing what I just suggested -- unknowingly.

fragmede 2 days ago | parent | next [-]

But the models can run tools, so wouldn't they just run the code, not get the expected output, and then exclude the bad code from their training data?

bee_rider 2 days ago | parent [-]

That seems like a feedback loop that’s unlikely to exist currently. I guess if intentionally plausible but bad data became a really serious problem, the loop could be created… maybe? Although it would be necessary to attribute a bit of code output back to the training data that lead to it.

Imustaskforhelp 2 days ago | parent | prev [-]

For what its worth, AI already has subpar data. Atleast this is what I've heard.

I am not sure, but the cat is out of the box. I don't think we can do anything at this point.