That’s just not true. I’m from Europe but lived in Boulder for several years. For example this shooting (1) happened 5 min walking distance from my home. My kids’ school had several lockdowns due to gun-related stuff in the neighborhood. Something like that is unimaginable in Europe, and big part of why we moved back.
You can pan by holding down Space key (and then use mouse to drag the board). In general Whimsical's UX patterns are quite similar to Figma, Sketch and other UI design tools.
(co-founder of Whimsical here) Thanks for the mention! Couple fun facts - Whimsical is written 100% in Clojure and we are self-funded (https://whimsical.com/business/why-bootstrap/).
Thanks for the mention! We built Whimsical for a simple reason - all the existing diagramming apps had poor UX. It didn't feel like any of them were really optimized to visualize ideas as quickly as possible while make the result look decent.
Similar story here - started with DraftJS but it was kind of cumbersome. Slate in comparison is much more flexible and we've been using it in production for almost a year now. In fact we just launched a sticky notes project management tool which features a smooth rich text editing based on slate https://whimsical.co/sticky-notes/
It's an extension to re-frame that we built. It addresses some of the (subjective) shortcomings of re-frame, mainly the over-reliance on keywords. We'll be open-sourcing it soon.
Indeed, most of the application logic is in client side. In fact it's built in a way that it could function as a standalone application without backend. Currently it doesn't persist the data locally but that could be easily added.
The backend serves as a fairly generic datastore with an API that allows data to be easily synced back and forth. It implements a logic (again non-specific to Whimsical) for how to handle concurrent updates (basically it implements CRDTs). I believe it's pretty similar to Google's Cloud Firestore - we might have chosen that if it was out of beta and we didn't mind the lock-in.
Two main reasons we did this:
1) to be able to easily add offline mode - we don't have it yet but it's fairly easy to add now
2) to minimize effect of network latency on user experience
As for less load on server & cheaper infrastructure costs - you are right, that is another benefit.
We use combination of Redis pub/sub and Websockets. Each document has a unique key and whenever any of the users/clients make a change to it, it's published via that key. Other clients connect via WebSockets to backend and subscribe to the same key in Redis. The notifications are fairly simple.
The complex part is how we sync actual data from clients to server while ensuring consistency. We basically store all data in a tree format and having a diffing logic how concurrent changes can be applied conflict-free in most cases. I'm considering writing a separate post on that.
HackFwd was one of the rare accelerators that was actually pushing the envelope instead of being copycats. Besides they had another rare trait in this space - integrity and deep commitment to companies they fund (disclaimer - I'm the founder of one of those companies).
> I loathe seeing *.html in urls and that's the only thing you can do with S3 root object
You can configure name of index file, and that will be displayed for requests against root URL and subdirectories (such as blog posts) as well. No need for having .html in URLs.
The only problem I've encountered with S3 web hosting is that it does not let you host naked domains.
Exactly, the best interface for kitchen-ware is physical knobs. I hate all those touch-surface buttons that usually come integrated on stoves like this. They have no feedback and they fail to react more often than they do.
Most enterprises have a very strong culture of maintaining status quo as extensively as possible. Especially in IT departments. Even big software enterprises rely on 5-10 year old infrastructure software (such as Exchange 2003) which was released during the era of Windows domination. It doesn't help that some of the software is web based because even that is often made for Internet Explorer only.
Nevertheless Mac's are actually spreading in enterprises. Not from top but from bottom. Officially unsupported, but with a help of VM software such as VMWare Fusion there are no problems using legacy stuff.
The article didn't mention the main advantage of storing queues in DB - transactions. Say you need to update other records in DB while processing a job with 100% consistency. If it's all in the same DB you can update both job as well as data in a single transaction.
1) https://en.m.wikipedia.org/wiki/2021_Boulder_shooting