Your project is a bit similar to mine and I am very curious about how you use Blockstack.
I have been hosting a CouchDB instance myself on a VPN but considered moving to Firebase while prototyping since it seems easier to use. Considering Firebase since it offers offline-first support. However, only today I was made aware of Blockstack and I have seen it mentioned multiple places.
How do you like working with Blockstack and what made you choose it? Does your app work offline? Does it synchronize automatically between devices?
I also want to take data privacy very seriously, since I am dealing with personal and sensitive data (just like a person's journal is very sensitive to them).
Does anyone have experience using Fulcro just for frontend (no backend)? I have been considering it versus Reagent and Rum for building a heavy client-side app that doesn't need a server (nothing to store in a database, local storage is fine). At some point I might add users for data sync between client and server but I don't plan to do SSR for SEO purposes at least.
What I am curious about is if I use Fulcro, will I write a lot more code to do the same as in Reagent/Rum because it's supposed to play well with a backend that's (for now) non-existent? Does it provide better tools for client-side state management compared to Rum/Reagent (+ re-frame)?
Right now I am using just Rum with its built-in cursors and derived atoms and the experience is okay. I did try DataScript but ended up just with a simple atom for now.
I haven't looked much into lit-html but is it possible to type check your templates like you can do with JSX? That is one big advantage I found for JSX compared to template-based frameworks.
All components, expressions, etc are in template curlies `${}` so type checking works out of the box. If you mean type checking on HTML properties, no it does not.
Lit HTML seems very extensible, so it should be possible to add support for thus.
It's possible. There's a VS Code extension that does this already called lit-plugin. If it becomes easier to add TypeScript compiler plugins via configuration, then I'm sure one will appear, allowing errors at build time.
This really depends on definitions of strong and weak and this might be another point but C could be considered a static and weak language. Not sure of any other language like this.
> That being said, I intend to replace reagent soon with just raw React + a few helpers
Do you intend to keep using ClojureScript or use JavaScript/TypeScript? I read pure React with ClojureScript is rather painful (mostly due to the props conversion but maybe that's what your helpers are for?)
I am asking since I am still considering between React (JS/TS) and Reagent/Rum (CLJS) for a side project of mine.
These sounds like exceptions rather than errors to me. Difference being, exceptions truly are exceptional and not anticipated; like running out of memory. How do you even handle that? Would probably let it crash and restart (Erlang model). Errors is something you anticipate can happen, such as getting 4xx-5xx back from the server and know what to do in those cases.
Then it's fair to say that you definitely can't get an error by adding two numbers.
I have been hosting a CouchDB instance myself on a VPN but considered moving to Firebase while prototyping since it seems easier to use. Considering Firebase since it offers offline-first support. However, only today I was made aware of Blockstack and I have seen it mentioned multiple places.
How do you like working with Blockstack and what made you choose it? Does your app work offline? Does it synchronize automatically between devices?
I also want to take data privacy very seriously, since I am dealing with personal and sensitive data (just like a person's journal is very sensitive to them).