diff --git a/_posts/2020-11-12-how-to-fund-open-source-software.md b/_posts/2020-11-12-how-to-fund-open-source-software.md index a8f3362..6578307 100644 --- a/_posts/2020-11-12-how-to-fund-open-source-software.md +++ b/_posts/2020-11-12-how-to-fund-open-source-software.md @@ -2,7 +2,7 @@ layout: post title: "How to Fund Open Source Software" date: 2020-11-12 07:37:00 +0000 -tags: economics +tags: economics software published: true description: "It’s time to talk about survival and growth of open source software projects." image: https://siriusbusiness.fi/assets/images/posts/letsfindout.jpeg diff --git a/_posts/2021-9-27-gun-for-react-state-management.md b/_posts/2021-9-27-gun-for-react-state-management.md new file mode 100644 index 0000000..87c2fe2 --- /dev/null +++ b/_posts/2021-9-27-gun-for-react-state-management.md @@ -0,0 +1,38 @@ +--- +layout: post +title: "Gun.js: The Best Solution for React State Management" +date: 2021-9-27 01:37:00 +0000 +tags: software +published: true +description: "Better alternative to Redux" +image: https://siriusbusiness.fi/assets/images/posts/cheesecake.jpg +--- + +Fed up with writing a ton of Redux boilerplate just to make a form input editable? + +There’s a better alternative: Gun.js. It makes state synchronization and persistence super easy: + +``` +// Initialize Gun with options to make sure that the state is synced only locally +const State = new Gun({multicast: false, peers: [], localStorage: true, file: ‘State.local’}); + +class CommentForm { + componentDidMount { + State.get(‘comment’).on(comment => this.setState({comment})); + } + + onInput(e) { + State.get(‘comment’).put(e.target.value); + } + + render() { + return { +
+ this.onInput(e)} /> +
+ } + } +} +``` + +Now you have a comment form that automatically persists its content. \ No newline at end of file