diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8f28c04 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "one.el"] + path = one.el + url = git@github.com:tanrax/one.el.git + branch = add-table-support diff --git a/build.el b/build.el index d3f2e00..35d0064 100644 --- a/build.el +++ b/build.el @@ -4,6 +4,11 @@ '("melpa" . "https://melpa.org/packages/") t) (package-initialize) (package-refresh-contents) - (package-install 'one) + ;; Install one.el dependencies + (package-install 'jack) + (package-install 'htmlize) + ;; Add fork to load-path and load it + (add-to-list 'load-path "/usr/src/app/one.el") + (require 'one) (find-file "/usr/src/app/one.org") (one-build)) diff --git a/one.el b/one.el new file mode 160000 index 0000000..19605b0 --- /dev/null +++ b/one.el @@ -0,0 +1 @@ +Subproject commit 19605b02b27d345f37a8b6726c63ae2aa35c4d5b diff --git a/one.org b/one.org index ad865a5..4234349 100644 --- a/one.org +++ b/one.org @@ -95,19 +95,23 @@ That's it! No page reload, no API endpoints, no REST, no GraphQL, no frontend fr #+ATTR_HTML: :class center-block image image--benchmark [[#/img/benchmark-response-time.webp][Response Time Comparison]] -- **LiveView** (WebSockets): **9.35ms**, 450 bytes - Real-time dashboards, collaborative apps -- HTMX (AJAX): 16.48ms, ~37 KB - Modern UX with minimal JavaScript -- Unicorn (AJAX): 26.76ms, ~71 KB - Complex forms with reactive state -- SSR (POST + redirect): 47.25ms, ~8.5 KB - SEO-critical pages, traditional CRUD +| Framework | Technology | Response Time | Data Transfer | Use Case | +|--------------+-----------------+---------------+---------------+--------------------------------------| +| **LiveView** | WebSockets | **9.35ms** | 450 bytes | Real-time dashboards, collaborative apps | +| HTMX | AJAX | 16.48ms | ~37 KB | Modern UX with minimal JavaScript | +| Unicorn | AJAX | 26.76ms | ~71 KB | Complex forms with reactive state | +| SSR | POST + redirect | 47.25ms | ~8.5 KB | SEO-critical pages, traditional CRUD | Django LiveView is approximately **43% faster than HTMX** and **80% faster than traditional SSR** through persistent WebSocket connectivity. *** Technology Comparison -- **Transport**: LiveView (WebSocket) | SSR (HTTP) | HTMX (AJAX) | Unicorn (AJAX) -- **Update Type**: LiveView (Real-time) | SSR (Full reload) | HTMX (Partial) | Unicorn (Reactive) -- **Multi-user**: LiveView (✅ Broadcast) | SSR (❌) | HTMX (❌) | Unicorn (❌) -- **Infrastructure**: LiveView (Redis + Channels) | SSR (Django only) | HTMX (Django only) | Unicorn (Django only) +| Feature | LiveView | SSR | HTMX | Unicorn | +|--------------------+------------------+-------------+-------------+-------------| +| **Transport** | WebSocket | HTTP | AJAX | AJAX | +| **Update Type** | Real-time | Full reload | Partial | Reactive | +| **Multi-user** | ✅ Broadcast | ❌ | ❌ | ❌ | +| **Infrastructure** | Redis + Channels | Django only | Django only | Django only | *** What makes it different?