ReactCDK: Express Infrastructure Resources using React JSX/TSX
See original GitHub issueSupport the expression of cloud infrastructure resources via React JSX / TSX. Cloud solutions are composed of many services. Being able to efficiently and naturally express the composition is a developer ergonomics/DX concern.
Hello ReactCDK
app concept gist
- custom react renderer / reconciler where cloud (cfn) is it’s render target getting there via CDK language layer.
- ReactCDKBaseComponent (class or functional component/hooks friendly)
- ReactCDKPatternComponent - pre-composed infra for common use cases.
- leverage React ecosystem adjacencies (e.g. react storybook, etc.)
- mapping from react concepts of props, state, children, render props to typescript CDK constructors, params, hierarchical nesting (parent), etc.
a clean mapping needs to be proven as is area for more digging**
- special cases of lambda function code being webpack + babel + etc being transpiled, bundled, etc. and handed over to CDK provisioning layer.
this is a bit more involved and also needs research. this is the blending of app code and infra resources it interacts with. This is somewhat similar to Meteor, but instead of only mongodb, it’s every cfn supported AWS service. Need to not make same mistakes as meteor.
- step function special cases where the components that make it up are customized for developer ergonomics/dx.
- wrap these ReactCDK components for Amplify “Backend” library
- this is additional alternative to amplify add [backend] (e.g. api, auth, etc.)
Use Case
- Library / framework support is a natural evolution on top of already supported CDK languages.
- React is familiar to a large group of developers, not scary. It’s a generalized tech that allows devs to naturally express composition, which is the core tenet of serverless / serviceful solutions.
- This eases developers into more advanced AWS usage and therefore enabling them to get more value from the platform.
- Library/framework support on top of already supported language (ts) via jsii
Resources
Issue Analytics
- State:
- Created 3 years ago
- Comments:5 (4 by maintainers)
Top Results From Across the Web
How to deploy a React app on AWS using the AWS CDK
Deploying a React app on AWS S3 with HTTPS, a CDN, CI/CD with Buddy and your own domain name all using AWS CDK...
Read more >Introducing JSX - React
It is called JSX, and it is a syntax extension to JavaScript. We recommend using it with React to describe what the UI...
Read more >React Web and Express API for development and production
Create React application using create-react-app inside the Express application. Dev: Run both applications on separate ports and set up react ...
Read more >Tutorial: Create a Node.js and React app in Visual Studio
Then, you create a simple app using React. In this tutorial, you learn how to: Create a Node.js project; Add npm packages; Add...
Read more >How To Set Up a React Project with Create React App
You can start writing React code with minimal preparation. By the end of this tutorial, you'll have a running React application that you...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
This is very debatable. I’m familiar with React and it totally scares me. I saw this issue title and had to click in to read more… because I feel this is just so… scary 😆. If I have to manage my CDK Stack state in Redux I’m going to quit and become a carrot farmer.
I think perhaps instead of JSX/TSX, a more Functional (vs Class based) paradigm would be a bigger hit (and probably ease the transition to React style Components).
Anyways, very curious to see where this goes (for better or for worse)… sub’d 🧐
RFC created. RFC tracking issue @ https://github.com/aws/aws-cdk-rfcs/issues/256