Hacker Newsnew | past | comments | ask | show | jobs | submit | simonfl3tcher's commentslogin

This repository is an opinionated repository and comes with a lot more things than the create-react-pwa. i.e. Webpack, Mocha, Flow, Nightwatch, component structure.

I agree, if you wanted to start from scratch with your own structure create-react-pwa is probably a better repository for you. However, if you like the opinions formed in this repo then it will allow you to get started straight away with static type checking, e2e testing, unit testing, tree shaking, and code splitting all built in.

You raise a good point regarding Preact, it is something that I have considered but decided to stick with React until it became problematic.


Like I outlined in the README. The aim would be to keep it static while calling out to an API.

https://github.com/simonfl3tcher/react-progressive-web-app#h...

To be honest, you could hook this up to server-side rendering one way or another. However, I haven't looked at server-side rending too much, and I am not sure what the affect of doing this would be on the TTI. As a result, I cannot say one way or another whether this would be a good idea or not.


This is a great check list if you are looking to create a PWA.

https://developers.google.com/web/progressive-web-apps/check...


I would tend to disagree with that statement. While the webpack offline plugin is creating the service worker which is putting the requests into the cache storage there is a lot more to achieving a good PWA than just a Service Worker.

You need to have a manifest.json file which provides all the information for installing your app to your devise. For more information see https://developer.mozilla.org/en-US/docs/Web/Manifest.

You also need to reduce the Time To Interactivity (TTI) to be under 5,000ms. Webpack is doing a lot of the heavy lifting here by performing tree shaking, vendor chunking and route based chunking. All things that contribute to getting this under 5,000ms.

If you would like to know more information as to how to achieve a good PWA, I would urge you to run Lighthouse against the demo which will outline all the things that contribute to a good PWA.


As @WA suggests PWA's are JS-apps that can be used offline in a browser. You need JavaScript to instantiate the Service Worker which caches the request, without JS and in turn the Service Worker you no longer have a PWA.

PWA's are something that Google is pushing pretty hard right now, to me that suggests there is becoming less of a concern around JavaScript being turned off than previous years.

https://developers.google.com/web/progressive-web-apps/


Progressive enhancement is not about people turning off JavaScript, it's about JavaScript failing, which can happen for a variety of reasons.


Personally I have kept these separate before. I would just have /src/actions/{actionType}, but, that is not to say that these cannot be included in the components folder, and actually makes sense given that a certain action is generally associated with a certain component.

What is your opinion?


My opinion and current way of working is:

* if the reducers/actions/action creators/action types/sagas are UNIQUE to the component and are not being used elsewhere then it should sit together in the same folder .

* if they are more generic/being used in more than one place then I would put them all in a separate folder, since all of those parts are actually doing more or less one thing - manage a specific sub-section of your app's state.

This sub-section of your app's state can then be shared by many more than one entry point, which is extremely useful for me.

A REAL example:

I took the redux-login-saga-flow (https://github.com/sotojuan/saga-login-flow/tree/master/app), changed the folder structure so now i can just import the login state management into every entry point i want, and bam - it just works, since all of that state sits under 'login'.

I can now create a new webpage and add all of the login complexity in only a few minutes of work .

I Hope I was clear

(edit: some cleanup and spacing)


Yep, we very clear and make a lot of sense. Would tend to agree with everything that you have said.


No plans at the moment. I would like to make this an flourishing open source project so it may be something we discuss later on down the line. The repository is open for contributions


It was a personal choice more than anything else. I personally have more experience with Mocha and Chai and I feel like they are slightly more mature than something like Jest. As I suggested in the README, this could very easily be switched out of desired.


This is pretty neat.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: