
This folder contains all backend-only code in this project. It's broken up into:
index.ts
- this is the entrypoint for this whole projectdatabase/
- this contains the code for interfacing with the app's SQLite database table
This app uses Hono has the a API framework. You can think of Hono as a replacement for ExpressJS that works in serverless environments like Val Town or Cloudflare Workers. If you come from Python or Ruby, Hono is also a lot like Flask or Sinatra, respectively.
This HTML server is responsible for serving all static assets to the browser to render the app, including HTML, JavaScript (including all client-side React), CSS, and even the favicon SVG.
In a normal server environment, you would likely use a middleware like this one to serve static files. Some frameworks or deployment platforms automatically make any content inside a public/
folder public.
However in Val Town you need to handle this yourself, and it can be suprisingly difficult to read and serve files in a Val Town Project. This template uses helper functions from @stevekrouse/utils/serve-public, which handle reading project files in a way that will work across branches and forks, automatically transpiles typescript to javascript, and attempts to handle content-types and various .tsx
vs .js
confusions.
As of this writing Val Town only supports text files, which is why the favicon is an SVG and not an .ico or any other binary image format. If you need binary file storage, check out Blob Storage.