Tap – A Minimal Fountain Editor (Go + Web Components)#
This repository hosts a Go-powered Fountain editor UI implemented with vanilla Web Components and server-side rendering in Go templates.
The app renders HTML previews via a Go endpoint and uses a small client bundle built with esbuild. No React/Next.js is required.
A demo server is running at https://tapapp.lol.
Authentication#
Tap uses Bluesky OAuth authentication. Enter your Bluesky handle on the home page to sign in. You will be redirected to Bluesky to authorize the app.
Export features#
- Export builds a
.fountainfile in plain text format and triggers a download. - Download PDF generates a PDF from the preview content and triggers a download
Development#
Run the web components watcher in one terminal:
npm run dev:wc
Run the Go server in another terminal:
npm run dev:go
# or manually:
# (cd server && PORT=8088 go run .)
Open the app at:
http://localhost:8088
What’s included#
web/– TypeScript sources for Web Components<tap-app>top-level orchestrator<tap-toolbar>controls (Preview toggle, Hide notes, Export)<tap-editor>textarea-based editor (MVP)<tap-preview>renders HTML from the Go/previewendpoint
server/templates/– Go HTML templatesindex.htmlrenders<tap-app>and includes/static/js/tap.js
server/static/– CSS and built JSstyles.cssscreenplay stylesjs/tap.jsbuilt bundle output
server/tap/– Go Fountain parser/renderer
Build (production bundle)#
npm run build:wc