Evolu | local-first with privacy Profile Banner
Evolu | local-first with privacy Profile
Evolu | local-first with privacy

@evoluhq

3,345
Followers
2
Following
541
Media
5,583
Statuses

Local-first platform designed for privacy, ease of use, and no vendor lock-in. Made by @steida

Prague, Czech Republic
Joined August 2012
Don't wanna be here? Send us removal request.
@evoluhq
Evolu | local-first with privacy
3 years
It looks like Facebook will release react-gui soon. The library is already out, but the repository is still private. It looks like it's heavily inspired maybe slightly changed React Native for Web. That's what the ecosystem desperately needs.
8
102
417
@evoluhq
Evolu | local-first with privacy
7 years
Tweet media one
0
61
123
@evoluhq
Evolu | local-first with privacy
2 years
Tweet media one
4
7
68
@evoluhq
Evolu | local-first with privacy
2 years
Co kdybych v Praze uspořádal setkání lidí, kteří chtějí programovat v TypeScriptu funkcionálně? Na začátku 15m max talk pak pokec. Pokud byste přišli, dejte like. A prosím o retweet do vašich bublin. Díky
6
18
57
@evoluhq
Evolu | local-first with privacy
7 years
New Este is completed. It's based on Next.js, GraphQL, Relay Modern, @graphcool . So many things were improved. It took me 5 months. 🍫🙏🏻
4
8
47
@evoluhq
Evolu | local-first with privacy
5 months
Why did Evolu choose @EffectTS_ ? If you don't know Evolu, it's a local-first platform designed for privacy, ease of use, and no vendor lock-in. When I started with Evolu, it was written with fp-ts. The main reason was that Evolu needed typed errors. I can't imagine writing
1
5
45
@evoluhq
Evolu | local-first with privacy
10 months
After months of negotiations and weeks of deep technical review, Evolu was chosen for the @Trezor Suite HW wallet. As they said: “It’s the best fit and the best available solution today.”
2
8
43
@evoluhq
Evolu | local-first with privacy
7 years
I loved syntactically significant white-space languages. CoffeeScript, Haskell, Python etc. But @PrettierCode changed everything. It's so easy to massively refactor a lot of code with stupid copy paste... I can't imagine the same with white-spaces.
3
5
42
@evoluhq
Evolu | local-first with privacy
8 years
It's probably time to replace Firebase with What do you think?
4
9
41
@evoluhq
Evolu | local-first with privacy
3 years
created or isCreated? isCreated, because we can also have createdAt When doubt, be explicit.
4
2
41
@evoluhq
Evolu | local-first with privacy
2 years
Let me introduce a thing I have been working on for a long time: Evolu - React Hooks library for local-first software with end-to-end encrypted backup and sync using SQLite and CRDT.
2
4
39
@evoluhq
Evolu | local-first with privacy
5 years
Domain types with io-ts
Tweet media one
2
5
37
@evoluhq
Evolu | local-first with privacy
5 years
The definitive guide to "How to Write Functions in JavaScript" 1) Always use the function declaration: function foo() { // code } 2) Except when you are passing anonymous function somewhere. In such case, use the arrow function: onChange(() => { // code }) @robinpokorny
6
6
37
@evoluhq
Evolu | local-first with privacy
8 years
Chameleónský spolek :-D
Tweet media one
0
3
29
@evoluhq
Evolu | local-first with privacy
6 years
Legendární školení JavaScriptu a Reactu od Daniela Steigerwalda. Nové kurzy za staré ceny :-)
0
2
32
@evoluhq
Evolu | local-first with privacy
3 years
A friend asked me, do you use fp-ts everywhere? Yes.
Tweet media one
2
1
30
@evoluhq
Evolu | local-first with privacy
3 years
Typed and safe LocalStorage with schema migration. Larn: - ioEither - chainEitherK - createStorageError factory
3
4
30
@evoluhq
Evolu | local-first with privacy
2 years
I wish @reactjs and @nextjs examples were written in @typescript by default. Retweet if you agree
0
8
30
@evoluhq
Evolu | local-first with privacy
1 year
I'm porting Evolu from fp-ts to @EffectTS_ . Jeez, Effect is so good! I thought fp-ts was excellent, and it is, but Effect is even better. DX like never before.
2
6
29
@evoluhq
Evolu | local-first with privacy
3 years
I recently started a new @React Next.js app written with React Native for Web, fp-ts, io-ts, monocle-ts, and @vercel SWR. How does it look like? I always start with types. I love types, especially branded types.
3
0
29
@evoluhq
Evolu | local-first with privacy
5 years
@unclebobmartin This one page saved me from writing 10 thousands tests.
Tweet media one
1
2
27
@evoluhq
Evolu | local-first with privacy
1 year
So I completely refactored Evolu and am finally satisfied with the code structure. Why? Because of @EffectTS_ Layer. The Effect Layer is just a functional constructor. Now all platform dependencies are injected and hence switchable.
2
5
27
@evoluhq
Evolu | local-first with privacy
6 years
OK, @flowtype , @AtomEditor , and Nuclide are dead for me. @code and @typescriptlang FTW.
5
6
27
@evoluhq
Evolu | local-first with privacy
3 years
0
4
26
@evoluhq
Evolu | local-first with privacy
3 years
0
6
24
@evoluhq
Evolu | local-first with privacy
5 years
So I banned export default, and it's so good.
6
2
25
@evoluhq
Evolu | local-first with privacy
7 years
With @Firebase , we had to establish a special queue for that. @graphcool rocks.
Tweet media one
0
5
25
@evoluhq
Evolu | local-first with privacy
1 year
Giulio Canti with fp-ts: No docs, that's out of the project scope! Giulio Canti with @EffectTS_ : Let me carefully explain this, that, and also...
1
3
25
@evoluhq
Evolu | local-first with privacy
3 years
- useQuery is typed wrapped over useSWR - 'update' is typed SWR mutate with monocle-ts - Note nested useMemo, initialValues shall be stable - Note how onComplete callback updates local (and typed) SWR cache. - `mutation` is like Formik connected to API 😎
Tweet media one
4
3
24
@evoluhq
Evolu | local-first with privacy
5 years
How to start with fp-ts? Learn: 1) Why Option is better than null/undefined pipe(getFoo(), O.fold(onNone, onSome)) 2) Error handling with Either pipe(doFoo(), E.fold(onError, onSuccess)) 3) Task/TaskEither (better Promise) 4) pipe, map, chain, sequenceT, sequenceS
1
7
24
@evoluhq
Evolu | local-first with privacy
5 years
I can not endorse Scott Wlaschin and Mark Seeman enough. They are my heros.
3
8
24
@evoluhq
Evolu | local-first with privacy
5 years
The more I understand functional programming the more I love it.
0
2
23
@evoluhq
Evolu | local-first with privacy
8 years
Flow vs TypeScript
1
17
23
@evoluhq
Evolu | local-first with privacy
3 years
Ha, I just discovered . It's great! Now you have no excuse to not learn typed functional programming with @typescript 😛
2
8
22
@evoluhq
Evolu | local-first with privacy
7 years
We all know that object relational mapping (ORM) is an anti-pattern. Auto mapping object graph to relational DB is the opposite of the pit of success. @graphcool Prisma is different. All queries have to be explicitly defined. Small things matter a lot!
2
8
22
@evoluhq
Evolu | local-first with privacy
5 years
Yes, I am creating brand new React contentEditable editor
3
1
21
@evoluhq
Evolu | local-first with privacy
5 years
How to sort imports? VSCode organize imports? Eslint? Something else? Nothing. Don't do it. It's not relevant.
3
4
20
@evoluhq
Evolu | local-first with privacy
1 year
If you know some @solid_js , @sveltejs , or @vuejs people interested in the real* local-first software, tell them that Evolu is ready to be ported. Look how simple @reactjs bindings are: I made a @evolu /common-web library that handles all web-specific
2
4
20
@evoluhq
Evolu | local-first with privacy
4 months
The first local-first conference ( @localfirstconf ) was fantastic. Thank @schickling and the entire team. I'm already looking forward to the next year.
0
0
21
@evoluhq
Evolu | local-first with privacy
7 years
@steida After @flowtype all that shit, I can't wait for @reasonml . Don't get me wrong, @flowtype is awesome, really is. Still we need better lang.
3
5
20
@evoluhq
Evolu | local-first with privacy
5 years
Calling server API, what could possibly go wrong? - fetch can fail (no wifi) - server response can be wrong (or client can be outdated) - server can fail - client can be unauthorized - input data can be invalid - and more... Thank you fp-ts and FP.
Tweet media one
Tweet media two
Tweet media three
1
3
20
@evoluhq
Evolu | local-first with privacy
8 years
I tried all CSS in JS libraries. Fela is the best. Nothing even close. Go and star it on Github.
1
3
20
@evoluhq
Evolu | local-first with privacy
6 years
The new @prisma web is so very well done 😻
1
3
19
@evoluhq
Evolu | local-first with privacy
3 years
I made a simple app. I love it. Source code here: As you can see, functional programming (pipe) is ubiquitous. I think you can learn from that.
1
1
19
@evoluhq
Evolu | local-first with privacy
1 month
The goal for Evolu is to design local-first so scalable that no one will need a proprietary server so sophisticated and complex that you would rather pay than maintain it. Soon!
0
1
19
@evoluhq
Evolu | local-first with privacy
4 years
Tweet media one
0
2
19
@evoluhq
Evolu | local-first with privacy
8 years
Tweet media one
1
4
19
@evoluhq
Evolu | local-first with privacy
2 years
Functional programming is highly addictive. I can't imagine how would I write software without it. I don't say it's not possible, not at all, but there are a lot of foot guns. I remember I rewrote a lot of already working apps and libraries just because the codebase was ugly.
2
2
17
@evoluhq
Evolu | local-first with privacy
5 years
@AgainstCoal To je známá věc, že v socialismu ekologie jenom kvete 🥇
0
0
18
@evoluhq
Evolu | local-first with privacy
4 years
Runtime JSON type
Tweet media one
1
0
18
@evoluhq
Evolu | local-first with privacy
1 month
I can't believe what has been an absolute mystery to me eight months ago is now clear as a child's smile. I was thinking about Evolu scaling maybe for two years. I tried and ditched several approaches. Finally, I found something but still didn't know how to use it in Evolu. Now
0
0
17
@evoluhq
Evolu | local-first with privacy
3 years
The task: Calling @supabase Postgres serverless. Cloudflare Worker: From 60ms to 250ms, mostly around 70ms. Deno: Constantly 18ms (sometimes 19 or 17). Just wow.
0
1
16
@evoluhq
Evolu | local-first with privacy
3 years
One of the best design patterns I know is "Slow software". It means developers have time and passion to think about their work.
2
4
17
@evoluhq
Evolu | local-first with privacy
7 years
RIP react-router. Hi Next.js and react-navigation.
0
0
17
@evoluhq
Evolu | local-first with privacy
2 years
Evolu was written with fp-ts. The Effect is like fp-ts on steroids. Giulio Canti, the author of fp-ts, decided to join the Effect team to even improve DX for TypeScript developers. Good times.
@EffectTS_
Effect | TypeScript at Scale
2 years
Get ready for the longest and greatest thread ever, and help us pick the best tagline for Effect (or suggest your own💡)! Special thanks go to the one and only @Datnerr for his exceptional contribution and creativity, and many others in the community 🙌 Here we go 👇
2
13
36
1
2
16
@evoluhq
Evolu | local-first with privacy
2 years
Is anyone using Firefox?
18
0
17
@evoluhq
Evolu | local-first with privacy
7 years
"Our IT department does not allow developers to install software, so how I can install Node.js?" First step: Leave that stupid company asap.
0
3
17
@evoluhq
Evolu | local-first with privacy
4 years
With FP, you don't have to name things so often ♥️
0
6
17
@evoluhq
Evolu | local-first with privacy
3 years
Just for fun, typed and functional string regex parsing to some model.
Tweet media one
0
0
15
@evoluhq
Evolu | local-first with privacy
9 months
@rauchg "offline-first" is hard. It's not something that can be added later. It requires a different mindset and application architecture. It's not for everyone. But if someone needs it, Evolu is here to help. And there are use cases where local first is a must-have.
3
2
14
@evoluhq
Evolu | local-first with privacy
3 years
As I checked source code, it really looks like RNfW revamped for web only. So much goodness there.
2
0
16
@evoluhq
Evolu | local-first with privacy
3 years
Tweet media one
0
0
16
@evoluhq
Evolu | local-first with privacy
7 years
So, what is Prisma about? Graphcool exposes a whole DB, which is good for prototyping, but you don't want to expose whole DB for app. Prisma still exposes whole DB, but with addition app layer, where we can and should adjust everything. That's much better than Graphcool.
1
4
16
@evoluhq
Evolu | local-first with privacy
10 months
Tailwind says, "You are wasting energy inventing class names," and it's literally a massive number of invented class names you have to learn to save a few keystrokes. I like Tailwind because it's something I can use immediately and with excellent constraints and well-defined
4
4
16
@evoluhq
Evolu | local-first with privacy
8 years
Learning Observable By Building Observable by @BenLesh
0
7
15
@evoluhq
Evolu | local-first with privacy
8 years
Thinking about e2e testing based on Redux. It should be perfectly possible just to record and replay scenarios after feature is written. 1/2
2
4
16
@evoluhq
Evolu | local-first with privacy
6 years
render prop is anti-pattern, because injected prop is very often needed in life cycle methods or event handlers. Also, having it in render breaks shouldComponentUpdate. And it's ugly. 🤪
5
4
16
@evoluhq
Evolu | local-first with privacy
5 years
Global state done right: @fauna - document DB - with relations 😻 - multi-cloud - global 🌍 transactions - powerful FQL for DB logic - authentication built-in (this is big) So far I like it very much. Also, instead of GraphQL, I am using io-ts. 💯 type safe API and endpoints.
2
5
15
@evoluhq
Evolu | local-first with privacy
3 years
Turn simple piece of an imperative code to hard mystery functional mess 🤪 Just joking, but there is nothing wrong with imperative code here and there. The thing is, once you understand the functional, is much more readable.
Tweet media one
Tweet media two
1
2
15
@evoluhq
Evolu | local-first with privacy
1 year
@petr_wohlmuth Takže já se vás slušně zeptám, kdo a proč by měl podle vás rozhodovat o vašich platech, a vy mne ihned zablokujete. No alespoň je vidět, co jste to za vyžírku. Určitě si o sobě myslíte, jak jste úžasnej pro blaho lidstva, ale prostě jen žijete z cizích peněz, a i to je vám málo.
Tweet media one
1
0
14
@evoluhq
Evolu | local-first with privacy
1 year
I love @EffectTS_ Discord LLM integration.
Tweet media one
2
1
15
@evoluhq
Evolu | local-first with privacy
4 years
Old - styled-components(~12.51kB) - emotion(~11.3kB) New (~1KB) - -
1
2
15
@evoluhq
Evolu | local-first with privacy
3 years
I love fp-ts
1
2
15
@evoluhq
Evolu | local-first with privacy
2 years
Learn Reader* monads. You will love it. ReaderTaskEither< DbEnv & TimeEnv & PostDbWorkerOutputEnv, | TimestampDriftError | TimestampCounterOverflowError | TimestampDuplicateNodeError | UnknownError | TimestampParseError, void >
1
3
15
@evoluhq
Evolu | local-first with privacy
3 years
monocle-ts is the best, I have no reason to use Immer or something else anymore.
Tweet media one
1
2
14
@evoluhq
Evolu | local-first with privacy
3 years
@TheEhsanSarshar React Native for Web is React Native for web. react-gui seems to be React Native for Web for web only.
0
1
14
@evoluhq
Evolu | local-first with privacy
6 years
React Hooks are much more powerful abstraction than recompose or any other HOC. We can compose hooks arbitrary without messing with props. Less code and better typed. cc @MilanLempera
4
3
14
@evoluhq
Evolu | local-first with privacy
3 years
Vercel SWR lib is awesome, but with fp-ts and io-ts it can be even more awesome. I will extract and release an example soon. It will blow your mind.
1
0
14
@evoluhq
Evolu | local-first with privacy
7 years
. @graphcool is extraordinary well designed. Check this
0
3
14
@evoluhq
Evolu | local-first with privacy
2 years
Kdo jste to viděl, je to k pochopení? Díky cc @borekb Btw, existuje vůbec nějaká komunita českých programátorů v TypeScriptu?
@adamjosefus
Adam Josefus 🧉
2 years
Přednáška od @estejs os funkcionálním programování v Typescriptu je skvělá. Strop ze skla prolomen!
3
4
24
13
1
14
@evoluhq
Evolu | local-first with privacy
5 years
Eslint import/no-cycle is underrated. It's life safer because it enforces good design. - -
Tweet media one
2
3
13
@evoluhq
Evolu | local-first with privacy
2 years
How to start with FP? Start with small things. Pipe and Either instead of exceptions. Soon you will get the aha-moment. Yes, it can be hard, but it's worth it. After a while, you will wonder how you could write any code without that. Feel free to ask.
0
2
14
@evoluhq
Evolu | local-first with privacy
3 years
This is so cool
1
2
14
@evoluhq
Evolu | local-first with privacy
4 years
How to structure files in a project? There are many ways, but only one rule. Do not move non-reusable code to own file.
0
0
14
@evoluhq
Evolu | local-first with privacy
2 years
Nice. And as always, once you learn it, you will wonder how you could write software without it.
1
2
14
@evoluhq
Evolu | local-first with privacy
6 years
Yet again, I finally got why @prisma client is so much better than the previous bindings. Good work. Also, it forces me to learn the @GraphQL best practices.
2
1
14
@evoluhq
Evolu | local-first with privacy
6 years
That's exactly why I prefer @flowtype over @typescriptlang . TypeScript still does not support exact types. In @flowtype it will be the default behavior soon.
4
4
13
@evoluhq
Evolu | local-first with privacy
8 months
Slicky carousel(s), bi-directional&infinite, Utopia Fluid CSS, @stylexjs styles, typographic baseline, mobile&desktop, touch/mouse/keyboard navigation… They said, “Do one thing well”. I did two (it’s a calendar mixed with notes). Local-first, E2E encrypted, open source, easy
2
2
14
@evoluhq
Evolu | local-first with privacy
7 years
Wow, I just realized React has a new tutorial. It's perfect explanation.
0
3
14
@evoluhq
Evolu | local-first with privacy
3 years
Do I need a state lib for React? React Context with useReducer/useState is great until we need fine-grained component updates. React recommends using separated contexts, which is fine but verbose and manual. That's why people use libs. Probably the best:
2
1
14
@evoluhq
Evolu | local-first with privacy
7 months
@BuckRight Socialism (statism)
1
0
14