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 OAuth authentication. Enter your Bluesky or personal AT Protocol handle to sign in. You will be redirected to your PDS (personal data server) to authorize the Tap 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://127.0.0.1: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