kosong

kosong_

Open a terminal. Write one page. Publish it. Learn what happened.

Not a website builder that hides the work. Every step leaves you with something ordinary you own: a Markdown file, a Git repository, and a static website. Delete kosong tomorrow and all three still work.

Everything local works with no account and no network

Install

curl -fsSL https://kosong.thefutureissolo.com/install.sh | sh

Piping a script into your shell deserves suspicion. This one downloads a fixed release and refuses to install anything whose checksum does not match — read it first, or install manually from a release and verify it yourself:

shasum -a 256 -c SHA256SUMS --ignore-missing

Your first page

kosong start # make a pagekosong edit # open it in your editorkosong preview # look at it, on your own computerkosong status # see where things stand

Nothing above touches the network or asks who you are.

Every command teaches one thing

CommandWhat it doesWhat it teaches
kosong startSet things up, one step at a time
kosong newCreate a pageA file is a durable object you can move
kosong editOpen your editorThe terminal opens editors; it is not one
kosong previewServe it locallyA local server is a temporary website
kosong statusReport current stateSoftware can describe itself
kosong doctorCheck your setupPrerequisites can be checked, not guessed
kosong loginSign in by email code
kosong syncKeep a private remote copy
kosong delete-accountDelete your account and its stored pageDeleting an account is not deleting your files
kosong site initMake a publishable folderGit tracks a folder's history
kosong site publishBuild and deployDeployment moves files. It is not magic
kosong site rollbackSee past versionsPublished systems change with intent

What you end up owning

ThingWhereWorks without kosong
Your pagekosong.mdAny Markdown editor
Your site<name>/An ordinary Astro project
Its history<name>/.gitOrdinary git
The built files<name>/distPlain HTML

Two things kosong will not do

It never runs a shell.

Every external tool is invoked as an executable plus separate arguments, so a ; in a name is a character, not a command. There is nosh -c anywhere in the codebase.

It cannot roll back a Cloudflare Pages deployment.

Wrangler has no command for it, and doing it through Cloudflare's API would mean holding your Cloudflare credentials — which kosong is built never to do. kosong site rollback shows your deployment history and tells you exactly where to click instead.

Read further

Security, stated plainly

kosong uses HTTPS, encryption at rest, private storage, verified-email sign-in, hashed single-use codes, short-lived access tokens, and rotating refresh tokens.

It is not end-to-end encrypted. The service operator could read a synced document. If that matters to you, do not sync — everything local works without it. SeeSECURITY.md for the full boundary.