Update readme

This commit is contained in:
snen 2021-09-29 17:22:01 -04:00
parent 79205efae3
commit c4b5278d75
1 changed files with 6 additions and 18 deletions

View File

@ -1,25 +1,13 @@
# Deno React Web Starter
# Tomecraft
This is a template repository for bootstrapping simple React SSR applications using [Deno](https://deno.land/), [Oak](https://deno.land/x/oak), [React](https://reactjs.org/), and [Firebase](https://console.firebase.google.com/u/0/).
## Why
Using Deno means being able to work with modern JS features in a direct way without needing transpilation steps. `Deno.emit()` creates a client bundle which is exposed by a simple webserver.
## Features
Quickly supports websockets connections, static file serving, and authentication with Firebase. Simply uncomment the appropriate locations in code and add your configuration variables.
This is a client for a tactical card game server. It is made using [my Deno-React-Web-Starter template repository](https://github.com/sullivansean27/deno-react-web-starter).
## Code layout
- `~/client`: any code that is compiled and shipped to the browser.
- `~/client/styles.css`: the stylesheet for the application. more could certainly be integrated here.
- `~/client/styles.css`: the stylesheet for the application.
- `~/client/App.tsx`: the entrypoint for the app, which imports everything else in the folder.
- `~/common`: modules shared between browser and server code.
- `~/common/wasm`: doesn't exist in this repository, but can be added (using e.g. [`wasm-pack`](https://github.com/rustwasm/wasm-pack)) to easily support webassembly modules in both client and server.
- other common utilities as a common import example.
- `~/server`: a simple webserver with example websocket and REST endpoints.
- `~/import_map.json`: the import map! starts with any relevant dependencies.
- `~/Procfile`: an example Procfile showing how to run the service. To convert this to any other form of script, simply trim the prefix `web:`.
Enable SSR by un-commenting the React and ReactDOMServer lines in `~/server/routes/static.tsx`.
- `~/server`: a simple webserver (and an entrypoint for client code).
- `~/import_map.json`: the import map used for both client and server code.
- these could be separated, but I prefer to avoid the maintenance cost.