←back to thread

439 points david927 | 4 comments | | HN request time: 1.013s | source

What are you working on? Any new ideas which you're thinking about?
Show context
absoluteunit1 ◴[] No.44418988[source]
Building https://www.typequicker.com

Long-term, passion project of mine - I'm hoping to make this the best typing platform. Just launched the MVP last month.

The core idea of the app is focusing on using natural text. I don't think typing random words (like what some other apps do) is the most effective way to improve typing.

We offer many text topics to type (trivia, literature, etc) where you type text snippets. We offer drills (to help you nail down certain key sequences). We also offer:

- Real-time visual hand/keyboard guides (helps you to not look down at keyboard) - Extremely detailed stats on bigrams, trigrams, per-finger performance, etc. - SmartPractice mode using LLMs to create personalized exercises - Topic-based practice (coding, literature, etc.)

I started this out of passion for typing. I went from 40wpm to ~120wpm (wrote about it here if you're interested: https://www.typequicker.com/blog/learn-touch-typing) and it completely changed my perspective and career trajectory. I became a better programmer and writer because I no longer had to think about the keyboard, nor look down at it.

Currently, we're doing a lot of analysis work on character frequencies and using that to constantly improve the SmartPractice feature. Also, exploring various LLM output testing/observability tools to improve the text generation features.

Approaching this project with a freemium model (have paid AI powered features; using AI to generate text that targets user weakpoints) while everything else in the app is completely free. No ads, no trackers, etc. (Hoping to have sufficient paid users so that we can run the site and never have to even think about running ads).

I've received a lot of feedback and am always looking for ways to improve the site.

replies(6): >>44419061 #>>44419392 #>>44420907 #>>44426017 #>>44427084 #>>44427663 #
1. weepinbell ◴[] No.44426017[source]
This is very neat. One piece of feedback and a gripe I have with a lot of these is that missed or extra characters throw off the entire next sequence and essentially require backing up to deal with them, as opposed to wrong characters which are fine to just be mistakes you move on from. It'd be great to have some detection for when the user is continuing that re-aligns their string.
replies(1): >>44426921 #
2. absoluteunit1 ◴[] No.44426921[source]
Thank you :)

> One piece of feedback and a gripe I have with a lot of these is that missed or extra characters throw off the entire next sequence and essentially require backing up to deal with them, as opposed to wrong characters which are fine to just be mistakes you move on from. It'd be great to have some detection for when the user is continuing that re-aligns their string.

Thank you for the feedback! I’m not entirely sure I can visualize exactly what you mean by this:

> It'd be great to have some detection for when the user is continuing that re-aligns their string.

Could you give an example of this?

I curious because I’ve been exploring alternative and unique UI ideas for typing practice so this could lead me into a new direction

replies(1): >>44427582 #
3. weepinbell ◴[] No.44427582[source]
I pulled up the first text I found from the site:

> according to its archive...

Let's say I mistype and don't double the first "c", but otherwise type entirely correctly.

> acording to its archive...

This would be counted as having everything wrong except the first 2 characters, which doesn't feel like a good reflection of my accuracy.

I know this is a hard problem because I don't think there's any simple guaranteed way to re-align the string to account for a possible deletion or insertion, particularly if there are more mistakes in the following text, but finding and using some sort of accuracy-maximizing alignment would be great to have.

replies(1): >>44429071 #
4. absoluteunit1 ◴[] No.44429071{3}[source]
Oh I see what you meant!

Yes - this is a very, very good point and something I actually spent so much time analyzing how I could implement a solution to this.

I think I spent over a week at one point. I refer to this issue as an off-by one or off-by two inaccuracy. Just as in the example you provided, the user only misses one character but types the rest of the word correctly (however because they missed one, the whole word is not mistyped).

This is indeed a very hard problem and in addition to the example you provided there are many other cases where this type of off-by one (or off-by two) mistyping can occur. At this time, I've put that problem on hold. I tried a few solutions but my friends said the UI was too confusing - the general initial feedback I received is to just keep typing as natural as possible; no stopping a user when they make a mistake, no guard-rails of any kind. Just mimic real typing as much as possible.

Issue is, it's one thing to implement the solution to this but another is how to correctly display this to the user. In essence, the text is just a collection with each character having an index. Per each character we measure everything; milliseconds taken to type, errors made for that character, whether it was corrected or not, etc. But if we're handling off-by one or off-by two, displaying this to the user in a non-confusing way is really hard. UX is hard haha