First Time ExperienceJanuary 20, 2021, Tailwind UI, Retool, Sanity

This post has a smattering of random tools that I didn’t think was appropriate for a full friction log (at least not yet). This is more of a “first-time” impressions post.

with Rick Blalock


I used Roomservice during a hackathon in 2020. I had no previous experience with it but did have some experience with CRDT’s, ydoc, web socket setups, etc.


It was amazing how fast I could get things spun up. Check out our hackathon episode where we talk a lot about it. The repo for that entry is here.

The whole “React hooks as a service” where data synced across clients real-time, “Just works” is a pretty great feeling. Being able to do the following and it renders everywhere instantly..without having to set up web socket servers, CRDT diffing, signaling servers, etc…is crazy awesome.

const [todos, list] = useList("myroom", "todos");
// Insert a number of items at the end of the list
list?.push("cat", "two", "three");

// Insert an item after an index
list?.insertAfter(2, "four");

// Insert an item at an index, shifting
// other items if needed.
list?.insertAt(0, "zero");

// Delete an item at an index

// Update an item at an index
list?.set(0, "root");


The only friction I ran into was I could not get the presence hook to work consistently. It would work sometimes. This was also back in November, so it might have changed by now.

Tailwind UI

I needed to spin up an internal app for Fish Rules to help us manage a few things. I decided to buy Tailwind UI to try it out. I’ve had a lot of Tailwind experience but never used Tailwind UI.


The delights aren’t surprising for a Tailwind user: Things work as expected, they are meticulously made, the underpinnings and detail are taken care of for you. It’s great, it saved me a ton of time.


Copying snippets take lots of refactoring for React. It's easy to change but it'd be nice if they had the option of the framework snippet (kind of like how the hero-icon site works with copy/paste).

This is very minor but there's something anti-climatic about buying a collection of HTML snippets for $149 and then getting access to them. The flip side is nice: There's no POLA (no unwanted surprise), Tailwind UI behaves and works exactly as a Tailwind user would expect.


I was hoping to use Retool for the internal tool I mentioned above (which clearly I didn’t since I used Tailwind UI in a custom React app). Their firebase integration is what attracted me to this tool. I had no previous experience with Retool. It also made me wonder if “No-code” tools are for me.


Sign in was fast and seamless and worked as expected

Setup initial integration was nice and easy and left me with a good, confident feeling. I love the "Book a 1:1" option.

Adding a table of data was easy.

Support was AWESOME. Asked a question, got a helpful answer, a link to better resources, a template, etc. All support should be this way.


The “Firebase database URL" wasn't clear as to what that meant. I had to poke around to figure out what that meant. They don't specify it is for the real time DB, not firestore. The docs say it supports both but the "database URL" is specific to real-time DB.

Docs that say "click on database" are outdated, which left me wondering how much the other docs are out of date.

Builder mode: The UI has panels on top of panels. Makes using it a little hard to grok what is going on. It reminded me of Eclipse panels everywhere.

I skipped instructions (on purpose, to see how intuitive it was) and definitely ran into a roadblock on what to do after adding a table to the screen. After reading through the instructions I got the feeling "I could just do this in code so much faster”. Whether that is/was true or not, my mind started going there.

The “Edit table values" documentation says to use a "Bulk Update Query"...but there isn't an option for this anywhere that I could find.

I wanted to use Sanity for our content and data for marketing facing things in Fish Rules (Blog, content, premium content, etc.). I had no prior experience with Sanity but I’ve seen so much chatter about it on Twitter I wanted to give it a go. To cut to the chase…I ended up using GraphCMS.


Honestly, nothing stood out to me as remarkable or a delight. (sad face)


Pricing has "100 listeners" ... what is that?! Familiar terms would be nice.

When first logging in, the dashboard is empty and the placeholders are "Usage - Coming soon! Favorites - coming soon!”, etc. Not a good first impression. Feels like it's not ready...might be better to just not show anything like that. Or tell the user what is coming soon elsewhere.

Active projects: When empty, there's no obvious way to create one save the very top dropdown. I hunted around for a while.

There wasn’t any apparent way to create a project inside an existing NextJS app.

The manager area is different than the studio area's look and feel, which worried me.

When getting started, the documentation didn’t have any clearly defined goals. So I started to click around and as soon as I got to schema's I was done. Emotions like "Ah what's the point of this...I can just build my own schemas in TS or GQL" because there's no quick explanation to the value I was getting from it. Just “Go do this”, “Add this”, “Do this too”. But why? It wasn’t obvious to me and felt like more work.

Sign up for updates

Friction Log © 2020.