Demo Applications
Starting from Content
| Demo | What It Shows |
|---|---|
| SSG Blog | Pure static. Markdown → HTML. Zero JavaScript. |
| Astro Blog | Static pages with interactive islands. Client-side CRUD. |
Starting from Application
| Demo | What It Shows |
|---|---|
| Blog | Full CRUD. Deploy to browser, Node, or Edge. |
| Chat | Real-time Turbo Streams without a Rails server. |
| Notes | JSON API with path helpers as RPC calls. |
Adding Capabilities
| Demo | What It Shows |
|---|---|
| Photo Gallery | Device APIs via Capacitor and Electron. |
| Dictaphone | Audio recording with AI transcription and Active Storage. |
| Workflow Builder | Third-party React libraries with JSON broadcasting. |
Try Them
Try the live demos — each runs in your browser without installing anything. That page also has downloads including NPM packages, demo app tarballs, and create scripts.
To run locally, use the Juntos quickstart:
npx github:ruby2js/juntos --demo blog
cd blog
npx juntos dev -d dexie
Replace blog with any demo name: chat, notes, photo_gallery, ssg-blog, astro-blog, workflow.
What You Just Saw
The conventional wisdom is: pick your stack, stay in your lane. Rails for CRUD, Astro for content, different patterns for each deployment target.
These demos include:
- A Rails app running in a browser with IndexedDB
- The same Rails app deploying to Cloudflare Edge with D1
- The same app packaged for mobile (Capacitor) and desktop (Electron)
- Turbo Streams and Action Cable working without a Rails server
- ActiveRecord queries over markdown files
- Path helpers that work as RPC calls
Same models. Same validations. Same routes. Same controllers. Different runtimes.