Giter Site home page Giter Site logo

dotfold / go-starter-kit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from olebedev/go-starter-kit

0.0 1.0 0.0 452 KB

Golang Isomorphic React/Hot Reloadable/Redux/Css-Modules Starter Kit

Makefile 4.67% JavaScript 45.68% CSS 5.83% Go 38.60% HTML 5.23%

go-starter-kit's Introduction

go-starter-kit

Join the chat at https://gitter.im/olebedev/go-starter-kit

This project contains a quick starter kit for Facebook React Single Page Apps with Golang server side render and also with a set of useful features for rapid development of efficient applications.

What it contains?

  • server side render via go-duktape
  • api requests between your react application and server side application directly via fetch polyfill for go-duktape at server side, and it is possible to process requests with user session as well
  • title, Open Graph and other domain-specific meta tags render for each page at the server and at the client
  • server side redirect
  • embedding static files into artefact via bindata
  • high performance echo framework
  • advanced cli via cli
  • Makefile based project
  • one(!) terminal window process for development
  • routing via react-router
  • ES6 & JSX via babel-loader with minimal runtime dependency footprint
  • redux as state container
  • redux-devtools
  • stylus css styles without global namespace via css-loader & css-modules
  • separate css file to avoid FOUC
  • hot reloading via react-transform & HMR
  • webpack bundle builder
  • eslint and golint rules for Makefile

Dependencies

Note that probably not works at windows.

Install

Clone the repo:

$ git clone [email protected]:olebedev/go-starter-kit.git && cd go-starter-kit

Install javascript dependencies:

$ npm i

Install Golang dependencies.

$ export GOPATH=`pwd` # the most important step, ensure that you do it
$ export GOBIN=$GOPATH/bin # optional, redefine, if it already was defined

There are two ways to do it:

  1. Traditional go get(not recommended).
$ go get ./...
$ go get github.com/jteeuwen/go-bindata/...
  1. Via revision locking tool - srlt.
    Make sure that you have srlt installed.
$ srlt r && srlt e go install {{.Name}}/...

Run development

Start dev server:

$ make serve

that's it. Open http://localhost:5001/(if you use default port) at your browser. Now you ready to start coding your awesome project.

Build

Install dependencies and just type NODE_ENV=production make build. This rule is producing webpack build and regular golang build after that. Result you can find at $GOPATH/bin.

TODO

  • migrate from react-hot-loader to react-transform-hmr
  • update react to 0.14.x
  • update react-router to 1.x
  • render final HTML markup at Golang side
  • migrate from Flummox to Redux
  • migrate from Stylus to PostCSS
  • migrate from Gin to Echo
  • improve README and write an article to describe the project

go-starter-kit's People

Contributors

olebedev avatar smd686s avatar gitter-badger avatar javiercbk avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.