
Product & design
Playground layout
We did an entire design revamp on our playground to make it breathe better and allow us to accommodate future functionalities easier.


This included designing a sidebar that has more than enough room for our existing and future settings including, the one for different use cases.

App layout
As part of making more room for the playground, we moved the element into a completely separate page within our app and ditched the prior tab layout. Also, "Use cases" → "Templates".
It's so intuitive 🧖
Identity
As a user, you can now improve the output accuracy by inputting your profession to Flowrite settings. The identity setting can be found under /account.

Goodbye Rubik, welcome Euclid
Our previous font Rubik didn't give us the flexibility our app needed and felt too rounded for the UI.
We spent way too long testing out different fonts and were close to going with the common choice Inter, but found a perfect match with a geometric sans font Euclid by Swiss Typefaces.

Community's coming together
Plenty of updates to our user community to accomodate our early users' needs.
Software engineering
Thanks for behaving, Gmail
As we are not big fans of jQuery and related libraries, we have crafted our own DOM manipulation logic for Gmail. In the past weeks, we again improved the way we recognize reply and compose fields and the placement of the Flowrite button.
Divide and Conquer
Some parts of a codebase tend to change rapidly. In the past week, we took those and created serverless Firebase functions for them. One of those functions handles our current whitelist of users and another authenticates them to the Chrome Extension. It is a joy to just bump up an individual function to a new version instead of redeploying the whole backend.
Another great thing about Firebase: avoiding local persistent state. All the data that we need to stick around, we push to Realtime Database. We are now able to recreate state from Firebase on-demand and avoid all collisions with locally stored state in that way. So far, it's working beautifully.
Microsoft didn't ruin GitHub after all
We decided to make Github our home for version control. At first, we thought that migrating from GitLab to Github would mean needing to migrate our CI scripts as well. Gladly, we could keep using Gitlab CI just by mirroring the new Github repositories. Having a Gitlab runner on a NixOS droplet on a provider like Hetzner is not a terrible experience.
Multiplying our AI development speed
To be the fastest out there, our AI team needs matching tools. Having tried a bunch of popular (and unpopular) options, we landed on a few interesting candidates to help us raise our game. So far we have been quite impressed with Deepnote for Python notebooks as well as Zenhub for issue tracking and project management.
What is accuracy?
We have again worked to increase our understanding of GPT-3, the black box. We are actively enhancing and pushing forward the quality of our text outputs. But, just by how much? The past weeks' work has involved research and discussion around building and defining our in-house metrics for success and accuracy in natural language generation.
Share the update