TypeChat was inspired by rethinking how a functional web app would work if the only way to authenticate was by typing text.

What it does

For the most part, TypeChat is a basic forum. It supports replying to posts, editing, deleting, markdown. Users can view posts by specific users and sort by popularity or new. The real magic is that users are never asked for a password or any personal information. They are seamlessly authenticated in the background. So there's no login screen and no different experience for authenticated users. Just type and post.

How I built it

The backend API was built using the python FastAPI framework and the frontend was built with Nuxt.js since the easy two way data binding made many of the features simpler to implement.

Challenges I ran into

  • Trying to take advantage of the auto enrollment setting without leaving one time users vulnerable to impersonators was a tricky problem to solve, and you'll have to try the app to see it in action.
  • Building a form validator that uses the typing pattern's quality was another challenge
  • It took some time before we realized the TypingDNA JavaScript class was a singleton. This caused a lot of hard to track down errors until we realized it and started using it as such.

Accomplishments that I'm proud of

  • An intuitive UI
  • Invisible authentication
  • Learning a new framework

What I learned

  • TypingDNA APIs
  • FastAPI framework
  • Vue.js form validation

What's next for TypeChat

If it's to remain up long term and be used by any significant number of users, the number of API calls per month would run out so at some point in the user flow it should switch to using a Json Web Token. This would take some work on the frontend. Another feature would be to tie accounts from the same user together so that they don't have to save new typing patterns every time they change username

Built With

Share this project: