Roman Frank · Belgrade, Serbia

Co-Founder & Lead Full Stack Developer at Static.app

I build static website hosting. Upload a folder, get a live URL with SSL. No build config, nothing to debug at midnight. I work on the deploy pipeline, the API, the desktop sync app, the GitHub Action, and the MCP server that lets AI agents publish sites directly.

I write the technical guides at static.app/guides on DNS, SSL, framework deploys, and site performance.

01 / Work

What I build and run

Static.app Co-founder · since 2019 Main work

Static hosting looks simple from the outside. The hard parts are issuing and renewing certificates at scale, handling DNS on domains you don't control, and making a deploy atomic so nobody ever loads half a site.

You upload a folder or a ZIP and get a live URL with SSL and a free domain. No build step, no pipeline to configure. I work across the stack that holds that up:

  • Deploy pipeline and REST API
  • Code editor and media library
  • Desktop sync app for macOS and Windows
  • GitHub Action for deploy-on-push
  • MCP server, so AI agents publish and update sites directly
  • static-form: turns an existing HTML form into a working endpoint with one attribute and no backend
  • Teams and workspaces, webhooks, short links, password-protected pages, analytics

Static.app Read the guides

Writing. Domains and DNS, SSL, deploying framework builds, collecting form submissions without a backend, site performance, and hosting output from AI builders like Claude, v0, and Lovable. Nothing goes up that I haven't built.
Pocket Alert pocketalert.app

Sends push notifications from your scripts, cron jobs, and CI to your phone in under a second.

  • REST API and webhooks
  • Native iOS and Android apps
  • Single-binary CLI
  • Delivery tracking

Pocket Alert

Revayo Translate macOS 14+ · $14.99 once

A native Mac app for translating into 112 languages with whatever model you want behind it.

  • Swap OpenAI for Claude, or a frontier model for a small fast one, mid-sentence and without a restart
  • OpenRouter, OpenAI, Claude, a local Ollama, or any OpenAI-compatible endpoint
  • One key per provider, stored in the Keychain. No account, no subscription
  • Auto-detects the source, translates on ⌘↩ or as you type
  • Logs prompt and completion tokens per translation, and what they cost

Revayo Translate

Thrustmaster T300RS driver macOS · Apple Silicon

A userspace driver for the T300RS wheel on Apple Silicon. 16-bit steering, force feedback, 40 to 1080 degrees of range. Written because nothing else worked.

Source on GitHub

02 / Tools

Small utilities, free, no signup

Things I needed once and kept. They run entirely in the browser.

Matrix Designer
Draw a grid, get the array Pixel layouts for LED matrix displays. Toggle cells, pick a preset, copy a JS array straight into an Arduino or Raspberry Pi sketch.
Color Picker
RGB values that survive an LED panel 54 colors that stay readable on a Waveshare P2.5 64×32 and similar panels, with a live preview and 0x output.
Grafana Calculator
Units to raw values for alert thresholds Grafana wants bytes. You think in gigabytes. This converts between the two, plus percentages of a total, so a threshold lands where you meant it.

03 / Contact

Say hello

The form goes straight to my inbox. For anything work-related, LinkedIn works too.

Message Goes straight to my inbox
Thanks, message sent