# 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](/soya-next/packages/soya-next.md)                 | [![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](/soya-next/packages/soya-next-cli.md)         | [![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](/soya-next/packages/soya-next-scripts.md) | [![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](/soya-next/packages/soya-next-cli.md) |
| [soya-next-server](/soya-next/packages/soya-next-server.md)   | [![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](/soya-next/getting-started.md) 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](/soya-next/user-guide/analyzing-dependencies.md)
* [Configure Redux Store](/soya-next/user-guide/configure-redux-store.md)
* [Custom Babel Configuration](/soya-next/user-guide/custom-babel-configuration.md)
* [Custom Document](/soya-next/user-guide/custom-document.md)
* [Custom Marlint Configuration](/soya-next/user-guide/custom-marlint-configuration.md)
* [Custom Routing](/soya-next/user-guide/custom-routing.md)
* [Typescript Configuration](https://github.com/traveloka/soya-next/tree/a9761306b7217117b57460fad3b2ecff77d0be7d/docs/user-guide/typescript-configuration.md)
* [Universal Environment Configuration](/soya-next/user-guide/universal-environment-configuration.md)

## Migration Guide

* [0.4.x to 0.5.x](/soya-next/migration-guide/0.4.x-to-0.5.x.md)
* [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](/soya-next/api.md).

## Examples

* [Apollo](/soya-next/examples/apollo.md)
* [Authentication](/soya-next/examples/auth.md)
* [CSS Modules](/soya-next/examples/css-modules.md)
* [CSS Modules with SCSS](/soya-next/examples/css-modules-with-scss.md)
* [Custom Routes](/soya-next/examples/custom-routes.md)
* [Internationalization](/soya-next/examples/i18n.md)
* [Internationalization with Redux](/soya-next/examples/i18n-with-redux.md)
* [Redirection](/soya-next/examples/redirection.md)
* [TodoMVC](/soya-next/examples/todomvc.md)
* [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](/soya-next/license.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://traveloka.gitbook.io/soya-next/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
