Files
artcraft/README.md
T

123 lines
3.4 KiB
Markdown

storyteller-frontend
====================
This repository is a frontend [monorepo](https://en.wikipedia.org/wiki/Monorepo), containing all of our websites
and shared library code. Each website can be built and run independently of one another, but they share the same
API backend.
Here are the websites contained:
- [FakeYou.com](https://fakeyou.com), our social deepfaking website
- [storyteller.io](https://storyteller.io), our investor relations website and eventual home of our production software
- [power.stream](https://power.stream), our Twitch TTS platform
- [dash.power.stream](https://dash.power.stream), a subdomain for the dashboard.
- [obs.power.stream](https://obs.power.stream), a subdomain for streamers to integrate with OBS.
Here are some static websites contained:
- [FakeYou API Docs](https://docs.fakeyou.com), API documentation for the core TTS feature. This does not document our complete API.
- [the.storyteller.company](https://the.storyteller.company), DEPRECATED investor website. Used to get into *Founder Friendly Labs*.
TODO: In the future, it will be worth updating this structure to match Netlify's recommended monorepo practices:
https://docs.netlify.com/configure-builds/monorepos/
Development
-----------
### Development environment setup
```
# Install Yarn if not present (Linux/Mac)
sudo npm install --global yarn
# We might need a newer node (Linux/Mac)
sudo install n -g
sudo n stable
# Install project deps (Linux/Mac)
yarn install
# Start one or more of the several frontends (Linux/Mac)
yarn start-fakeyou
yarn start-storyteller-home
```
### Develop locally without CORS:
Launch Chrome without CORS enforcement, which will allow targeting against FakeYou.com's API directly:
```
chromium-browser --disable-web-security --user-data-dir=~/chrome
```
Or Mac,
```
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir=~/chrome
```
### Monorepo design
The React monorepo build pattern we're using is based on
[this blog post](https://medium.com/geekculture/setting-up-monorepo-with-create-react-app-cb2cfa763b96),
which while lacking in some respects, still works for our purposes.
Library code is exported in the library's index.tsx (not very pretty)
### Good Code Examples
* `storyteller/src/pages/tts_configs/TtsConfigsEditRulePage.tsx` - Tree of components that handle a very complicated update API
Site-specific docs
------------------
### API Documentation Site
docs.fakeyou.com is generated from `./docs` using [Docsify](https://docsify.js.org/).
To run and test locally,
```bash
sudo npm i docsify-cli -g
docsify serve docs
```
Deployment
----------
Our websites are deployed on Netlify.
### Netlify notes
The `.node-version` file controls which version of node Netlify uses to build!
Design and brand notes
----------------------
### FakeYou design / brand
FakeYou (formerly vo.codes) uses the following:
* Font: fugaz one, 110, #209CEE
* Favicon: https://favicon.io/favicon-generator/
Social icons are paid from the subscription service [FlatIcon](https://www.flaticon.com),
and in particular [this pack](https://www.flaticon.com/packs/social-logo-1)
Video thumbnails are generated with [https://ezgif.com/](ezgif) at the following settings:
* webp, 500x300px (~100kb each)
Reverse clips are generated with ffmpeg:
```
ffmpeg -i input.mp4 -vf reverse reversed.mp4
```
If node becomes a zombie process and you want to find/kill it, `ps aux | grep node`.