GatsbyJS is a sorta-static-site-generator sorta-progressive-web-app-framework that uses React components for markup/interactivity and GraphQL as its data API. The basic pitch is that it gives you lots of the benefits of modern React development (reusable, data-driven components; highly interactive pages that load fast and work offline; integrated HTML/CSS/JS through the JSX paradigm) while being designed to integrate with a much wider array of data sources. It also comes recommended by David Eads.
On its surface, GatsbyJS seems like it could be a good choice of frontend framework for us, since it purports to have a tighter scope and to allow a wider range of source data than frameworks like React, Vue, or Angular. But some outstanding questions remain:
How well does it integrate with PostgreSQL and Django?
How steep is the learning curve? (Can you pick up the basics in an afternoon, like Django, or does it require intense training, like React?)
How does it handle our existing JS data viz toolkit (Highcharts and Leaflet)?
I want to answer these questions by experimenting with integrating Gatsby in a DataMade project. Since development on the CPS SSCE dashboard is gearing up soon, I figure it'd be a good opportunity to A) test drive a framework I've heard good things about while B) getting onboarded to a project I'll be working on soon.
Proposal
I propose a rapid R&D project to test drive GatsbyJS in the context of the CPS SSCE dashboard. I'll attempt to migrate the frontend of the app to GatbsyJS using the existing backend API.
These changes will be reflected in a pull request which I'll open up for comment. The changes will be purely experimental, and I won't pull them in when I'm finished.
Deliverables
A pull request against the CPS SSCE dashboard repo with a prototype environment
A short writeup documenting my answers to the questions above, as well as next steps for evaluation if Gatsby seems promising
Timeline
I plan to start and finish this R&D project on Friday, 3/29/19.
I'd be curious what @beamalsky thinks of this and how it would impact the
work we are planning. We are drafting a report to share with CPS that will,
with their input, determine the work we do. I'd like to get some clarity on
that direction before proceeding with this R&D on SSCE.
Just to be clear @derekeder, my end goal here isn't to do development on SSCE, since I don't plan on merging the changes. SSCE just provides a sandbox environment to play in that approximates a real-world client app. I could do this R&D with any other existing client app (e.g. EDI or SFM, although SFM is tougher since it's many degrees more complex) but it seemed like a good opportunity to get onboarded to SSCE.
I hear you saying that there's a chance we won't do more technical development on SSCE soon, in which case I think it makes sense to wait. If on the other hand we feel confident that we're going to do more development on SSCE, do you see a downside to onboarding me?
If they proceed with our recommendations, there won't be much development for a while as we get them trained up and clean up the source spreadsheet.
I do think bringing you into the CPS project for this would be fine. The LISC CNDA map might also be a good candidate since you are already engaging on that project
This sounds great to me! SSCE should provide a solid and not-to-complex backend to work with. I'll second what @derekeder said: we're not likely to make major additions to frontend any time soon, so it makes sense to me to keep @jeancochrane's work experimental and unmerged.
@jeancochrane commented on Tue Mar 26 2019
Motivation
GatsbyJS is a sorta-static-site-generator sorta-progressive-web-app-framework that uses React components for markup/interactivity and GraphQL as its data API. The basic pitch is that it gives you lots of the benefits of modern React development (reusable, data-driven components; highly interactive pages that load fast and work offline; integrated HTML/CSS/JS through the JSX paradigm) while being designed to integrate with a much wider array of data sources. It also comes recommended by David Eads.
On its surface, GatsbyJS seems like it could be a good choice of frontend framework for us, since it purports to have a tighter scope and to allow a wider range of source data than frameworks like React, Vue, or Angular. But some outstanding questions remain:
I want to answer these questions by experimenting with integrating Gatsby in a DataMade project. Since development on the CPS SSCE dashboard is gearing up soon, I figure it'd be a good opportunity to A) test drive a framework I've heard good things about while B) getting onboarded to a project I'll be working on soon.
Proposal
I propose a rapid R&D project to test drive GatsbyJS in the context of the CPS SSCE dashboard. I'll attempt to migrate the frontend of the app to GatbsyJS using the existing backend API.
These changes will be reflected in a pull request which I'll open up for comment. The changes will be purely experimental, and I won't pull them in when I'm finished.
Deliverables
Timeline
I plan to start and finish this R&D project on Friday, 3/29/19.
@jeancochrane commented on Tue Mar 26 2019
CC @fgregg @derekeder @hancush
@derekeder commented on Tue Mar 26 2019
I'd be curious what @beamalsky thinks of this and how it would impact the work we are planning. We are drafting a report to share with CPS that will, with their input, determine the work we do. I'd like to get some clarity on that direction before proceeding with this R&D on SSCE.
On Tue, Mar 26, 2019 at 10:29 AM Jean Cochrane notifications@github.com wrote:
-- Derek Eder Founder and Partner
DataMade New address: 233 N Michigan Ave, Suite 1800 Chicago, IL 60601 Tel: (312) 725-0195 Web: datamade.us
@jeancochrane commented on Tue Mar 26 2019
Just to be clear @derekeder, my end goal here isn't to do development on SSCE, since I don't plan on merging the changes. SSCE just provides a sandbox environment to play in that approximates a real-world client app. I could do this R&D with any other existing client app (e.g. EDI or SFM, although SFM is tougher since it's many degrees more complex) but it seemed like a good opportunity to get onboarded to SSCE.
I hear you saying that there's a chance we won't do more technical development on SSCE soon, in which case I think it makes sense to wait. If on the other hand we feel confident that we're going to do more development on SSCE, do you see a downside to onboarding me?
@derekeder commented on Tue Mar 26 2019
Here's the report we just sent to CPS: https://docs.google.com/document/d/17FJl78y8ALMRHGUAgVpEIDy5p6nk0xgVy6S5KhYN95I/edit#
If they proceed with our recommendations, there won't be much development for a while as we get them trained up and clean up the source spreadsheet.
I do think bringing you into the CPS project for this would be fine. The LISC CNDA map might also be a good candidate since you are already engaging on that project
@beamalsky commented on Tue Mar 26 2019
This sounds great to me! SSCE should provide a solid and not-to-complex backend to work with. I'll second what @derekeder said: we're not likely to make major additions to frontend any time soon, so it makes sense to me to keep @jeancochrane's work experimental and unmerged.
@jeancochrane commented on Thu Apr 04 2019
Notes from my learning lunch on Gatsby: https://gist.github.com/jeancochrane/705dda18da74fafe4b8182d15284114d
Based on this R&D, we're going to trial Gatsby in the LISC CNDA project (https://github.com/datamade/lisc-cnda).