<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>SACRVM — Blog</title>
  <link href="https://sacrvm.dev/blog/feed.xml" rel="self"/>
  <link href="https://sacrvm.dev/blog/"/>
  <id>https://sacrvm.dev/blog/</id>
  <author><name>SACRVM</name></author>
  <updated>2026-08-28T00:00:00Z</updated>
  <entry>
    <title>SACRVM APPKIT — the kit, a desktop, and two apps to prove it</title>
    <link href="https://sacrvm.dev/blog/2026-08-28-sacrvm-appkit.html"/>
    <id>https://sacrvm.dev/blog/2026-08-28-sacrvm-appkit.html</id>
    <updated>2026-08-28T00:00:00Z</updated>
    <summary>A zero-dependency HTML UI kit — forty-one web components, one-variable theming, install-by-URL apps — with a live desktop at desktop.sacrvm.dev to try in the browser.</summary>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://github.com/SACRVM/sacrvm-appkit&quot;&gt;SACRVM APPKIT&lt;/a&gt; is a UI kit for the web with no build step: some forty &lt;code&gt;sac-*&lt;/code&gt; web components, a theming engine that derives every colour from one &lt;code&gt;--accent&lt;/code&gt; variable, and an app system that installs apps by URL. You vendor one folder of plain files, link one stylesheet and one script, and write HTML. No framework, no bundler, no node_modules — F5 is the toolchain.&lt;/p&gt;
&lt;h2&gt;Try it before reading on&lt;/h2&gt;
&lt;p&gt;The proof runs at &lt;a href=&quot;https://desktop.sacrvm.dev/&quot;&gt;desktop.sacrvm.dev&lt;/a&gt;: a desktop in your browser. It is a &lt;strong&gt;host, not an app&lt;/strong&gt; — it owns the home screen and the bare stage, and every app on it is installed by URL from somebody else&#x27;s repository. Reading a manifest and running code are two separate steps: the desktop shows what it found, names the origin on every tile, and asks before anything executes. The app list lives in your browser&#x27;s localStorage — no server, no account.&lt;/p&gt;
&lt;p&gt;On your first visit the desktop offers its two reference apps, so the stage does not start empty:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/SACRVM/sacrvm-calculator&quot;&gt;Calculator&lt;/a&gt; — a &lt;code&gt;window&lt;/code&gt; app: one custom element, one classic script, and a proper two-register pocket-calculator brain in ~400 dependency-free lines.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/SACRVM/sacrvm-notes&quot;&gt;Notes&lt;/a&gt; — a &lt;code&gt;view&lt;/code&gt; app: it draws its own chrome, the note list is the rail, and every note gets its own link.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Their repos are worked examples — see it done properly. To start your own app, don&#x27;t strip a calculator down to a skeleton; there is a starting point built for the job. Zero to running on the desktop is three steps:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Use this template&lt;/strong&gt; on &lt;a href=&quot;https://github.com/SACRVM/sacrvm-app-template&quot;&gt;sacrvm-app-template&lt;/a&gt; — a clean repo with the right shape from commit one: &lt;code&gt;app.json&lt;/code&gt;, &lt;code&gt;app.js&lt;/code&gt;, &lt;code&gt;app.css&lt;/code&gt;, a vendored &lt;code&gt;kit/&lt;/code&gt;. Rename five strings.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Enable GitHub Pages&lt;/strong&gt; — now your app has a URL.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Hand out the link&lt;/strong&gt; — &lt;code&gt;https://desktop.sacrvm.dev/?install=&amp;lt;your-pages-url&amp;gt;&lt;/code&gt; runs the ordinary confirm flow, and your app is on the desktop.&lt;/li&gt;&lt;/ol&gt;
&lt;h2&gt;The kit itself&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Two files.&lt;/strong&gt; &lt;code&gt;kit/css/ui.css&lt;/code&gt; carries the design tokens and the global stylesheet, &lt;code&gt;kit/js/all.js&lt;/code&gt; carries every component. The &lt;code&gt;kit/&lt;/code&gt; folder is vendored verbatim; &lt;code&gt;kit/VERSION&lt;/code&gt; says which release you hold.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The components.&lt;/strong&gt; Floating draggable windows, a nav ribbon with burger panel, sidebar and split workspace layouts, dialogs, menus, toasts, tooltips, tabs — and form controls down to a colour picker and a date field.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Seed-derived theming.&lt;/strong&gt; Light, dark and auto via &lt;code&gt;data-theme&lt;/code&gt;; every colour is &lt;code&gt;color-mix()&lt;/code&gt;-derived from one &lt;code&gt;--accent&lt;/code&gt;. An app re-themes from a single variable, at runtime, with no build.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;A runtime, not just widgets.&lt;/strong&gt; &lt;code&gt;window.sac.*&lt;/code&gt; brings the router, the dialog and toast services, a Ctrl-K command palette, sandboxed storage, and &lt;code&gt;sac.apps&lt;/code&gt; — the install-by-URL system the desktop is built on.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Scaffolds included.&lt;/strong&gt; &lt;code&gt;kit/templates/&lt;/code&gt; ships complete app skeletons and page-level scaffolds — the folder of plain files contains its own starting points.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;No build step, on purpose&lt;/h2&gt;
&lt;p&gt;Vendoring is the whole upgrade story: delete &lt;code&gt;kit/&lt;/code&gt;, unzip the new release, F5. The kit ships as a ZIP of plain files from &lt;a href=&quot;https://github.com/SACRVM/sacrvm-appkit/releases&quot;&gt;GitHub Releases&lt;/a&gt;, MIT licensed. Nothing is transpiled, nothing is locked — what you commit is what runs.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The style guide with every token and component lives in the &lt;a href=&quot;https://github.com/SACRVM/sacrvm-appkit&quot;&gt;appkit repo&lt;/a&gt;; the desktop&#x27;s long-form &quot;How this works&quot; is at &lt;a href=&quot;https://desktop.sacrvm.dev/how.html&quot;&gt;desktop.sacrvm.dev/how.html&lt;/a&gt;. Feedback and bug reports to the &lt;a href=&quot;https://github.com/SACRVM/sacrvm-appkit/issues&quot;&gt;issue tracker&lt;/a&gt; or &lt;a href=&quot;mailto:mail@sacrvm.dev&quot;&gt;mail@sacrvm.dev&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;F5 is the toolchain.&lt;/em&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>JUST PLAY 0.6.0 beta — The Library</title>
    <link href="https://sacrvm.dev/blog/2026-08-15-just-play-0-6-0-beta.html"/>
    <id>https://sacrvm.dev/blog/2026-08-15-just-play-0-6-0-beta.html</id>
    <updated>2026-08-15T00:00:00Z</updated>
    <summary>JUST TAG ships — multi-file tag editing, pattern renaming, previewed file operations. Plus the indexed Pre-Cue Finder and one shared track table.</summary>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://just.sacrvm.dev/&quot;&gt;JUST PLAY&lt;/a&gt; is the music player for DJs and music lovers. Drop tracks in, double-click to play. Camelot key, BPM and energy detected on the spot — no library to build, no sign-in, no nag.&lt;/p&gt;
&lt;h2&gt;JUST TAG ships&lt;/h2&gt;
&lt;p&gt;The tag editor is packaged, installed and on the Start menu for the first time. It browses the disk, not a library — the tool for a download that just landed somewhere no index has seen.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Multi-file editing, a tick per field. Fields the selection disagrees on say &lt;em&gt;different values&lt;/em&gt;, so nothing is flattened by accident.&lt;/li&gt;&lt;li&gt;&lt;code&gt;%artist% - %title%&lt;/code&gt; builds a file name from tags, or reads tags out of a name. Both directions, one language.&lt;/li&gt;&lt;li&gt;Move, copy and delete, every one previewed. There is no overwrite, ever — a taken name is a collision, and the answer is &quot;leave both alone&quot; or &quot;keep both&quot;.&lt;/li&gt;&lt;li&gt;Search that reads as a sentence: sixteen fields, seven comparisons, including &lt;em&gt;is empty&lt;/em&gt;. &quot;Genre is empty&quot; is the one that finds the damage.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Also in 0.6&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;The Pre-Cue Finder gained the index. Folders paint instantly and verify behind you, and you can filter across every playlist below a folder.&lt;/li&gt;&lt;li&gt;One track table across queue, finder and JUST TAG — same rows, same widths, sized to what is actually in them.&lt;/li&gt;&lt;li&gt;JUST STREAM shows the listener count, with no admin password stored.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Still pre-1.0&lt;/h2&gt;
&lt;p&gt;What is not done, said up front:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Nothing watches your library folder yet. The index catches up when you press Scan.&lt;/li&gt;&lt;li&gt;A scan indexes, it does not analyse. Use right-click &lt;em&gt;Analyse&lt;/em&gt;, or the CLI.&lt;/li&gt;&lt;li&gt;macOS and Linux share the codebase and are not validated.&lt;/li&gt;&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;One installer, four tools, one shared runtime: JUST PLAY, JUST STREAM, JUST TAG and the headless CLI. Per-user, no admin prompt.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/SACRVM/just-play/releases/tag/v0.6.0-beta.1&quot;&gt;Download 0.6.0-beta.1&lt;/a&gt; — feedback and bug reports to &lt;a href=&quot;mailto:info@sacrvm.dev&quot;&gt;info@sacrvm.dev&lt;/a&gt; or the &lt;a href=&quot;https://github.com/SACRVM/just-play/issues&quot;&gt;issue tracker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;From DJs to DJs.&lt;/em&gt;&lt;/p&gt;</content>
  </entry>
</feed>
