question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ReactCDK: Express Infrastructure Resources using React JSX/TSX

See original GitHub issue

Support 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:closed
  • Created 3 years ago
  • Comments:5 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
rrrixcommented, Sep 18, 2020

React is familiar to a large group of developers, not scary.

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 🧐

0reactions
pfeilbrcommented, Sep 27, 2020

RFC created. RFC tracking issue @ https://github.com/aws/aws-cdk-rfcs/issues/256

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found