Deploy typsmthng
A browser-native Typst editor with live preview
typsmthng
Just deployed
Deploy and Host typsmthng on Railway
typsmthng is a browser-native Typst editor with live preview, built entirely on WebAssembly. It compiles Typst markup to SVG directly in the browser with no server-side processing. Features include multi-file project management, IndexedDB persistence, PDF export, zip import/export, Vim mode, and PWA installability.
About Hosting typsmthng
typsmthng is a static single-page application built with React 19, TypeScript, and Vite 7. Deploying it involves running bun install and bun run build to produce a production bundle, then serving the output from the dist directory as static files. The build includes large .wasm artifacts (the Typst compiler) which are expected and necessary for in-browser compilation. Railway can serve this as a static site or via a lightweight HTTP server like Caddy. No database, backend API, or external services are required — all compilation and storage happen client-side via WebAssembly and IndexedDB.
Common Use Cases
- Self-hosting a privacy-first, local-only Typst editor for teams or individuals who don't want to use Typst's official cloud editor
- Providing a collaborative writing environment for academic or technical document authoring without vendor lock-in
- Running a branded or customized Typst editing experience on your own domain with PWA support for offline use
Dependencies for typsmthng Hosting
- Bun 1.3+ (build-time only)
- Node.js-compatible runtime or static file server (for serving the production build)
Deployment Dependencies
- Typst — the modern markup-based typesetting system that typsmthng compiles in-browser
- typst.ts — the WebAssembly binding used for in-browser Typst compilation
- Vite — the build tool that produces the production bundle
- CodeMirror 6 — the code editor component powering the editing experience
Implementation Details
The Nixpacks or Dockerfile build step should run:
bun install
bun run build
Then serve the dist/ directory as static files. A minimal Dockerfile approach:
FROM oven/bun:1 AS build
WORKDIR /app
COPY . .
RUN bun install && bun run build
FROM caddy:alpine
COPY --from=build /app/dist /srv
COPY <
Template Content
typsmthng
chinpeerapat/typsmthng