AF-01 Built for devices. Not browsers.

Build dedicated
devices with
JavaScript.

ArdaForm turns blank Linux hardware into a secure, remotely managed product. Write the interface in HTML, CSS and JavaScript — then reach the printer, the camera, the GPIO header and the database underneath it.

Go + WebKit runtime Encrypted packages Offline first Remotely managed
Runtime architecture 04 layers
04
Your applicationHTML · CSS · JavaScript
</>
03
ArdaPlayerSingle Go binary · WebKit surface
02
Native device APIsGPIO · camera · print · USB · storage
SANDBOXED
01
Dedicated Linux devicex86-64 · ARM64 · Raspberry Pi
Offline ready Remote managed
Print receiptsScan QR codesRead GPIOCapture imagesWork offlineConnect Wi-FiDrive relaysRead sensors
Encrypted packagesLocal databasesRemote consoleUSB hardwareStaged rolloutsDevice identitySecure shellLive diagnostics

The ArdaForm idea

A touchscreen in a shop shouldn't need a 200 MB runtime, a folder of hardware shell scripts and a week of Linux configuration before it does anything useful.

01 / The platform

Everything between your
code and the device.

ArdaForm is not a UI framework. It is the layer underneath — packaging, provisioning, hardware access, synchronisation and fleet management — so your team can spend its time on the part the customer actually touches.

Encrypted packages

Your whole JavaScript application compiles into one signed, AES-encrypted .arda file. No readable source directory sits on hardware you don't control.

app.ardaWorking

Native device APIs

A promise-based JavaScript bridge into the hardware — GPIO pins, cameras, thermal printers, USB devices, Wi-Fi and system state, without leaving the language you already write.

arda.gpio.write()In progress

Offline-first data

A hardware-encrypted local store keeps the device working when the line drops. Queued transactions replay on reconnect with at-least-once delivery and server-side acknowledgement.

arda.db()Working

Remote console

Attach to a running installation: stream the application console, evaluate JavaScript in the live page, take a screenshot, read logs, or open a shell over the device's own outbound connection.

arda consoleWorking

Fleet deployment

Push a release to one device, a location or every installation you run. Staged rollouts, channels and rollback — driven from a git-style CLI or the portal.

arda deployIn progress

Whole-device install

A Debian-based installer image writes a complete appliance from a USB stick: minimal OS, display stack, ArdaPlayer, kiosk configuration and registration — in one pass.

ardaform.imgPlanned
02 / Native APIs

JavaScript you
already know.

No bindings to compile, no native add-ons to rebuild for each board, no shelling out to Python scripts. ArdaPlayer injects the device into the page as ordinary promise-based objects — so the code that draws your interface is the code that drives your hardware.

  1. 01
    One namespaceEverything hangs off arda.* — storage, hardware, networking, system and sync.
  2. 02
    Promises, not callbacksEvery call returns a promise and rejects with a typed error you can actually handle.
  3. 03
    PermissionedThe package declares which capabilities it needs. Anything it didn't ask for isn't there.
1const arda = await device.ready()
2
3// Drive a relay from a button on the screen
4await arda.gpio.mode(17, 'out')
5await arda.gpio.write(17, true)
6
7// React to a physical input
8arda.gpio.watch(27, (pin) => {
9  if (pin.high) {
10    ui.openBarrier()
11  }
12})
13
14// Read the device's own identity
15const info = await arda.system.info()
16console.log(info.deviceId, info.arch)
03 / The pipeline

One idea.
A fleet in the field.

Build once, sign once, deploy everywhere. Every registered installation dials home over a single outbound connection, so devices behind NAT and consumer routers stay reachable without a single inbound port.

A / Source
</>

Your application

HTML, CSS and JavaScript, built with whatever tooling you already use.

B / Package
.ARDA

Signed & encrypted

One bundle, Ed25519-signed and AES-GCM encrypted, optionally bound to a device.

C / Control plane

Release & registry

Channels, staged rollouts, device registry, telemetry and remote access.

D / Fleet

Every installation

Tills, kiosks, signage, controllers — each verifying before it applies.

Package verified Rollout in progress Devices reporting Illustrative — portal preview
~/kiosk-app arda cli
$ arda push -m "new order screen" building dist/ → app.arda signing ed25519 ✓ encrypting aes-256-gcm ✓ uploading 1.84 MB · sha256 4f9c…a10e release r-241 pushed to channel beta $ arda deploy --group "north-region" --staged target 24 devices · 3 offline wave 1/3 8 applied · 0 failed wave 2/3 8 applied · 0 failed wave 3/3 5 applied · 3 queued (offline) rollout complete — arda status to follow up
workspace linkedARDA CLI · PREVIEW
04 / Workflow

Ship a device
like you ship code.

The arda CLI treats a fleet the way git treats a repository. Link a workspace, push a build, promote it through channels, watch it land — and roll it back from the same terminal when it doesn't.

CommandWhat it does
arda initCreate a project and its manifest
arda linkBind the workspace to a fleet or group
arda pushBuild, sign, encrypt and upload a release
arda deployRoll a release out to devices
arda logsFollow a device's application log
arda consoleAttach to the running page
05 / Provisioning

Four steps from
bare metal.

The ArdaForm installer image is designed to take compatible hardware from an empty disk to a registered, running appliance without a Linux administrator standing over it.

  1. 01 Boot

    Start from USB

    Write the installer image to a USB stick and boot the target machine — an x86-64 mini PC, a panel terminal or an ARM board.

    Planned
  2. 02 Prepare

    Install the system

    A minimal Debian base, the display stack, the input and hardware components your device profile needs, and the ArdaPlayer runtime configured to start on boot.

    Planned
  3. 03 Claim

    Register the device

    The installation derives a stable device ID from the machine and shows an activation code. Claim it against your account and it inherits the group's configuration.

    Working
  4. 04 Run

    Pull the application

    The device downloads its assigned package, verifies the signature, decrypts it and restarts into your interface — full screen, no browser chrome, no desktop.

    Working
!
Status The runtime, the device protocol, encrypted packaging and remote management are implemented and running on deployed hardware today. The USB installer image and the public portal are still being built — see the roadmap for what lands when.
06 / Built for

Software with
a physical address.

If it has a screen, a plug and a job to do, it's an ArdaForm device.

01

Point of sale

Receipts, cash drawers, barcode scanners and transactions that survive a dead line.

02

Self-service kiosks

Ordering, check-in and ticketing on locked-down touchscreens that can't wander off to a browser.

03

Digital signage

Scheduled media on cheap players, updated centrally and monitored for the screen that went black.

04

Attendance terminals

Badge scanning and on-device face matching, with nothing biometric leaving the hardware.

05

Industrial panels

Relays, sensors and interlocks behind an interface an operator can actually read.

06

Raspberry Pi products

Turn a board and a touchscreen into something you can ship, update and support at scale.

07 / Security

Hardware you don't own,
running code you do.

Devices live in shops, factories and reception areas — physically accessible to people you've never met. ArdaForm assumes that from the start.

Signed packages

Ed25519 signature verified before a release is ever unpacked. A tampered bundle simply doesn't run.

Encrypted at rest

Application code and local data are encrypted on disk with keys derived from the machine, not stored beside them.

No inbound ports

Devices dial out and hold one authenticated connection. Nothing listens for the internet to knock.

Scoped capabilities

The package declares what it needs. The bridge refuses everything else — the app has no raw OS access.

i
No absolutes A device you don't physically control is never perfectly secure, and we won't pretend otherwise. What ArdaForm gives you is defence in depth and a much higher cost of attack — read the security model.
Development status · Early access

Build different.
Deploy anywhere.

ArdaForm is being built for developers, integrators and software vendors shipping the next generation of dedicated devices. The portal isn't open to the public yet — put your name down and we'll bring you in as capacity allows.