{"id":13745663,"url":"https://github.com/barbar/vortigern","last_synced_at":"2025-05-09T06:30:59.332Z","repository":{"id":215850633,"uuid":"57024832","full_name":"barbar/vortigern","owner":"barbar","description":"A universal boilerplate for building web applications w/ TypeScript, React, Redux, Server Side Rendering and more.","archived":false,"fork":false,"pushed_at":"2020-06-13T11:11:24.000Z","size":2050,"stargazers_count":642,"open_issues_count":24,"forks_count":128,"subscribers_count":36,"default_branch":"develop","last_synced_at":"2024-11-15T19:36:35.560Z","etag":null,"topics":["boilerplate","isomorphic","react","redux","typescript","universal","vortigern","webpack"],"latest_commit_sha":null,"homepage":"https://barbar.github.io/vortigern","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/barbar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-25T08:28:28.000Z","updated_at":"2024-10-13T23:15:04.000Z","dependencies_parsed_at":"2024-02-03T22:15:21.491Z","dependency_job_id":null,"html_url":"https://github.com/barbar/vortigern","commit_stats":null,"previous_names":["barbar/vortigern"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbar%2Fvortigern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbar%2Fvortigern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbar%2Fvortigern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbar%2Fvortigern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barbar","download_url":"https://codeload.github.com/barbar/vortigern/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253205952,"owners_count":21871158,"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","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":["boilerplate","isomorphic","react","redux","typescript","universal","vortigern","webpack"],"created_at":"2024-08-03T06:00:33.925Z","updated_at":"2025-05-09T06:30:58.842Z","avatar_url":"https://github.com/barbar.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Marks","Built with TypeScript","Web Development"],"sub_categories":["Boilerplate","Web/ReactJS"],"readme":"# Vortigern\n[![Build Status](https://travis-ci.org/barbar/vortigern.svg?branch=master)](https://travis-ci.org/barbar/vortigern)\n[![Dependency Status](https://david-dm.org/barbar/vortigern.svg)]()\n[![devDependency Status](https://david-dm.org/barbar/vortigern/dev-status.svg)]()\n[![Code Climate](https://codeclimate.com/github/barbar/vortigern/badges/gpa.svg)](https://codeclimate.com/github/barbar/vortigern)\n[![GitHub issues](https://img.shields.io/github/issues/barbar/vortigern.svg)](https://github.com/barbar/vortigern/issues)\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/barbar/vortigern/develop/LICENSE)\n___\n\n\u003cimg src=\"https://barbaruploads.s3.amazonaws.com/bicoz/vortigern.png\" width=\"100%\" /\u003e\n\n**Vortigern** is our opinionated boilerplate for crafting universal web applications by using modern technologies like TypeScript, React and Redux.\n\n[![TypeScript](https://barbaruploads.s3.amazonaws.com/bicoz/typescript.png)](https://www.typescriptlang.org/) \n[![React](https://barbaruploads.s3.amazonaws.com/bicoz/react.png)](https://github.com/facebook/react) \n[![Redux](https://barbaruploads.s3.amazonaws.com/bicoz/redux.png)](https://github.com/reactjs/redux)\n\n\n## Libraries\nVortigern uses the following libraries and tools:\n\n#### Core\n- [TypeScript](https://www.typescriptlang.org/)\n- [React](https://github.com/facebook/react) \u0026 [React DOM](https://github.com/facebook/react) for views.\n- [React Router](https://github.com/reactjs/react-router) to handle in-app routing.\n- [Redux](https://github.com/reactjs/redux) for managing application state.\n- [React-Redux](https://github.com/reactjs/react-redux) to use React-Redux bindings.\n- [React-Router-Redux](https://github.com/reactjs/react-router-redux) to keep application state sync with route changes.\n\n#### Utilities\n- [Isomorphic Fetch](https://github.com/matthew-andrews/isomorphic-fetch) with [ES6-Promise](https://github.com/stefanpenner/es6-promise) for using fetch api on both client \u0026 server side.\n- [Redux Thunk](https://github.com/gaearon/redux-thunk) for dispatching async actions.\n- [Redux Connect](https://github.com/makeomatic/redux-connect) for resolving async props in react-router.\n- [React Helmet](https://github.com/nfl/react-helmet)\n- [classnames](https://github.com/JedWatson/classnames)\n\n#### Build System\n- [Webpack](https://github.com/webpack/webpack) for bundling.\n  - [Awesome TypeScript Loader](https://github.com/s-panferov/awesome-typescript-loader) as ts loader.\n  - [Babel Loader](https://github.com/babel/babel-loader) as js loader.\n  - [React Hot Loader](https://github.com/gaearon/react-hot-loader) for providing hot reload capability to our development server\n  - [Isomorphic Style Loader](https://github.com/kriasoft/isomorphic-style-loader) for loading styles on server-side.\n  - [Style Loader](https://github.com/webpack/style-loader)\n  - [CSS Loader](https://github.com/webpack/css-loader)\n  - [PostCSS Loader](https://github.com/postcss/postcss)\n    - [PostCSS cssnext](https://github.com/MoOx/postcss-cssnext)\n    - [PostCSS Assets](https://github.com/assetsjs/postcss-assets)\n  - [JSON Loader](https://github.com/webpack/json-loader)\n  - [File Loader](https://github.com/webpack/file-loader)\n  - [URL Loader](https://github.com/webpack/url-loader)\n  - [Sourcemap Loader](https://github.com/webpack/source-map-loader)\n  - [Manifest Plugin](https://github.com/danethurber/webpack-manifest-plugin)\n  - [Extract Text Plugin](https://github.com/webpack/extract-text-webpack-plugin) for exporting bundled css. \n  - [tslint Loader](https://github.com/wbuchwalter/tslint-loader) for using tslint as preloader on build process.\n  - [stylelint Loader](https://github.com/adrianhall/stylelint-loader) for using stylelint as preloader on build process.\n  - [Istanbul Instrumenter Loader](https://github.com/deepsweet/istanbul-instrumenter-loader) for using istanbul on postload process while generating code coverage reports.\n\n#### Dev \u0026 Prod Server\n- [Webpack Dev Server](https://github.com/webpack/webpack-dev-server)\n  - [Webpack Dev Middleware](https://github.com/webpack/webpack-dev-middleware)\n  - [Webpack Hot Middleware](https://github.com/webpack/webpack-hot-middleware)\n- [Express](https://github.com/expressjs/express) for running server both on client and server side.\n- [Compression](https://github.com/expressjs/compression) for gzip compression\n- [Serve Favicon](https://github.com/expressjs/serve-favicon) for serving favicon.\n\n#### Developer Experience\n- [Typings](https://github.com/typings/typings) for installing type definitions of external libraries.\n- [tslint](https://github.com/palantir/tslint) for linting TypeScript files.\n- [stylelint](https://github.com/stylelint/stylelint) for linting styles.\n- [Redux Logger](https://github.com/theaqua/redux-logger)\n- [Redux DevTools](https://github.com/gaearon/redux-devtools)\n- [Chalk](https://github.com/chalk/chalk) for colored terminal logs.\n\n#### Testing\n- [Karma](https://github.com/karma-runner/karma) as test runner with following plugins\n  - [Karma-Webpack](https://github.com/webpack/karma-webpack)\n  - [Karma-Mocha](https://github.com/karma-runner/karma-mocha)\n  - [Karma-Chai](https://github.com/xdissent/karma-chai)\n  - [Karma-Coverage](https://github.com/karma-runner/karma-coverage)\n  - [Karma-PhantomJS Launcher](https://github.com/karma-runner/karma-phantomjs-launcher)\n- [Mocha](https://github.com/mochajs/mocha) as testing framework.\n- [Chai](https://github.com/chaijs/chai) as assertion library.\n- [Enzyme](https://github.com/jquery/jquery) for rendering React Components.\n- [Fetch Mock](https://github.com/wheresrhys/fetch-mock) for testing async actions.\n- [Redux Mock Store](https://github.com/arnaudbenard/redux-mock-store) for creating mock stores.\n\n## Directory Structure\n```bash\n.\n├── build                       # Built, ready to serve app.\n├── config                      # Root folder for configurations.\n│   ├── test                    # Test configurations.\n│   ├── types                   # Global type definitions, written by us.\n│   ├── webpack                 # Webpack configurations.\n│   └── main.ts                 # Generic App configurations.\n├── node_modules                # Node Packages.\n├── src                         # Source code.\n│   ├── app                     # App folder.\n│   │ ├── components            # React Components.\n│   │ ├── containers            # React/Redux Containers.\n│   │ ├── helpers               # Helper Functions \u0026 Components.\n│   │ ├── redux                 # Redux related code aka data layer of the app.\n│   │ │   ├── modules           # Redux modules.   \n│   │ │   ├── reducers.ts       # Main reducers file to combine them.  \n│   │ │   └── store.ts          # Redux store, contains global app state.    \n│   │ └── routes.tsx            # Routes.\n│   ├── client.tsx              # Entry point for client side rendering.\n│   └── server.tsx              # Entry point for server side rendering.\n├── typings                     # Type definitions installed with typings.              \n├── .dockerignore               # Tells docker which files to ignore.\n├── .gitignore                  # Tells git which files to ignore.\n├── .stylelintrc                # Configures stylelint.\n├── Dockerfile                  # Dockerfile.\n├── favicon.ico                 # Favicon.\n├── package.json                # Package configuration.\n├── README.md                   # This file\n├── tsconfig.json               # TypeScript transpiler configuration.\n├── tslint.json                 # Configures tslint.\n└── typings.json                # Typings package configuration.\n```\n\n## Installation\n\nYou can clone from this repository or [install the latest version](https://github.com/barbar/vortigern/releases) as a zip file or a tarball. \n\n```bash\n$ git clone https://github.com/barbar/vortigern\n$ cd vortigern\n$ npm install\n```\n\n## Usage\n\nAll commands defaults to development environment. You can set `NODE_ENV` to `production` or use the shortcuts below.\n\n```bash\n# Running\n\n$ npm start # This starts the app in development mode\n\n# Starting it with the production build\n$ NODE_ENV=production npm start # or\n$ npm run start:prod\n\n# Building \n\n$ npm build # This builds the app in development mode\n\n# Commands below builds the production build\n$ NODE_ENV=production npm build # or\n$ npm run build:prod\n\n# Testing\n$ npm test\n```\n\nFor Windows users, we recommend using the shortcuts instead of setting environment variables because they work a little different on Windows.\n\n## Notes\n```bash\n# If you want install additional libraries, you can also install their typings from DefinitelyTyped\n$ typings install dt~\u003cpackage\u003e --global --save\n# or if it's located on npm\n$ typings install \u003cpackage\u003e --save\n```\n\n## Credits\n\nVortigern is released under the [MIT license](LICENSE). \n\nThe image in this README belongs to [hhvferry.com](http://www.hhvferry.com/vortscrap.html).\n\n___\n\n## [Barbar Startup Factory](https://www.barbar.com.tr/?ref=vortigern)\n\n\u003ca target=\"_blank\" href=\"https://barbar.digital/?ref=vortigern-barbar-logo\"\u003e\u003cimg src=\"https://barbaruploads.s3.amazonaws.com/bicoz/logo2x.png\" height=\"55px\" /\u003e\u003c/a\u003e\n\nWe help startups start and stay started by helping them plan, strategize, fund and execute their vision. \n\nYou can contact us at [hey@barbar.digital](mailto:hey@barbar.digital)\n\nBe sure to check out available [jobs at Barbar](https://github.com/barbar/hr).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarbar%2Fvortigern","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarbar%2Fvortigern","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarbar%2Fvortigern/lists"}