next13-starter
Version:
Start a Next13 Zustand TypeScript project in few second!
94 lines (70 loc) โข 2.31 kB
Markdown
# Ryan's Next13 Awesome Starter



## Features
- [x] โ๏ธ Small & Fast Bundler (Turbo)
- [x] ๐๏ธ Typed Programming (Typescript)
- [x] ๐งฉ SSR & Page Transition (Next13)
- [x] ๐ Simple Store (Zustand)
- [x] ๐ Code Formatter (ESLint Airbnb & Prettier)
- [x] ๐งต Built-in Component & Layout
- [x] ๐ฐ Handle Page to Middleware
- [x] โจ Setting Reset Style
- [x] โก๏ธ Setting Mixin Style
- [x] ๐ Absolute Path
- [x] ๐ซ Page SEO
- [ ] ๐ช Dark Mode
- [ ] ๐ฑ Check Device
## Frameworks
- **Bundler** : Turbo
- **SSR** : Next13
- **Core** : React18
- **Store** : Zustand
## Code Structure
- **Static(public)**
- **Root(app)** <br/>
- โฃ **components** - atomic stateless components <br/>
- โฃ **config** - configure <br/>
- โฃ **constants** - static data <br/>
- โฃ **containers** - stateful components <br/>
- โฃ **interface** - interfaces <br/>
- โฃ **libs** - store, hooks, utils <br/>
- โฃ **styles** - style set<br/>
## Getting Started
### 1) Installation
```shell
npx next13-starter my-project
cd my-project
```
### 2) Run Project
```shell
npm run dev
```
### 3) Run Deploy
```shell
npm run build
```
## Using with Store
```javascript
// user store
import { useDataStore } from '@store/index';
const { data, setData } = useStore();
```
## Using with Mixin
```javascript
// use mixin
import { flexSet, boxSet, colorSet, backgroundSet, fontSet } from '@styles/mixin';
const Style = styled.div`
// flex set(justify-content, align-items, flex-direction)
${() => theme.flexSet('center', 'center', 'column')};
// box set(width, height, border-radius)
${() => theme.boxSet('00px', '00px', '00px')};
// color set(color, background-color)
${() => theme.colorSet('white', 'black')};
// background set(url, object-fit)
${() => theme.backgroundSet('URL','contain')};
// font set(font-size, font-weight, line-height)
${() => theme.fontSet(00, 000, 00)};
`
```