A simple tactical card game.
Go to file
2021-09-23 23:38:12 -04:00
.vscode Initial commit 2021-09-23 22:37:47 -04:00
assets Setup intro page + initialize repo 2021-09-23 23:38:12 -04:00
client Setup intro page + initialize repo 2021-09-23 23:38:12 -04:00
common Initial commit 2021-09-23 22:37:47 -04:00
server Setup intro page + initialize repo 2021-09-23 23:38:12 -04:00
.gitignore Initial commit 2021-09-23 22:37:47 -04:00
import_map.json Initial commit 2021-09-23 22:37:47 -04:00
Procfile Initial commit 2021-09-23 22:37:47 -04:00
README.md Initial commit 2021-09-23 22:37:47 -04:00
tsconfig.json Initial commit 2021-09-23 22:37:47 -04:00

Deno React Web Starter

This is a template repository for bootstrapping simple React SSR applications using Deno, Oak, React, and Firebase.

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.

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/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) 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.