Railway

Deploy typsmthng

A browser-native Typst editor with live preview

Deploy 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

More templates in this category

View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
View Template
(v1) Simple Medusa Backend
Deploy an ecommerce backend and admin using Medusa

Shahed Nasser
View Template
peppermint
Docker-compose port for peppermint.sh

HamiltonAI