Optional packages

A TinyCld install ships with six apps: Mail, Calendar, Contacts, Drive, Text, and Calc. Everything else is an optional package — the same kind of package those six are, just not included in the image by default. You add one from the app, the server rebuilds itself with the package compiled in, and it appears in the sidebar for everyone.

Adding a package

Only the owner can add or remove packages. That is enforced on the server, not just hidden in the UI: installing a package changes what the whole deployment runs, which is a step above ordinary administration.

  1. Open Settings → Packages. The list shows every package the deployment knows about, with an availability toggle and a version picker on each row.
  2. Press Install package. In the Package source field, enter the package’s npm name, a version spec, or a git source — for Boards, github:tinycld/boards. Add #v0.3.0 (or any release tag) to pin a version; without a tag you get the latest release.
  3. Confirm. The server clones the package, rebuilds, runs the package’s migrations, and restarts. Progress streams into the dialog; the app reloads when it comes back up.

A package outside the official @tinycld/ scope shows an extra warning before it installs. Its server code runs in-process with full access to your data, so treat installing one the way you would treat running any code on your server. The warning is advisory — the judgment is yours.

If a build fails, or the rebuilt server does not come up healthy, the install aborts and the deployment rolls back to the build that was running before. Nothing you had is lost.

Disabling a package (the toggle on its row) hides it from everyone without uninstalling it. Uninstalling removes its code from the build but does not delete its data: reinstalling the package restores everything.

Later versions show up in the row’s version picker — a git package tracks its repository’s release tags. Stage the change, check the compatibility verdict, and press Apply. See the in-app help topic Package versions for how upgrades, downgrades, and the TinyCld Base row work.

Boards

Kanban boards for tracking work across lists. Boards is a full package in the same repository family as Mail and Drive — it joins search, automation rules, the calendar, notifications, and the command line like the built-in apps do.

Source: github:tinycld/boards · Sidebar shortcut: t then b · Settings: Settings → Boards → GitHub

What you get

After installing

Boards has nineteen in-app help topics. Open the sidebar’s Help entry in the Boards app, or press ? anywhere, to read them. Attaching GitHub repositories happens in the Boards entry under Settings; sharing, embedding, sprints, and WIP limits live in each board’s menu.

For developers

In a development workspace an optional package is just another member: clone it alongside the others and reinstall at the root.

cd ~/code/tinycld
git clone git@github.com:tinycld/boards.git
pnpm install            # links the member + reruns the generator
cd tinycld && pnpm run dev

npx @tinycld/bootstrap@latest --assemble-only --with boards does the same once the bootstrap release you are using lists boards as a known feature. Everything in Adding a package applies.

To make your own optional package, see Creating a package. A package installed from a git URL needs a manifest.ts at its root, release tags for the version picker, and a peerVersions entry naming the core range it supports so the compatibility check can protect the deployment.