<commit_before># next-boilerplate
A modern universal boilerplate for React applications using Next.js.

### Warning

This boilerplate is in heavy development. Please keep this in mind as you evaluate this repository and read the following paragraphs.

### Table of Contents

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<!-- https://github.com/thlorenz/doctoc -->

- [Conventions](#conventions)
  - [Feature-based modules](#feature-based-modules)
    - [Actions and Reducers](#actions-and-reducers)
    - [Importing](#importing)
    - [Exporting](#exporting)
  - [Container-Component model](#container-component-model)
    - [Number of files](#number-of-files)
    - [Example](#example)
      - [`containers/Counter.js`](#containerscounterjs)
      - [`components/Counter.js`](#componentscounterjs)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Conventions

As per Next.js convention, everything starts at the `pages` directory. Beyond this (and other default conventions), we have decided to add some additional conventions to improve the developer experience.

## Feature-based modules

A module is just a folder underneath the `modules` directory.

The most important thing to remember is: **Each feature of the app should reside in its own module.**
<commit_msg>add module section to README<commit_after># next-boilerplate
A modern universal boilerplate for React applications using Next.js.

### Warning

This boilerplate is in heavy development. Please keep this in mind as you evaluate this repository and read the following paragraphs.

### Table of Contents

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<!-- https://github.com/thlorenz/doctoc -->

- [Conventions](#conventions)
  - [Feature-based modules](#feature-based-modules)
    - [Actions and Reducers](#actions-and-reducers)
    - [Importing](#importing)
    - [Exporting](#exporting)
  - [Container-Component model](#container-component-model)
    - [Number of files](#number-of-files)
    - [Example](#example)
      - [`containers/Counter.js`](#containerscounterjs)
      - [`components/Counter.js`](#componentscounterjs)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Modules

There are currently four modules in this boilerplate example:

* `core` — This module holds a simple string variable in order to demonstrate importing from a module. See `index.js` under the `pages` directory.
* `redux-config` — This module holds the internal logic for setting up Redux, it is also where all the reducers and initial app states are combined. See the `counter.js` and `todoapp.js` pages for an example of a Redux-enabled "page".
* `counter` — This module demonstrates an increment/decrement counter that interfaces with Redux with its own actions, reducers, and initial state.
* `todoapp` — This module demonstrates a simple todo app with all of the things that the `counter` module demonstrates, but with more complex containers and components.

# Conventions

As per Next.js convention, everything starts at the `pages` directory. Beyond this (and other default conventions), we have decided to add some additional conventions to improve the developer experience.

## Feature-based modules

A module is just a folder underneath the `modules` directory.

The most important thing to remember is: **Each feature of the app should reside in its own module.**

{'fraction_non_alphanumeric': 0.09714127116291979, 'fraction_numerical': 0.0, 'mean_word_length': 4.253644314868804, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '431859', 'n_tokens_mistral': 979, 'n_tokens_neox': 911, 'n_words': 413}