Skip to content
Example project for creating authless comments
JavaScript CSS HTML Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.scripts full working example Jun 3, 2018
public full working example Jun 3, 2018
src
.env.local-sample full working example Jun 4, 2018
.gitignore
Dockerfile
README.md full working example Jun 4, 2018
docker-compose.yml full working example Jun 3, 2018
netlify.toml full working example Jun 3, 2018
package.json

README.md

This project is based on Create React App. (For more information about Create react App, check their full documentation.)

The main addition is a new folder: src/lambda. Each JavaScript file in there will automatically be prepared for Lambda function deployment.

This means that the src/lambda/create-comment.js function will first be built for Lambda, and then deployed to the url /.netlify/functions/create-comment.

When deployed to Netlify, both your front-end React app and back-end Lambda functions will automatically be built and deployed.

You can easily deploy this project yourself using this button:

Deploy to Netlify

Babel/webpack compilation

All functions are compiled with webpack using the Babel Loader, so you can use modern JavaScript, import npm modules, etc., without any extra setup.

Local Development

Dockerized

Note: This project is set up to use Docker and docker-compose. To build and run with Docker, rename .env.local-sample to .env.local and fill out the necessary variables. Then, simply run docker-compose up.

Notice that the CONTENTFUL_CONTENT_MANAGEMENT_ACCESS_TOKEN environment variable is not prefixed with REACT_APP_ as the others are. This is on purpose, to prevent create-react-app from exporting this variable to the front-end code.

When deploying to Netlify, remember to fill out the environment variables in Netlify's dashboard as well.

Non-dockerized

If you do not wish to use Docker, you must set the proxy.target in package.json back to http://localhost:9000 instead of http://back-end:9000, and then follow the instructions below.

  1. Clone the repository and run yarn from the root of the repo to install all dependencies.

  2. From inside the project folder, run:

yarn start:lambda

This will open a local server running at http://localhost:9000 serving your Lambda functions, updating as you make changes in the src/lambda folder.

You can then access your functions directly at http://localhost:9000/{function-name}, but to access them with the app, you'll need to start the app dev server.

  1. While the functions server is still running, open a new terminal tab and run:
yarn start

This will start the normal create-react-app dev server and open your app at http://localhost:3000.

Local in-app requests to the relative path /.netlify/functions/* will automatically be proxied to the local functions dev server.

You can’t perform that action at this time.