This is a super slim starter kit for an app with a Golang backend (in the backend directory) and a React-based frontend (in the frontend) directory. In a nutshell:
- Your frontend is a React app that is bundled into a single file (
bundle.js). - You put your frontend code in the
frontenddirectory. This mostly means adding componets and other stuff to thecomponentsdirectory. - The
npm run startcommand will use watchify + browserify + reactify to create a singlebundle.jsfile, which is stored inbackend/public - The Golang backend is in the
backenddirectory.ginis used to do live recompile. - The Golang server uses
net/httpto serve the contents ofbackend/publicas a static site. Theindexfile in this directory loads thebundle.jsapp generated by your frontend.
To use it, you'll need:
npmfor package management- A Golang dev environment
- gin
First, clone it down to your machine (duh!) and cd into your new directory. Then:
npm install
npm run start
View the app at http://localhost:3000.
This will start a dev server with live reload so that you can edit your go code in the backend and your React code in frontend. gin handles reload for Golang and watchify handles it for React. This is all handled using npm as a build tool:
"scripts": {
"start": "npm run frontend & npm run backend",
"frontend": "watchify -o backend/public/bundle.js -v -d frontend/main.js",
"backend": "cd backend; gin"
},