Iridescent-CM / technovation-app

The team submission platform for the Technovation Challenge
https://technovationchallenge.org
GNU General Public License v3.0
7 stars 4 forks source link

Dev improvements/exploration/tools/libraries #3906

Open shaun-technovation opened 1 year ago

shaun-technovation commented 1 year ago

This is an ongoing ticket for dev-related improvements.

Priority should be for iteration commitments before working on things here.

Ideas for things to do:

Read more about transition doc Heroku CircleCI Logging/errors - Scout, Papertrail, Airbrake, New Relic Security Update Slack integrations

Explore more of the stack: Vue.js Webpack Python/Django Gems - Datagrid

Dev tools: Editor Terminal multiplexers CLI commands/tools Git

Actionable things (that new tickets should be created for): Update READMEs Fix failing specs Parallel specs (local) Update CircleCI config Clear out/fix Scout errors

viviancan commented 5 months ago
viviancan commented 4 months ago

Vivian computer housekeeping LOL (forced)

shaun-technovation commented 3 months ago

I read this interesting blog post on switching from React to Hotwire (Stimulus specifically): https://kellysutton.com/2024/01/15/moving-on-from-react.html

It mentions React, but it might as well be Vue.js; conceptually they basically do the same thing.

My handpicked snippets (emphasis mine) on some benefits or things that relate to us:

As a result of switching from React to StimulusJS, we deleted about 60% of our JavaScript or about 2k lines at the time. Much of that was due to needing to do the same thing client-side that we were already doing server-side or just the state juggling that comes with using a client-side library that wants to put the HTML on the page.

Less duplication.

StimulusJS lets you consolidate more application logic and state to the backend.

No more Vue store and recreating validations and such.

We go weeks without authoring any new JavaScript while still delivering great experiences to our customers. Our application never has to pay the penalty of two pageloads: one for the server-rendered HTML and one for the client-rendered HTML. Although we’ve made little to no optimizations, our app has mostly stayed in a “default fast” state.

We have no JavaScript test frameworks, since all interactivity is exercised through Rails system specs.

That would be a nice win too, not having to maintain two test suites (Jest and RSpec).

Without making the change, we’d put ourselves in a progressively more painful situation as we grew. So we made the decision to cut over and were done within a week.

I'm not sure we can make our transition in a week! But I do think it'll make things more difficult for us too if don't switch over.

shaun-technovation commented 3 months ago

I watched this video I ran across on Hotwire: https://onion.tube/watch?v=75TwYk6xPR4

It was okay, it had some good explanations, highlights, and demos of some of the Hotwire pieces, like Turbo Drive, morphing, InstantClick, Turbo Frames and Turbo Streams.