Files
next-static-site/README.md
T
2021-04-05 13:43:59 -07:00

41 lines
2.4 KiB
Markdown

jambonz
=======
> The "bring your own everything" CPaaS
![](/public/jambonz.png)
## Deploy targets
This app can easily be deployed to multiple targets including Vercel, Netlify or AWS+circleci.
- Vercel
- [jambonz.vercel.com](https://jambonz.vercel.app)
- AWS+circleci
- Could easily be implemented as in this repo [here](https://github.com/kitajchuk/punxy#aws--circleci).
## Dev start
Clone this repository and install [yarn](https://yarnpkg.com/getting-started/install). From app root:
- `yarn install`
- Installs node packages
- `yarn dev`
- Serves local dev at [localhost:3000](http://localhost:3000)
Other packages being used prominently in this apps source code are [classnames](https://www.npmjs.com/package/classnames) and [nanoid](https://www.npmjs.com/package/nanoid#react).
## Jambonz UI library
This app is being composed in the manor of `module > component > element`, wherein a page is a module which is made up of components that are comprised of elements. We are using [Next.js](https://nextjs.org) [SASS](https://nextjs.org/learn/basics/assets-metadata-css/css-styling) located in the `styles` directory and loaded globally in [pages/_app.js](/pages/_app.js). A generally simple BEM CSS module naming convention is being used prominently. JS components are in the `components` directory. The `jambonz-ui` component consists of reusable design element components.
You can view examples of the Jambonz UI component elements on this page [here](https://jambonz.vercel.app/jambonz-ui).
## Static page data
We are using static data with [yamljs](https://www.npmjs.com/package/yamljs) and [Next.js static props](https://nextjs.org/docs/basic-features/data-fetching#getstaticprops-static-generation). Data files are located in the `data` directory. There's a JS data utility in `lib/data.js` that provides a method for "fetching" the static data for use with a Next.js pages async `getStaticProps` SSR method.
## Jambonz developer docs
The project is using [Nextra.js](https://nextra.vercel.app) which provides a stylized developer docs theme for Next.js. We are loading theme CSS styles with the `styles/_nextra.scss` partial. It is being used to hide the frontend page links from the Nextra sidebar nav as there is currently no way to do this using pure nextra config. There is a [Github issue here](https://github.com/shuding/nextra/issues/59) referring to "Page exclusion from docs".