[DeepDive] Serverless Web App + Chat Bot + Mobile App (iOS) + Desktop App (Catalyst, Electron)
Architecture, Patterns, etc
- https://jamstack.org/
Languages, Libraries, Technologies
- GraphQL
- https://graphql.org/
- https://www.howtographql.com/
- https://www.apollographql.com/
- See also: https://github.com/0xdevalias/devalias.net/issues/66
- https://reactjs.org/
- https://reactjs.org/docs/create-a-new-react-app.html#create-react-app
- https://github.com/facebook/create-react-app
- https://facebook.github.io/flux/
- https://github.com/facebook/flux
- https://redux.js.org/
- https://redux-saga.js.org/
Serverless API / Database / Storage
AWS
- https://aws.amazon.com/appsync/
-
AWS AppSync simplifies application development by letting you create a flexible API to securely access, manipulate, and combine data from one or more data sources. AppSync is a managed service that uses GraphQL to make it easy for applications to get exactly the data they need.
-
- https://aws.amazon.com/lambda/
- https://aws.amazon.com/dynamodb/
- https://aws.amazon.com/rds/aurora/serverless/
- https://aws.amazon.com/blogs/aws/new-data-api-for-amazon-aurora-serverless/
- https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html
- https://almirzulic.com/posts/create-serverless-aurora-cluster-with-cdk/
- https://github.com/bind-almir/cdk-aurora-serverless
- https://aws.amazon.com/blogs/aws/new-data-api-for-amazon-aurora-serverless/
- https://aws.amazon.com/step-functions/
-
AWS Step Functions lets you coordinate multiple AWS services into serverless workflows so you can build and update apps quickly.
-
- https://aws.amazon.com/eventbridge/
-
Serverless event bus that connects application data from your own apps, SaaS, and AWS services
-
Schema Registry: As your applications become more interconnected through events, you need to spend more effort in finding events and understanding their structure in order to write code to react to those events. The Amazon EventBridge schema registry stores event structure - or schema - in a shared central location and maps those schemas to code for Java, Python, and Typescript so it’s easy to use events as objects in your code.
-
- https://aws.amazon.com/app-mesh/
-
AWS App Mesh is a service mesh that provides application-level networking to make it easy for your services to communicate with each other across multiple types of compute infrastructure.
-
Fauna
- https://fauna.com/
- https://fauna.com/blog
- https://fauna.com/blog/jamstack
- https://fauna.com/pricing
- https://docs.fauna.com/fauna/current/start/graphql
- https://docs.fauna.com/fauna/current/api/graphql/
- https://fauna.com/blog/getting-started-with-graphql-part-1-importing-and-querying-your-schema
- https://fauna.com/blog/getting-started-with-graphql-part-2-relations
- https://fauna.com/blog/getting-started-with-graphql-part-3-the-unique-directive
- https://fauna.com/blog/getting-started-with-graphql-part-4-updating-your-schema
- https://fauna.com/blog
Firebase
- https://firebase.google.com/
-
A comprehensive app development platform
-
- https://firebase.google.com/pricing
- https://firebase.google.com/products
- https://firebase.google.com/products/firestore
-
Cloud Firestore is a NoSQL document database that lets you easily store, sync, and query data for your mobile and web apps - at global scale.
-
- https://firebase.google.com/products/realtime-database
-
The Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data between your users in realtime.
- https://firebase.google.com/docs/database/web/start
-
- https://firebase.google.com/docs/database/rtdb-vs-firestore
-
Choose a Database: Cloud Firestore or Realtime Database
-
Cloud Firestore is Firebase's newest database for mobile app development. It builds on the successes of the Realtime Database with a new, more intuitive data model. Cloud Firestore also features richer, faster queries and scales further than the Realtime Database.
-
Realtime Database is Firebase's original database. It's an efficient, low-latency solution for mobile apps that require synced states across clients in realtime.
-
Authentication
- https://www.npmjs.com/package/@aws-cdk/aws-cognito
- https://docs.aws.amazon.com/cdk/api/latest/docs/aws-cognito-readme.html
- https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html
- https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
- https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html
- https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
- https://github.com/aws-samples/aws-cdk-examples/issues/244
-
Cognito user pool + APIGW + Lambda
-
- https://aws-amplify.github.io/docs/js/authentication
- https://openid.net/developers/certified/
- https://github.com/panva/node-oidc-provider
- https://github.com/AKIRA-MIYAKE/serverless-oidc-provider
- http://www.passportjs.org/
- https://github.com/jaredhanson/passport
Deployment
- https://aws.amazon.com/cdk/
- https://docs.aws.amazon.com/cdk/api/latest/
- https://github.com/aws/aws-cdk
- https://almirzulic.com/posts/create-ci-cd-pipeline-with-aws-cdk/
- https://github.com/bind-almir/cdk-ci-cd-pipeline
Chat Bot: Facebook / Messenger Integration, etc
- https://developers.facebook.com/
- https://developers.facebook.com/apps/
- https://github.com/fbsamples/messenger-platform-samples
- https://developers.facebook.com/docs/graph-api
- https://developers.facebook.com/tools/explorer/
- https://developers.facebook.com/docs/messenger-platform/
- https://developers.facebook.com/docs/messenger-platform/getting-started
- https://developers.facebook.com/docs/messenger-platform/getting-started/quick-start
- https://developers.facebook.com/docs/messenger-platform/introduction/integration-components
- https://developers.facebook.com/docs/messenger-platform/guides/chat-extensions
- https://developers.facebook.com/docs/messenger-platform/webview
- https://developers.facebook.com/docs/messenger-platform/webview/extensions
- https://developers.facebook.com/docs/messenger-platform/reference/messenger-extensions-sdk/
- https://developers.facebook.com/docs/graph-api/webhooks/
- https://developers.facebook.com/docs/graph-api/webhooks/getting-started/webhooks-for-messenger
- https://developers.facebook.com/docs/messenger-platform/webhook
- https://developers.facebook.com/docs/graph-api/webhooks/getting-started/webhooks-for-messenger
- Articles
- https://tutorials.botsfloor.com/run-facebook-messenger-chat-bot-on-aws-lambda-2fa800a67d76
- https://medium.com/muhammet-arslan/develop-a-facebook-messenger-bot-via-lambda-api-gateway-c8c49457f707
- https://medium.com/@tchpnk/facebook-messenger-chat-bot-using-aws-lambda-node-js-and-promises-6a6ca503521a
- https://aws.amazon.com/lex/
-
Amazon Lex is a service for building conversational interfaces into any application using voice and text.
- https://github.com/nazreen/aws-cdk-for-lex-messenger
-
- https://github.com/pinzler/fb-messenger-bot-aws-lambda
-
Build a simple FB Messenger Bot with AWS Lambda
-
Mobile App
iOS
- Getting Started
- https://developer.apple.com/documentation/
- https://developer.apple.com/documentation/ios_ipados_release_notes
- https://developer.apple.com/documentation/xcode_release_notes
- https://developer.apple.com/documentation/swift_packages
- https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app
- https://developer.apple.com/swift/
- https://developer.apple.com/xcode/swiftui/
- https://developer.apple.com/documentation/messages#1864841
- https://developer.apple.com/icloud/cloudkit/
- https://developer.apple.com/documentation/cloudkit
Desktop App
Catalyst (macOS)
- https://developer.apple.com/documentation/xcode/creating_a_mac_version_of_your_ipad_app
Electron
- https://electronjs.org/
- https://electronjs.org/docs/tutorial/first-app
- https://github.com/electron/electron
- https://github.com/electron/electron-packager
- https://github.com/electron/electron-notarize
- https://github.com/electron/electron-osx-sign
Misc
- https://dev.to/hasurahq/the-ultimate-guide-to-handling-jwts-on-frontend-clients-graphql-252a
- https://serverless-stack.com/
- https://github.com/AnomalyInnovations/serverless-stack-com
- https://serverless-stack.com/chapters/create-a-cognito-user-pool.html
- https://serverless-stack.com/chapters/create-a-cognito-identity-pool.html
- https://serverless-stack.com/chapters/configure-aws-amplify.html
- https://serverless-stack.com/chapters/login-with-aws-cognito.html
- https://serverless-stack.com/chapters/signup-with-aws-cognito.html
- https://serverless-stack.com/chapters/configure-cognito-user-pool-in-serverless.html
- https://serverless-stack.com/chapters/configure-cognito-identity-pool-in-serverless.html
- https://serverless-stack.com/chapters/manage-environments-in-create-react-app.html
- https://create-react-app.dev/docs/adding-custom-environment-variables/
-
NODE_APP,REACT_APP_*`
-
- https://webpack.js.org/guides/environment-variables/
- https://create-react-app.dev/docs/adding-custom-environment-variables/