# Introduction

[![Build Status](https://travis-ci.org/traveloka/soya-next.svg?branch=master)](https://travis-ci.org/traveloka/soya-next) [![Coverage Status](https://coveralls.io/repos/github/traveloka/soya-next/badge.svg?branch=master)](https://coveralls.io/github/traveloka/soya-next?branch=master)

> An opinionated configured Next.js framework.

## Packages

| Name                                                                                   | Version                                                                                                                                 | Description                                                                                                                           |
| -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| [soya-next](https://traveloka.gitbook.io/soya-next/packages/soya-next)                 | [![NPM Version](https://img.shields.io/npm/v/soya-next.svg?style=flat-square)](https://www.npmjs.com/package/soya-next)                 | A set of utility functions for React applications built on top of Next.js                                                             |
| [soya-next-cli](https://traveloka.gitbook.io/soya-next/packages/soya-next-cli)         | [![NPM Version](https://img.shields.io/npm/v/soya-next-cli.svg?style=flat-square)](https://www.npmjs.com/package/soya-next-cli)         | A CLI to help bootstrap Soya Next projects quickly                                                                                    |
| [soya-next-scripts](https://traveloka.gitbook.io/soya-next/packages/soya-next-scripts) | [![NPM Version](https://img.shields.io/npm/v/soya-next-scripts.svg?style=flat-square)](https://www.npmjs.com/package/soya-next-scripts) | A CLI which contains configuration and scripts used by [soya-next-cli](https://traveloka.gitbook.io/soya-next/packages/soya-next-cli) |
| [soya-next-server](https://traveloka.gitbook.io/soya-next/packages/soya-next-server)   | [![NPM Version](https://img.shields.io/npm/v/soya-next-server.svg?style=flat-square)](https://www.npmjs.com/package/soya-next-server)   | Production server for Soya Next                                                                                                       |

## Features

* Assets import
* Custom routing
* CSS Modules
* Gzip compression
* [Locale-specific URLs](https://support.google.com/webmasters/answer/182192?hl=en\&ref_topic=2370587#locale-specific-urls) (Subdirectories with gTLD)
* On-the-fly ESLint
* Redux (Automatic code splitting)
* SASS/SCSS
* Universal cookie
* Universal runtime environment configuration

## Quick Start Guide

This is a quick start to help you bootstrap **Soya Next** projects in no time. It should cover everything in the [Getting Started](https://traveloka.gitbook.io/soya-next/getting-started) section.

```bash
npm install -g soya-next-cli

soya-next-cli path/to/app
cd path/to/app
npm start
```

That's all! Open <http://localhost:3000> in your browser to see your app running.

## User Guide

* [Analyzing Dependencies](https://traveloka.gitbook.io/soya-next/user-guide/analyzing-dependencies)
* [Configure Redux Store](https://traveloka.gitbook.io/soya-next/user-guide/configure-redux-store)
* [Custom Babel Configuration](https://traveloka.gitbook.io/soya-next/user-guide/custom-babel-configuration)
* [Custom Document](https://traveloka.gitbook.io/soya-next/user-guide/custom-document)
* [Custom Marlint Configuration](https://traveloka.gitbook.io/soya-next/user-guide/custom-marlint-configuration)
* [Custom Routing](https://traveloka.gitbook.io/soya-next/user-guide/custom-routing)
* [Typescript Configuration](https://github.com/traveloka/soya-next/tree/a9761306b7217117b57460fad3b2ecff77d0be7d/docs/user-guide/typescript-configuration.md)
* [Universal Environment Configuration](https://traveloka.gitbook.io/soya-next/user-guide/universal-environment-configuration)

## Migration Guide

* [0.4.x to 0.5.x](https://traveloka.gitbook.io/soya-next/migration-guide/0.4.x-to-0.5.x)
* [0.5.x to 0.7.x](https://github.com/traveloka/soya-next/tree/a9761306b7217117b57460fad3b2ecff77d0be7d/docs/migration-guide/0.5.x-to-0.7.x.md)

## API Reference

Read the full API documentation [here](https://traveloka.gitbook.io/soya-next/api).

## Examples

* [Apollo](https://traveloka.gitbook.io/soya-next/examples/apollo)
* [Authentication](https://traveloka.gitbook.io/soya-next/examples/auth)
* [CSS Modules](https://traveloka.gitbook.io/soya-next/examples/css-modules)
* [CSS Modules with SCSS](https://traveloka.gitbook.io/soya-next/examples/css-modules-with-scss)
* [Custom Routes](https://traveloka.gitbook.io/soya-next/examples/custom-routes)
* [Internationalization](https://traveloka.gitbook.io/soya-next/examples/i18n)
* [Internationalization with Redux](https://traveloka.gitbook.io/soya-next/examples/i18n-with-redux)
* [Redirection](https://traveloka.gitbook.io/soya-next/examples/redirection)
* [TodoMVC](https://traveloka.gitbook.io/soya-next/examples/todomvc)
* [TypeScript](https://github.com/traveloka/soya-next/tree/a9761306b7217117b57460fad3b2ecff77d0be7d/examples/typescript/README.md)

## Contributing

Please see the [Contributing Guide](https://github.com/traveloka/soya-next/tree/a9761306b7217117b57460fad3b2ecff77d0be7d/CONTRIBUTING.md).

## License

[MIT](https://traveloka.gitbook.io/soya-next/license)
