-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Publicity Roadmap #312
Comments
Some thoughts on stuff:
I've been trying to create diagrams of the flow of data through Microcosm, some help with that would be great. Stuff like this https://vuejs.org/images/lifecycle.png
I think this is the most effective thing redux did to teach people about it: https://egghead.io/lessons/javascript-redux-the-single-immutable-state-tree The key takeaways being introducing 1 concept at a time, starting with redux without any react. We need that initial tutorial where we only talk about the core API. Also an example. I have a simple counter I will put on a PR and maybe we can tweak that since ya'll have more microcosm experience.
One audience I wanted to focus on was bringing in contributors. Adding betters docs, contrib guidelines, and easy formatting is geared towards that. Another thing I wanted to investigate was creating an OpenCollective project. That would potentially draw contributors, spread the word, and pay for stickers or something. |
We 100% need to focus on marketing "Why Microcosm is better than Redux". Feels like 99% of shops and product teams are using Redux. Why would a technical manager at a product company have his team swap out a core architectural portion of their app, or why would a team lead evaluating options on a new project pick Mirocosm over the industry standard? There are plenty of reasons why! There is no reason to be diplomatic here. If we think we have something better (and I think we do), we gotta tell people straight up. Not in a cocky way, but in a straightforward, convincing, here are the facts way. So to re-iterate, we absolutely need to include a "Microcosm vs. Redux" segment in the intro docs or the homepage. OR simultaneously launch a blog post with that title, and link to it in the docs. Or both. The React (and beyond) community would benefit so much if they new this was as legit as it is! @nhunzaker is a wizard. Spread that magic around! 🦄 |
Very cool. I have tons of thoughts, but they're taking some time to distill down. In the mean time: @leobauza I really like the way Ember structures their tutorial: https://guides.emberjs.com/v2.12.0/tutorial/ember-cli/ @greypants Let's chip away at talking through the key advantages. I'm also curious to get @mackermedia or @h0tl33t's take on Redux vs Microcosm having worked with both. I also want to start working through talking more specifically about the advantages. I've started that with this PR: Beyond that, I need to write a high level blog post about Microcosm. I'll make that my next priority. |
The complaint I hear most about Redux is around how massive/crazy/out-of-control reducers can get over time. I dunno if this is Redux's fault, or just something easy for devs to fall into... but it'd be cool to talk about how well Microcosm architecturally scales and can help you avoid ending up with too much app logic jammed into one place. But yeah, I definitely thing @mackermedia and @h0tl33t should speak to this. All my knowledge of Redux is just from hearing about other people's experiences. |
Totally agree with all of this, especially with the focus on being more pointed in doing comparisons. I can put together some pain points I'm hitting on day 1 of working with a React/Apollo app where I want to view the state of an action, but unintentionally hitting weird race conditions (have to check Also I believe a video-taped presentation would go even further than a write up. I know you have a ton on your plate already @nhunzaker, but you're a great speaker, so if you find it so if you find it easier to talk than write I'd second that! :) |
We're using this to abstract some complexity away: https://github.com/erikras/ducks-modular-redux |
@tommymarshall Thanks for sharing! That's super interesting. The issues are also pretty interesting: How can I cancel an API call that is already made? Maybe we should hit stuff like this harder. In Microcosm, it's a little different, but you could just do: function uploadFile (file) {
return action => {
let request = ajax.upload(file).then(action.resolve, action.reject)
action.onCancel(request.abort)
}
})
let upload = repo.push(uploadFile, new File(['meeow'], 'catz.js'))
upload.cancel() |
There's a bunch of talk around efficiencies in rendering components when global state changes; which is why Redux uses Containers. I don't understand exact why this is more efficient, but it gets brought up a bunch where I am at now. To me, Presenters make this an even better alternative with a fork of state so it doesn't concern itself with other parts of an app. |
@tommymarshall If it's like presenters, it's more efficient because you can more granularly specify what you want, like:
That (and the mapPropsToState version in Redux) means that a global state change would only cause a reflow on the container if the users value is different. Forks need to be advertised more. With Microcosm, you could totally add domains/effects for a specific part of an application, even lazy load the whole section. |
Just met with @mackermedia and @btrav around the topic of publicity and marketing for Microcosm. Wanted to post notes and discuss next steps with the larger community.
Meeting Notes:
Microcosm is rad, we want to spread the good word. Before we push it out through various channels, it would be good if the documentation, reference material, guides, tutorials, etc. were in a good place we all feel comfortable with. Nate and others have done a stellar job laying a solid foundation of documentation and guides, let's get it to the next level. We can up with a high level plan:
High Level Plan:
Next Steps:
@greypants @nhunzaker @leobauza @mackermedia @efatsi @h0tl33t @dce @ipbrennan90 @benjtinsley @albaer @solomonhawk @ltk
If you have any thoughts around improvements that you'd like to see in the site/readme, lay em out here. We can hopefully suss out a cohesive vision to work towards. Everyone has varying degrees of experience so getting thoughts across the spectrum would be great.
The text was updated successfully, but these errors were encountered: