Vibe coding is all the rage these days. Everywhere you turn, we’re hearing about not just code editor tools that can help us write code faster, but tools that can build whole apps without any coding at all.  As a company that keeps the lights on by selling software, we’re alternately incredibly excited at the prospect of being able to build a lot of great stuff super fast and worried about the prospect of the AI generators just replacing us altogether. 

So we decided we’d better put our fingers to the keyboard, close our editors, and vibe code up a couple sites ourselves. 

Calculate Reading Time

Today, we’re happy to announce that we have built (mostly by vibe coding using Lovable) a tool to calculate reading time for a piece of text. 

Our reading time calculator is a little more awesome than the existing sites out there for a couple of reasons. First, it defaults to the average reading speed of a native English speaker, with special cutouts for the average silent and average spoken reading speed. 

Second, the reading time calculator automatically adjusts the average reading time based on the complexity of the text you pasted in. After all, it’s a lot easier to read 100 words of Spot Goes to the Zoo than it is to read 100 words of a pulmonary robotic surgery paper (thanks to the doctor who thinks one of his colleagues has my email address and keeps sending me these!)

There’s actually a robust way to scale that reading time based on formulas from this great paper where they did the hard work of giving participants tracts of varying complexity and measuring how long it took to read them. 

Check it out for yourself by copying and pasting the following two passages, and notice how the difficulty and time decrease for the second one.

Original, from Bleak House by Charles Dickens:

LONDON. Michaelmas term lately over, and the Lord Chancellor sitting in Lincoln’s Inn Hall. Implacable November weather. As much mud in the streets, as if the waters had but newly retired from the face of the earth, and it would not be wonderful to meet a Megalosaurus, forty feet long or so, waddling like an elephantine lizard up Holborn Hill. Smoke lowering down from chimney-pots, making a soft black drizzle with flakes of soot in it as big as full-grown snowflakes—gone into mourning, one might imagine, for the death of the sun. Dogs, undistinguishable in mire. Horses, scarcely better; splashed to their very blinkers. Foot passengers, jostling one another’s umbrellas, in a general infection of ill-temper, and losing their foot-hold at street-corners, where tens of thousands of other foot passengers have been slipping and sliding since the day broke (if this day ever broke), adding new deposits to the crust upon crust of mud, sticking at those points tenaciously to the pavement, and accumulating at compound interest.

Simplified version, reduced to a middle-school reading level with the help of AI:

LONDON. The fall court session has just ended, and the Lord Chancellor is at Lincoln’s Inn Hall. The weather is cold and miserable in November. The streets are so muddy it looks like a flood just went down, and you wouldn’t be surprised to see a giant dinosaur, forty feet long, lumbering up Holborn Hill. Smoke pours from chimneys, mixing with soot that falls like oversized black snowflakes, as if the sun had died. Dogs are covered in mud. Horses aren’t much better—splashed all the way to their eyes. People bump umbrellas, slip at the corners, and grow grumpy with each other. Thousands have already slid and stumbled across the same spots since morning (if you can even call it morning), leaving behind layer after layer of sticky mud that clings to the streets like glue, piling up more and more as the day goes on.

Vibe coding still isn’t quite coding

The sliders with cutouts were quite a challenge to vibe code, as Lovable kept trying to prevent the sliders from stopping at those values when we had the sliders snapping to multiples of five.

One of our engineers helpfully stepped in and suggested that we get rid of the snapping increments altogether. That was much quicker than trying to vibe code (or read and edit the somewhat-ghastly and very complex generated code) around it!

One other challenge – the vibe code kept updating the reading time estimate in multiple places based on the text complexity, resulting in incorrect outputs. For that one, we just gave up and had an engineer find the spot in the code and excise it. 

So I think our takeaway is that you can use vibe coding for stuff that doesn’t have to be precise or accurate. If you don’t really care exactly what happens under the hood and just want it to do something in a vague direction, it’s already there. But for important stuff where accuracy and correctness actually matters, you still need an engineer, and we’re still gonna have jobs, at least in the short term. 

Oh, and it took you, on average, three minutes and thirty seven seconds to read this blog post. We used the calculator. 😉