RelScript, manifest-driven packages, and RAVADY's hybrid renderer working as one system. Build polished interfaces with web-grade layout, native services, and explicit capability control.
Essential bridges between RelScript and WebNative technologies
Modern system language tooling compiled into efficient runtime targets for packaged native apps
relscript → transpile → runtime-managed execution
HTML/CSS layout, motion, and canvas rendering delivered through native Ravady surfaces
HTML/CSS surfaces → hybrid renderer → native windows
Manifest-declared permissions and package contracts bound directly to trusted system services
manifest → capability bridge → trusted services
Modern language features powering RAVADY OS applications
// RelScript Example - Native Surface + Services
import { readDirectory, notify } from '@ravady/system'
async function WorkspacePanel() {
const files = await readDirectory('/workspace/projects')
notify({
title: 'Workspace indexed',
body: `${files.length} files available`
})
return {
surface: 'window',
title: 'Workspace',
view: `
RAVADY Workspace
${files.length} files ready for review.
`
}
}
export default WorkspacePanel
Web-grade layout and animation composed into native Ravady surfaces
// Hybrid UI Surface Integration
class HybridSurface {
constructor(manifest) {
this.surface = RavadySurface.createWindow(manifest.window)
this.capabilities = CapabilityBroker.attach(manifest.permissions)
this.dom = new SurfaceDOM(this.surface)
}
async mount(component) {
const tree = await component.render({
services: this.capabilities
})
this.dom.commit(tree)
this.surface.present()
}
snapshot() {
return this.surface.captureState()
}
}
Ravady-native surfaces, packaged modules, and controlled compatibility layers
// RelScript view composition
function App(state) {
return {
surface: 'window',
title: 'Control Center',
view: `
${state.user}
${state.summary}
`
}
}
// Package manifest excerpt
{
"name": "control-center",
"entry": "main.rel",
"permissions": ["fs.read", "notifications.send"],
"assets": ["ui/shell.html", "ui/theme.css"],
"dependencies": ["@ravady/charts"]
}
Practical reuse of external packages through metadata mapping, policy checks, and runtime shims
Ravady is designed to make familiar packages feel natural inside one thoughtful environment, with clear boundaries and a dependable experience.
// Package interoperability in RAVADY OS
$ rav add @ravady/charts date-fns
import chart from '@ravady/charts'
import { format } from 'date-fns'
import { openWindow, fetchJSON } from '@ravady/system'
async function launchDashboard() {
const records = await fetchJSON('/services/metrics')
return openWindow({
title: 'Metrics',
view: chart.render(records.map(item => ({
label: format(item.date, 'MMM d'),
value: item.value
})))
})
}
See RelScript, hybrid surfaces, and system services working together
// dashboard.rel
import { fetchJSON, notify } from '@ravady/system'
async function Dashboard() {
const metrics = await fetchJSON('/services/runtime/metrics')
notify({ title: 'Runtime ready', body: 'Metrics service connected' })
return {
surface: 'window',
title: 'Runtime Dashboard',
view: `<main class="hybrid-app"><h1>RAVADY Runtime Demo</h1></main>`,
data: metrics
}
}