Skip to content

Desktop concepts

Work in progress

Silex Desktop is under active development. This page defines the vocabulary we have settled on. Anything not listed here is still being discussed, and the features described may not all be released yet.

Silex Desktop edits websites on your own disk. Everything beyond writing files — versioning a site, sending it to a forge, publishing it online — is done by tools you already have on your machine, not reimplemented by Silex.

Integration

An external tool Silex Desktop can use: git, a forge command line such as glab (GitLab), hut (SourceHut) or tea/fj (Forgejo), a visual git client…

Silex looks for integrations once, remembers where they are, and never assumes one is there: a website is a folder of files first, integrations add to it.

Enabled integration

An integration is only used once you allow it. Detecting a tool is not enough: Silex asks, and remembers your answer per machine. Turning one off never deletes anything — a site keeps working without it.

Action

What Silex asks for, named after the intent, never after the tool that performs it. Actions are the whole vocabulary between Silex and its integrations:

Action What Silex asks for
version Keep a version of the website as it is now
sync Send the website to its remote
deploy Publish the website online
status Tell what state the website is in
open-repo Open the website in a dedicated tool
create-repo / list-repos Create a repository, list the ones you have
auth-status Tell whether you are signed in

Silex never asks an integration to "commit", "tag" or "push": those words belong inside the integration that performs the action.

Provider

An integration that offers a given action. Several integrations can offer the same one — a site can be opened by any of the visual git clients you have installed — and an action with no provider simply does not appear.

Publication pipeline

The build steps a forge runs to turn your published files into a live website. A site owns its build steps in build.json; Silex generates the rest — the build.sh script and the forge's CI file. This is why a site published from Silex Desktop builds the same way as one published from the online version.

See Customize the build.

Website folder

One directory per website, holding its source files (website.json, pages), its published output (public/) and, when versioning is on, its history. Nothing else: a website you can copy, back up and open elsewhere.

Edit this page on GitLab