HNHacker News
TopNewBestAskShowJobs

barrell

1,225 karma · joined January 30, 2022

hackers@phrasing.app | twitter.com/barrelltech
submissionscomments
barrell··on State-based vs Signal-based rendering
I’ve been a ClojureScript developer for many years, and we (as a community) have had the pleasure of the reagent library. From the early days of react, it was basically a signals-like library with an ergonomic api. Signals are almost a requirement in ClojureScript, assume you want to do any sort of REPL-based workflows.

In the time that I’ve been using ClojureScript, the whole react community has switched to hooks. I find it so baffling - requiring your entire data structure to be contained within your component lifecycle? The thousands of calls to individual “useState” to track the same number of state items? The fact that every function is closing over historical state unless you manually tell it to change every time the variable does — and then this last bit in combination with non-linear deep equality comparisons?

I recently have been in the process of switching phrasing.app from reagent atoms to preact/signals for performance reasons (and as part of a longer horizon move from react to preact) and I have to say it’s been fantastic. Maybe 50 lines of code to replicate reagent atoms with preact/signals, all the benefits, and much much faster.

Very happy that there is react-like library so devoted to first class support of signals.

barrell··on AGI is not imminent, and LLMs are not the royal road to getting there
I’m not convinced the current capabilities have impacted all that many people. I think the economy is much more responsible for the lack of jobs than “replacement with AI”, and most businesses have not seen returns on AI.

There is a tiny, tiny, tiny fraction of people who I would believe have been seriously impacted by AI.

Most regular people couldn’t care less about it, and the only regular people I know who do care are the ones actively boycotting it.

barrell··on Elixir 1.19
I have the opposite experience. Even in production builds, I get Elixir stacktraces, and they're exceptionally helpful. Macros only save me time and LoC, I think maybe once I've struggled with a macro-caused issue (and it was immediately apparent that macros were the issue).

ExUnit has been hands down the most impressive testing library I've ever worked with, and the debugging, profiling, analytics, introspection, observability, etc of the BEAM is unbeatable.

Documentation of elixir, elixir deps, and elixir code is also far and above any language I've ever seen.

And the struggles I had supporting minimal concurrency in python were completely alleviated - so even if you don't need massive concurrency, elixir has a good chance of massively simplifying anything that needs minimal concurrency (which is probably most web related projects).

barrell··on Elixir 1.19
I would not entirely compare it to TypeScript. Due to pattern matching, legacy elixir will probably come out roughly 50% typed (extrapolating from my own usage, I'm not sure the accuracy of this number). Then since vanilla elixir is getting types (not a separate TypeElixir) I would venture anything actively maintained will get typed relatively quickly.

I personally do not like type systems, and still code in JS, not TS. Any JS artifacts I produce are untyped. Yet even my Elixir-code is nearly type ready.

So while TS is fighting an uphill battle, I think Elixir is working downhill.

barrell··on OpenAI Apps SDK: The New Browser Moment
I get very tired of comparing every thing OpenAI does or says to all of these historic tech moments as if they’re remotely comparable

- Sam Altman gets fired, Steve Jobs moment

- Custom GPTs, App Store moment

- Says “hardware”, iPhone moment

- Apps SDK, browser moment

To me it comes across as forcing the idea that there is progress, and it cheapens these historical events when OpenAI inevitably drops the ball.

If it’s that revolutionary, the tech should stand on its own two feet. I don’t think browsers needed to compare themselves to “the terminal moment” — they were just useful and did their own thing. The original LLM boom wasn’t an “amazon moment,” it was just people using the product a bunch

barrell··on Ask HN: Who is hiring? (October 2025)
Phrasing.app | Co-founder | EU Remote | Elixir | Clojure

Phrasing is a language learning app built by a polyglot, for polyglots. It was designed to be language agnostic, and currently fully supports over 80 languages. It brings a beautiful, simple, and addictive [1] learning experience to languages big and small, and helps users learn 2-10x more in the same amount of time [2].

The tech stack is a ClojureScript PWA on the front end, and an Elixir umbrella application on the backend. The data processing happens in Broadway pipelines, and are horizontally scalable with FLAME. All of the data is stored in Postgres, and most of the communication between the client and server happens with a custom local-second sync engine à la Linear.app.

The company is bootstrapped and bespoke. There’s no investors, there’s no AI generated code, no shadcdn UIs. I miss the days of the early internet, and acutely feel the mass enshittification of the web. I’m really trying to do something different with the experience as well as the business, all in hopes to bring back a little bit of that wonder that was so prevalent in the days of the early internet.

The app is all working, the experience is great, and the onboarding was just finished. I’ve been using the app now to successfully learn 18 languages [3] and it’s truly a joy to use. Just finishing up the new site [4] after feedback from our last launch and getting ready for more launches [5]. The new video has been getting some pretty rave reviews and is a good gentle introduction to the app [6]

For me, this app is a dream app. This tech stack is a dream tech stack. This company is a dream company. It’s hard to believe I’m the only one these would all be true for.

I’m looking for someone who believes in the product, mission [6], and tech to come in and help me turn this functioning application into something truly great. No experience is required — just a dedication for your craft, and the willingness to take a chance in something you believe in.

If you feel that this post was written for you, please write me a well written personalized CV to hn at phrasing dot app. Low effort applications will not receive a response regardless of your CV.

[1]: https://phrasing.app/blog/humane-srs [2]: https://phrasing.app/blog/10x [3]: https://phrasing.app/blog/language-log-000 [4]: https://phrasing.app/next [5]: https://vimeo.com/1123956044 [6]: https://phrasing.app/blog/mission

barrell··on Thoughts on Mechanical Keyboards and the ZSA Moonlander
Not op, but had a very similar story. Got crippling RSI to welcome me into my 30s. Couldn’t work for several months and ended up getting a Glove80 because I needed to make a living.

This definitely does not describe me. I typed around 100wpm, sometimes quite loud, often times quite a button mash, and frequently not lifting my fingers quickly after each press. Didn’t have any notion of “correct” typing

barrell··on Ask HN: What are you working on (September 2025)?
Been working on https://phrasing.app for about 18 months now. I wanted a way where I could learn a maintain multiple languages, all in one place.

I wanted the power of spaced repetition, the frictionless experience of social media, and the joy of a beautifully designed application.

It’s built and I’ve been using it daily for about 8 months now, and lately it’s been working remarkably well. I’m learning several languages, and dabbling in even more, all in just an hour a day.

Now I just have to get all the marketing assets up and marketing it. Working on a new landing page at https://phrasing.app/next — not at all ready to be shared but the question is what am I working on!

barrell··on Grok 4 Fast
I would guess that it is essentially just a “grok 4 mini”, but if you use mini as the qualifier then most people will be inclined not to use it. If you call it fast then it gives people a reason to select it.
barrell··on Ask HN: Is anyone else sick of AI splattered code
I have never met an engineer whose abilities were limited by their typing speed. Most engineers can already type far faster than they can critically think/store memories
barrell··on Ask HN: Is anyone else sick of AI splattered code
To be honest, I’m more inclined to attribute the rampant use of LLMs just to the dopaminergic effect of using them. It feels productive. It feels futuristic. It feels like an unlock. Quite viscerally. It doesn’t really matter your seniority or skill level, you feel can do whatever is within your wheelhouse, and more, faster.

Like most dopaminergic activities though you end up chasing that original rush, and eventually quit when you can’t replicate it and/or realize it is a poor substitute for the real thing, and likely stunting your growth

barrell··on Ask HN: Is anyone else sick of AI splattered code
I'm not convinced it's what the future holds for three main reasons:

1. I was a pretty early adopter of LLMs for coding. It got to the point where most of my code was written by an LLM. Eventually this tapered off week by week to the level it is now... which is literally 0. It's more effort to explain a problem to an LLM than it is to just think it through. I can't imagine I'm that special, just a year ahead of the curve.

2. The maintenance burden of code that has no real author is felt months/years after the code in written. Organizations then react a few months/years after that.

3. The quality is not getting better (see gpt 5) and the cost is not going down (see Claude Code, cursor, etc). Eventually the bills will come due and at the very least that will reduce the amount of code generated by an LLM.

I very easily could be wrong, but I think there is hope and if anyone tells me "it's the future" I just hear "it's the present". No one knows what the future holds.

I'm looking for another technical co-founder (in addition to me) to come work on fun hard problems in a hand written Elixir codebase (frontend is clojurescript because <3 functional programming), if anyone is looking for a non-LLM-coded product! https://phrasing.app

barrell··on Le Chat: Custom MCP Connectors, Memories
The onboarding flow is already updated with better examples. It’s been my main task this past week — it still needs quite a bit of QA, but it’s been better than the previous flow, so I decided to ship it early. Any bugs will get ironed out in the next day or two. There’s now pretty clear examples of everything

My main task this week (besides QAing the new setup flow) is updating examples on the home page and in the blog. It’s all a one person show, so things move a little slowly, but I’m working as fast as I can :)

The paid trial gets you credits at cost — Phrasing is bootstrapped by me, and there’s no way I can afford a $4 loss leader for everyone who signs up. I would have to 100x the subscription prices (or more) in order to afford that.

There is a way to use the new setup process to “try” the application without spending money, but that’s not an avenue I want to intentionally funnel users through, so you won’t see any copy around it. Feel free to get in touch via the app though if you need more details.

I have plans for a free trial eventually, but its blocked by a few key product developments, so it will be a year at least before that’s an option!

barrell··on Le Chat: Custom MCP Connectors, Memories
Nooo you are definitely not alone. gpt-5-nano even is slowest model I’ve used since like 2023, second only to gpt-5-mini
barrell··on Atlassian is acquiring The Browser Company
IIRC growth wasn’t flattening, it was growing pretty fast, basically hockey stick. It just wasn’t hockey stick enough to get to a billion users quickly.

At least, that was their justification publicly, maybe the real numbers were less optimistic

barrell··on Le Chat: Custom MCP Connectors, Memories
Ah yeah. I’m only grading it on its prose, formatting, ability to interpret data, and instruction following. I do not use it as a store of knowledge
barrell··on Le Chat: Custom MCP Connectors, Memories
Here is an example of the formatting I desired: https://x.com/barrelltech/status/1963684443006066772?s=46&t=...

Yes I use(d) structured output. I gave it very specific instructions and data for every paragraph, and asked it to generate paragraphs for each one using this specific format. For the formatting, I have a large portion of the system prompt detailing it exactly, with dozens of examples.

gpt-5-mini would normally use this formatting maybe once, and then just kinda do whatever it wanted for the rest of the time. It also would freestyle and put all sorts of things in the various bold and italic sections (using the language name instead of the translation was one of its favorites) that I’ve never seen mistral do in the thousands of paragraphs I’ve read. It also would fail in some other truly spectacular ways, but to go into all of them would just be bashing on gpt-5-mini.

Switched it over to mistral, and with a bit of tweaking, it’s nearly perfect (as perfect as I would expect from an LLM, which is only really 90% sufficient XD)

barrell··on Le Chat: Custom MCP Connectors, Memories
https://phrasing.app

I’m making an app to learn multiple languages. This portion of the pipeline is about explaining everything I can determine about a work in a sentence in specifically formatted prose.

Example: https://x.com/barrelltech/status/1963684443006066772?s=46&t=...

barrell··on Le Chat: Custom MCP Connectors, Memories
I did not! It’s not on azure yet and I’ve still got some credits to burn. That’s exciting though, hopefully it will iron out this weird ghost character issue.
barrell··on Le Chat: Custom MCP Connectors, Memories
Thanks for the kind words! You can find me at https://reddit.com/u/phrasingapp and https://x.com/barrelltech

I don’t write much about elixir (or clojure) as I’m terrible at technical writing, but I am a die hard fan of both languages

barrell··on Le Chat: Custom MCP Connectors, Memories
I provide it with data and ask it to convert it to prose in specific formats.

Mistral medium is ranked #8 on lmsys arena IIRC, so it’s probably just not your style?

I’m also comparing this to gpt-5-mini, not the big boy

barrell··on Le Chat: Custom MCP Connectors, Memories
I’m curious too. I’m building https://phrasing.app. A quick glance at my profile should be enough to disprove the claim that I work for mistral.

I have no affiliation with mistral, I just have recent experience with them and wanted to share

Also @mistral hmu if you want to arrange something!

barrell··on Le Chat: Custom MCP Connectors, Memories
Yeah, that’s infuriating. They’re getting better now with structured data, but it’s going to be a never ending battle getting reliable data structures from an LLM.

This is maybe more maybe less insidious. It will literally just insert a random character into the middle of a word.

I work with an app that supports 120+ languages though. I give the LLM translations, transliterations, grammar features etc and ask it to explain it in plain English. So it’s constantly switching between multiple real, and sometimes fake (transliterations) languages. I don’t think most users would experience this

barrell··on Le Chat: Custom MCP Connectors, Memories
It’s user facing, so will just have an option for users to regenerate the explanation. It happens rarely enough that it’s not a huge issue, and normally doesn’t effect content (I think once I saw it go a little wonky and end the sentence with a few random words). Just sometimes switches to mono space font in the middle of a paragraph, or it “spells” a word wrong (spell is in quotes because it will spell `chien` as `chi§en`).

It’s pretty rare though. Really solid model, just a few quirks

barrell··on Le Chat: Custom MCP Connectors, Memories
I recently upgraded a large portion of my pipeline from gpt-4.1-mini to gpt-5-mini. The performance was horrible - after some research I decided to move everything to mistral-medium-0525.

Same price, but dramatically better results, way more reliable, and 10x faster. The only downside is when it does fail, it seems to fail much harder. Where gpt-5-mini would disregard the formatting in the prompt 70% of the time, mistral-medium follows it 99% of the time, but the other 1% of the time inserts random characters (for whatever reason, normally backticks... which then causes it's own formatting issues).

Still, very happy with Mistral so far!

barrell··on ReMarkable Paper Pro Move
+2 to supernotes ratta. Amazing product, amazing company
barrell··on Ask HN: Who is hiring? (September 2025)
Phrasing | https://phrasing.app | EU Remote | Co-founder

Phrasing is the best way to learn and maintain multiple languages [1]. With support for over 120 languages, science-based methodologies, and a beautiful custom built UI, Phrasing make’s it easier than ever to learn a language… or 10.

Phrasing is built with Elixir on the backend (lots of Broadway, FLAME, Nx and Scholar) with a ClojureScript front end. Everything is stored in a single Postgres database hosted with neon. I’m moving some code to a commons library, with the end goal of using Clojure as an isomorphic solution to run the same code on web, server, and mobile (<1% of the codebase, just the critical logic). The front-end is moving from Reagent+React to HSX+Preact+Preact Signals, although that’s going to be a long and slow migration.

Phrasing is my attempt to do something different [2], from both a product and a business perspective. No investments, no hyper scaling, no growth hacking — just tripling down on building the most effective application to learn a language.

Phrasing is launched, live, has some DAUs and MRR. However, long ago I’ve reached the limit of what one developer can do. I’m looking for someone to

  - come on board and take over the entire Elixir codebase
  - watch the Broadway Pipelines, and not sleep if there are any failing checkpoints 
  - optimize request times, reduce database pressure, and speed up extraction times
  - work with me to restructure things to reduce costs/complexity
  - work towards training novel embedding spaces, custom classic ML/NLP models, and long term algorithmic improvements to the SRS [3]
  - see this as a fun challenge, and have enough ownership of the product that I can focus on some user facing developments [4]
Please note, I’m not looking to hire an engineer to work a 9-5, and I am in no hurry to hire someone soon. I’m looking for a co-founder to come on board, take ownership and accelerate the product. The product is built, working, and growing organically. While there is some MRR, the position will be rev-share & equity focused until the business produces enough for full salaries.

To apply, please send an introduction hn at phrasing dot app. I will not be interviewing until the 12th of September, and no priority will be given to earlier or later applicants, so there is no rush. A sincere, well-written introduction is your best way to get an interview. No experience is required for this role, so long as you’re competent and hungry.

[1] https://phrasing.app/blog/multiple-languages [2] https://phrasing.app/blog/mission [3] https://phrasing.app/blog/humane-srs [4] https://phrasing.app/blog/a-dream-of-three-vector-spaces [5] https://x.com/barrelltech [6] https://reddit.com/u/phrasingapp

barrell··on Anna's Archive: An Update from the Team
Yep blocked by Ziggo in NL as well
barrell··on OpenAI Progress
Nah that rings a bell. 4o for me was the beginning of the end - a lot faster, but very useless for my purposes [1][2]. 4 was a very rocky model even before 4o, but shortly after the 4o launch it updated to be so much worse, and I cancelled my subscription.

[1] I’m not saying it was a useless model for everyone, just for me.

[2] I primarily used LLMs as divergent thinking machines for programming. In my experience, they all start out great at this, then eventually get overtrained and are terrible at this. Grok 3 when it came out had this same magic; it’s long gone now.

barrell··on AI is different
Yes but almost definitionally that is everyone who did not find value from LLMs. If you don’t find value from LLMs, you’re not going to use them all the time.

The only people you’re excluding are the people who are forced to use it, and the random sampling of people who happened to try it recently.

So it may have been accidental or indirectly, but yes, no true Scotsman would apply to your statement.

← PreviousPage 6 of 17Next →