{"id":13500442,"url":"https://github.com/olebedev/go-starter-kit","last_synced_at":"2026-03-20T00:01:28.796Z","repository":{"id":33721014,"uuid":"37374972","full_name":"olebedev/go-starter-kit","owner":"olebedev","description":"[abandoned] Golang isomorphic react/hot reloadable/redux/css-modules/SSR  starter kit","archived":true,"fork":false,"pushed_at":"2018-03-05T19:51:28.000Z","size":11129,"stargazers_count":2804,"open_issues_count":17,"forks_count":354,"subscribers_count":96,"default_branch":"master","last_synced_at":"2025-09-19T23:09:06.153Z","etag":null,"topics":["browser","components","golang","isomorphic","react","redux","server-side-rendering","universal"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olebedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-13T14:43:53.000Z","updated_at":"2025-08-27T13:22:36.000Z","dependencies_parsed_at":"2022-08-28T18:53:28.604Z","dependency_job_id":null,"html_url":"https://github.com/olebedev/go-starter-kit","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/olebedev/go-starter-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fgo-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fgo-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fgo-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fgo-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olebedev","download_url":"https://codeload.github.com/olebedev/go-starter-kit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fgo-starter-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276106024,"owners_count":25586190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","components","golang","isomorphic","react","redux","server-side-rendering","universal"],"created_at":"2024-07-31T22:01:01.288Z","updated_at":"2025-09-30T05:31:31.581Z","avatar_url":"https://github.com/olebedev.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# go-starter-kit [![wercker status](https://app.wercker.com/status/cd5a782c425b1feb06844dcc701e528c/s/master \"wercker status\")](https://app.wercker.com/project/bykey/cd5a782c425b1feb06844dcc701e528c) [![Join the chat at https://gitter.im/olebedev/go-starter-kit](https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000\u0026style=plastic)](https://gitter.im/olebedev/go-starter-kit?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n\u003e This project contains a quick starter kit for **Facebook React** Single Page Apps with **Golang** server side render via goja javascript engine, implemented in pure Golang and also with a set of useful features for rapid development of efficient applications.\n\n## What it contains?\n\n* server side render via [goja](https://github.com/dop251/goja)\n* api requests between your react application and server side application directly  via [fetch polyfill](https://github.com/olebedev/gojax/tree/master/fetch)\n* title, Open Graph and other domain-specific meta tags render for each page at the server and at the client\n* server side redirect\n* embedding static files into artefact via bindata\n* high performance [echo](https://github.com/labstack/echo) framework\n* advanced cli via [cli](https://github.com/codegangsta/cli)\n* Makefile based project\n* one(!) terminal window process for development\n* routing via [react-router](https://github.com/reactjs/react-router)\n* ES6 \u0026 JSX via [babel-loader](https://github.com/babel/babel-loader) with minimal runtime dependency footprint\n* [redux](https://rackt.org/redux/) as state container\n* [redux-devtools](https://github.com/gaearon/redux-devtools)\n* css styles without global namespace via PostCSS, [css-loader](https://github.com/webpack/css-loader) \u0026 css-modules\n* separate css file to avoid FOUC\n* hot reloading via [react-transform](https://github.com/gaearon/babel-plugin-react-transform) \u0026 [HMR](http://webpack.github.io/docs/hot-module-replacement.html)\n* webpack bundle builder\n* eslint and golint rules for Makefile\n\n## Workflow dependencies\n\n* [golang](https://golang.org/)\n* [node.js](https://nodejs.org/) with [yarn](https://yarnpkg.com)\n* [GNU make](https://www.gnu.org/software/make/)\n\nNote that probably not works at windows.\n\n## Project structure\n\n##### The server's entry point\n```\n$ tree server\nserver\n├── api.go\n├── app.go\n├── bindata.go \u003c-- this file is gitignored, it will appear at compile time\n├── conf.go\n├── data\n│   └── templates\n│       └── react.html\n├── main.go \u003c-- main function declared here\n├── react.go\n└── utils.go\n```\n\nThe `./server/` is flat golang package.\n\n##### The client's entry point\n\nIt's simple React application\n\n```\n$ tree client\nclient\n├── actions.js\n├── components\n│   ├── app\n│   │   ├── favicon.ico\n│   │   ├── index.js\n│   │   └── styles.css\n│   ├── homepage\n│   │   ├── index.js\n│   │   └── styles.css\n│   ├── not-found\n│   │   ├── index.js\n│   │   └── styles.css\n│   └── usage\n│       ├── index.js\n│       └── styles.css\n├── css\n│   ├── funcs.js\n│   ├── global.css\n│   ├── index.js\n│   └── vars.js\n├── index.js \u003c-- main function declared here\n├── reducers.js\n├── router\n│   ├── index.js\n│   ├── routes.js\n│   └── toString.js\n└── store.js\n```\n\nThe client app will be compiled into `server/data/static/build/`.  Then it will be embedded into go package via _go-bindata_. After that the package will be compiled into binary.\n\n**Convention**: javascript app should declare [_main_](https://github.com/olebedev/go-starter-kit/blob/master/client/index.js#L4) function right in the global namespace. It will used to render the app at the server side.\n\n## Install\n\nClone the repo:\n\n```\n$ git clone git@github.com:olebedev/go-starter-kit.git $GOPATH/src/github.com/\u003cusername\u003e/\u003cproject\u003e\n$ cd $GOPATH/src/github.com/\u003cusername\u003e/\u003cproject\u003e\n```\n\nInstall dependencies:\n\n```\n$ make install\n```\n\n## Run development\n\nStart dev server:\n\n```\n$ make serve\n```\n\nthat's it. Open [http://localhost:5001/](http://localhost:5001/)(if you use default port) at your browser. Now you ready to start coding your awesome project.\n\n## Build\n\nInstall dependencies and 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`. Note that the binary will be named **as the current project directory**.\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folebedev%2Fgo-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folebedev%2Fgo-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folebedev%2Fgo-starter-kit/lists"}