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.ardaWorkingArdaForm 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.
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.
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.
Your whole JavaScript application compiles into one signed, AES-encrypted .arda file. No readable source directory sits on hardware you don't control.
app.ardaWorkingA 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 progressA 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()WorkingAttach 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 consoleWorkingPush 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 progressA 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.imgPlannedNo 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.
arda.* — storage, hardware, networking, system and sync.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)
1// A sale that survives a dead internet line
2const sale = { type: 'sale', total: 1299, items }
3
4// Queued locally, replayed when the link returns
5await arda.sync.push(sale)
6
7await arda.printer.receipt({
8 width: 42,
9 lines: renderReceipt(sale),
10 cut: true,
11})
12
13await arda.printer.drawer('open')
14
15// Catalogue from the control plane, cached on disk
16const products = await arda.sync.get('products')
1// Attendance kiosk: scan, verify, record
2const cam = await arda.camera.open({ facing: 'front' })
3
4const code = await cam.scanQR({ timeout: 15000 })
5const shot = await cam.capture({ quality: 85 })
6
7// Matching runs on the device — no image leaves it
8const match = await arda.face.match(shot)
9
10if (match.score > 0.82) {
11 await arda.sync.push({
12 type: 'clock-in',
13 staff: match.id,
14 badge: code.text,
15 })
16}
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.
HTML, CSS and JavaScript, built with whatever tooling you already use.
One bundle, Ed25519-signed and AES-GCM encrypted, optionally bound to a device.
Channels, staged rollouts, device registry, telemetry and remote access.
Tills, kiosks, signage, controllers — each verifying before it applies.
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.
| Command | What it does |
|---|---|
arda init | Create a project and its manifest |
arda link | Bind the workspace to a fleet or group |
arda push | Build, sign, encrypt and upload a release |
arda deploy | Roll a release out to devices |
arda logs | Follow a device's application log |
arda console | Attach to the running page |
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.
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.
PlannedA minimal Debian base, the display stack, the input and hardware components your device profile needs, and the ArdaPlayer runtime configured to start on boot.
PlannedThe 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.
WorkingThe device downloads its assigned package, verifies the signature, decrypts it and restarts into your interface — full screen, no browser chrome, no desktop.
WorkingIf it has a screen, a plug and a job to do, it's an ArdaForm device.
Receipts, cash drawers, barcode scanners and transactions that survive a dead line.
Ordering, check-in and ticketing on locked-down touchscreens that can't wander off to a browser.
Scheduled media on cheap players, updated centrally and monitored for the screen that went black.
Badge scanning and on-device face matching, with nothing biometric leaving the hardware.
Relays, sensors and interlocks behind an interface an operator can actually read.
Turn a board and a touchscreen into something you can ship, update and support at scale.
Devices live in shops, factories and reception areas — physically accessible to people you've never met. ArdaForm assumes that from the start.
Ed25519 signature verified before a release is ever unpacked. A tampered bundle simply doesn't run.
Application code and local data are encrypted on disk with keys derived from the machine, not stored beside them.
Devices dial out and hold one authenticated connection. Nothing listens for the internet to knock.
The package declares what it needs. The bridge refuses everything else — the app has no raw OS access.
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.