Danila Poyarkov

1.1K posts

Danila Poyarkov banner
Danila Poyarkov

Danila Poyarkov

@dan_note

Elixir, Ruby, Lua etc.

Bergabung Aralık 2010
815 Mengikuti1.4K Pengikut
SKRY Online
SKRY Online@skryonline·
@dan_note I wonder if this would work with React or Svelte as well? Or is it strictly Vue? And is it related to LiveVue ?
English
1
0
0
53
Danila Poyarkov
Danila Poyarkov@dan_note·
New package: Volt ⚡ — frontend build tool for Elixir. Dev server with HMR, code splitting, Tailwind CSS v4, TypeScript. Vue SFC support included. No Node.js required. Part of a new ecosystem alongside QuickBEAM, oxc_ex, and npm_ex. The stack: • OXC — Rust JS toolchain (same engine behind Vite 8's Rolldown), as a NIF • Vize — Vue SFC compiler, Vapor IR, SSR, CSS Modules, @import bundling — all via Rust NIFs (LightningCSS inside) • Oxide — Tailwind v4 class scanning (Rust NIF) • QuickBEAM — JS runtime on the BEAM In a Phoenix project, replaces esbuild wrapper + tailwind CLI + node_modules: 𝚌𝚘𝚗𝚏𝚒𝚐 :𝚟𝚘𝚕𝚝, 𝚎𝚗𝚝𝚛𝚢: "𝚊𝚜𝚜𝚎𝚝𝚜/𝚓𝚜/𝚊𝚙𝚙.𝚝𝚜", 𝚝𝚊𝚛𝚐𝚎𝚝: :𝚎𝚜𝟸𝟶𝟸𝟶, 𝚎𝚡𝚝𝚎𝚛𝚗𝚊𝚕: ~𝚠(𝚙𝚑𝚘𝚎𝚗𝚒𝚡 𝚙𝚑𝚘𝚎𝚗𝚒𝚡_𝚑𝚝𝚖𝚕 𝚙𝚑𝚘𝚎𝚗𝚒𝚡_𝚕𝚒𝚟𝚎_𝚟𝚒𝚎𝚠), 𝚝𝚊𝚒𝚕𝚠𝚒𝚗𝚍: [𝚌𝚜𝚜: "𝚊𝚜𝚜𝚎𝚝𝚜/𝚌𝚜𝚜/𝚊𝚙𝚙.𝚌𝚜𝚜", 𝚜𝚘𝚞𝚛𝚌𝚎𝚜: [...]] Early research preview — expect rough edges, missing features, and API changes. More coming soon. github.com/elixir-volt/vo…
English
5
11
156
9.8K
Danila Poyarkov
Danila Poyarkov@dan_note·
QuickBEAM v0.5–0.7 shipped since the initial launch last week. Three highlights: Lightweight contexts (0.5.0) A 𝙲𝚘𝚗𝚝𝚎𝚡𝚝𝙿𝚘𝚘𝚕 runs N runtime threads (default: scheduler count). Each 𝙲𝚘𝚗𝚝𝚎𝚡𝚝 is an isolated JS heap on a shared thread — own globals, own memory limit, own opcode budget, but no dedicated OS thread. 10K contexts: 4 threads, ~570 MB. 10K runtimes: 10K threads, ~30 GB. 𝚀𝚞𝚒𝚌𝚔𝙱𝙴𝙰𝙼.𝙲𝚘𝚗𝚝𝚎𝚡𝚝𝙿𝚘𝚘𝚕.𝚜𝚝𝚊𝚛𝚝_𝚕𝚒𝚗𝚔(𝚜𝚒𝚣𝚎: 𝟺) 𝚀𝚞𝚒𝚌𝚔𝙱𝙴𝙰𝙼.𝙲𝚘𝚗𝚝𝚎𝚡𝚝.𝚜𝚝𝚊𝚛𝚝_𝚕𝚒𝚗𝚔(𝚙𝚘𝚘𝚕: 𝚙𝚘𝚘𝚕, 𝚖𝚎𝚖𝚘𝚛𝚢_𝚕𝚒𝚖𝚒𝚝: 𝟻𝟷𝟸_𝟶𝟶𝟶) Spec-compliant DOM (0.6.0) Full prototype chain: Node → Element → HTMLElement. 𝚒𝚗𝚜𝚝𝚊𝚗𝚌𝚎𝚘𝚏 𝙷𝚃𝙼𝙻𝙴𝚕𝚎𝚖𝚎𝚗𝚝 works. Node object identity — 𝚎𝚕.𝚙𝚊𝚛𝚎𝚗𝚝𝙽𝚘𝚍𝚎 === 𝚎𝚕.𝚙𝚊𝚛𝚎𝚗𝚝𝙽𝚘𝚍𝚎. 163 tests ported from Web Platform Tests. Bytecode disassembly (0.7.0) 𝚋𝚎𝚊𝚖_𝚍𝚒𝚜𝚊𝚜𝚖 for QuickJS — disassemble bytecode into Elixir terms without a runtime: 𝚀𝚞𝚒𝚌𝚔𝙱𝙴𝙰𝙼.𝚍𝚒𝚜𝚊𝚜𝚖(𝚛𝚝, "𝚏𝚞𝚗𝚌𝚝𝚒𝚘𝚗 𝚏𝚒𝚋(𝚗) { ... }") 𝚑𝚍(𝚋𝚌.𝚌𝚙𝚘𝚘𝚕).𝚘𝚙𝚌𝚘𝚍𝚎𝚜 [{𝟶, :𝚐𝚎𝚝_𝚊𝚛𝚐𝟶, 𝟶}, {𝟷, :𝚙𝚞𝚜𝚑_𝟷, 𝟷}, {𝟸, :𝚕𝚝𝚎}, {𝟹, :𝚒𝚏_𝚏𝚊𝚕𝚜𝚎𝟾, 𝟽}, {𝟼, :𝚛𝚎𝚝𝚞𝚛𝚗}, ...] github.com/elixir-volt/qu…
Danila Poyarkov@dan_note

I've built a new JavaScript runtime that runs inside the BEAM. Every JS runtime is a GenServer with its own OS thread. No JSON anywhere — JS objects map to BEAM terms natively through a lock-free queue. What makes it different from running Node/Deno/Bun alongside Elixir: → JS runtimes live in supervision trees. They crash, restart, recover state — standard OTP → fetch() goes through :httpc. WebSocket through :gun. crypto.subtle through :crypto. BroadcastChannel through :pg — works across a cluster → The DOM is lexbor (C library). JS renders into it, Elixir reads it directly — no serialization, no re-parsing → Workers are BEAM processes. They get preemptive scheduling for free → TypeScript toolchain (OXC) and npm client built in — no Node.js on the machine at all Full control over the JS layer: parse ASTs, bundle imports, transform TypeScript, minify — all from Elixir via OXC NIFs. Use cases: — SSR with Preact/React into native DOM, Elixir reads the tree — Sandboxed user-defined business rules with memory limits, timeouts, and a controlled API surface — Parallel Workers that compute and broadcast via distributed process groups — Evaluating or bundling TypeScript without any external toolchain — Running npm packages inside the BEAM Still a research project in early beta. Covered with tests including Web Platform Tests ports, but expect rough edges. github.com/elixir-volt/qu…

English
0
0
27
2.1K
Danila Poyarkov
Danila Poyarkov@dan_note·
@alexhooketh Yeah, AI generation in OpenPencil is currently more of a proof of concept. It will get much more attention once the core becomes mature enough
English
1
0
2
140
Alex Hook
Alex Hook@alexhooketh·
@dan_note there’s this interesting thing in pencil[.]dev that you can steer the LLM from a style guide and it produces much more reasonable design with no AI feel this way might want to adopt something like this to openpencil
English
1
0
2
181
Danila Poyarkov
Danila Poyarkov@dan_note·
Here’s what OpenPencil can currently generate via MCP. More coming soon.
Danila Poyarkov tweet mediaDanila Poyarkov tweet mediaDanila Poyarkov tweet mediaDanila Poyarkov tweet media
Danila Poyarkov@dan_note

OpenPencil v0.10.0! Claude Code, Codex, and Gemini CLI can now design inside the editor via ACP. They call MCP tools on the live canvas and ask permission before touching files. Stock photos from Pexels and Unsplash. Skeleton-first AI workflow — placeholders first, then content fill. Batched tools, visual feedback on canvas while AI works. Gradients in set_fill. Z.ai and MiniMax providers. Image drag-and-drop and clipboard paste. 5.4× faster file open via Web Workers. Save no longer blocks the UI. Figma compatibility: variable-bound fills through alias chains, instance overrides through clone chains, SCALE constraints, radial/angular/diamond gradients, per-character text colors, rounded corner clipping, drop shadows on transparent containers, foreground blur. Clipboard roundtrip keeps constraints, arcData, strokes, textAutoResize. CJK text no longer garbled. Font fallback chain rewritten. Headless PNG export via MCP. github.com/open-pencil/op…

English
2
3
37
4.3K
Danila Poyarkov
Danila Poyarkov@dan_note·
@mikehostetler Slop forks have been a thing since January 2026. That’s the new reality. You can’t really do anything about it other than maintain the smartest and most feature-rich version 😅
English
0
0
4
236
Mike Hostetler // Chief Agent Officer
Kinda fun watching forks of Jido turn Claude loose without any direction or try to add wild features that don't fit Spirals and spirals of slop Maybe software engineering still matters? 😂🤣😂
English
2
0
16
1.7K
Danila Poyarkov
Danila Poyarkov@dan_note·
OpenPencil v0.10.0! Claude Code, Codex, and Gemini CLI can now design inside the editor via ACP. They call MCP tools on the live canvas and ask permission before touching files. Stock photos from Pexels and Unsplash. Skeleton-first AI workflow — placeholders first, then content fill. Batched tools, visual feedback on canvas while AI works. Gradients in set_fill. Z.ai and MiniMax providers. Image drag-and-drop and clipboard paste. 5.4× faster file open via Web Workers. Save no longer blocks the UI. Figma compatibility: variable-bound fills through alias chains, instance overrides through clone chains, SCALE constraints, radial/angular/diamond gradients, per-character text colors, rounded corner clipping, drop shadows on transparent containers, foreground blur. Clipboard roundtrip keeps constraints, arcData, strokes, textAutoResize. CJK text no longer garbled. Font fallback chain rewritten. Headless PNG export via MCP. github.com/open-pencil/op…
Indonesia
3
7
57
9K
Pietro Schirano
Pietro Schirano@skirano·
In a few days, we’re shipping something at @MagicPathAI that makes the dream of designing in code with perfect handoff, especially for large teams, finally real. I’ve been in this field for 20 years, and early in my career this would have felt like an ontological shock.
English
49
11
356
31.2K
Danila Poyarkov
Danila Poyarkov@dan_note·
@m1riada Умела считать только до двух?
Русский
0
0
0
331
Mira Bluman ( ◠‿◠ )
мой номер телефона мне купил папа в далеком 2010. я была тупым ребенком и не могла запомнить свой номер телефона, поэтому папа заморочился и купил мне номер состоящий из комбинации двух цифр
Русский
1
0
149
4.6K
Mira Bluman ( ◠‿◠ )
ничо тот факт что у меня у одной в центре работает мобильный интернет. у меня есть предположение, что это все потому что у меня блатной номер, типо на всякий случай таким номерам решили связь не обрубать
Русский
6
1
347
30.1K
David Cortés
David Cortés@davebcn87·
@dan_note curious on what was the metric to improve there. Or you were running kind of a ralph loop until it found no more features to implement?
English
1
0
0
147
Danila Poyarkov
Danila Poyarkov@dan_note·
I wanted a small Elixir library to inspect and manage npm packages — read package.json, query the registry, resolve dependency trees. Then I pointed @davebcn87's pi-autoresearch at it. 4 hours later: 141 modules, 43 mix tasks, 2,697 tests. It accidentally implemented most of npm. 😅 github.com/elixir-volt/np…
English
3
4
68
3.2K
Danila Poyarkov
Danila Poyarkov@dan_note·
Might have to split it into separate packages later to improve compilation speed
English
0
0
1
424
Dima E.
Dima E.@adworse·
@dan_note @elixirphoenix dude. I have one question: do you have like a hundred genius clones with you for this kind of productivity?
English
1
0
1
56
Danila Poyarkov
Danila Poyarkov@dan_note·
As part of building QuickBEAM, I created Elixir NIF bindings for the @OxcProject JavaScript toolchain. Parse, transform, bundle, and minify JS/TS directly from Elixir. AST traversal with postwalk + source patching. All via Rust NIFs, no Node.js. github.com/elixir-volt/ox… Huge thanks to @boshen_c and the OXC contributors for an incredible library I rely on daily.
Danila Poyarkov@dan_note

I've built a new JavaScript runtime that runs inside the BEAM. Every JS runtime is a GenServer with its own OS thread. No JSON anywhere — JS objects map to BEAM terms natively through a lock-free queue. What makes it different from running Node/Deno/Bun alongside Elixir: → JS runtimes live in supervision trees. They crash, restart, recover state — standard OTP → fetch() goes through :httpc. WebSocket through :gun. crypto.subtle through :crypto. BroadcastChannel through :pg — works across a cluster → The DOM is lexbor (C library). JS renders into it, Elixir reads it directly — no serialization, no re-parsing → Workers are BEAM processes. They get preemptive scheduling for free → TypeScript toolchain (OXC) and npm client built in — no Node.js on the machine at all Full control over the JS layer: parse ASTs, bundle imports, transform TypeScript, minify — all from Elixir via OXC NIFs. Use cases: — SSR with Preact/React into native DOM, Elixir reads the tree — Sandboxed user-defined business rules with memory limits, timeouts, and a controlled API surface — Parallel Workers that compute and broadcast via distributed process groups — Evaluating or bundling TypeScript without any external toolchain — Running npm packages inside the BEAM Still a research project in early beta. Covered with tests including Web Platform Tests ports, but expect rough edges. github.com/elixir-volt/qu…

English
0
4
28
2.8K
Ran Yefet
Ran Yefet@ranyefet·
@dan_note That's amazing! I wanted something like that for a project I was thinking about. Are you using V8 or QuickJS or something else?
English
1
0
1
639
Danila Poyarkov
Danila Poyarkov@dan_note·
I've built a new JavaScript runtime that runs inside the BEAM. Every JS runtime is a GenServer with its own OS thread. No JSON anywhere — JS objects map to BEAM terms natively through a lock-free queue. What makes it different from running Node/Deno/Bun alongside Elixir: → JS runtimes live in supervision trees. They crash, restart, recover state — standard OTP → fetch() goes through :httpc. WebSocket through :gun. crypto.subtle through :crypto. BroadcastChannel through :pg — works across a cluster → The DOM is lexbor (C library). JS renders into it, Elixir reads it directly — no serialization, no re-parsing → Workers are BEAM processes. They get preemptive scheduling for free → TypeScript toolchain (OXC) and npm client built in — no Node.js on the machine at all Full control over the JS layer: parse ASTs, bundle imports, transform TypeScript, minify — all from Elixir via OXC NIFs. Use cases: — SSR with Preact/React into native DOM, Elixir reads the tree — Sandboxed user-defined business rules with memory limits, timeouts, and a controlled API surface — Parallel Workers that compute and broadcast via distributed process groups — Evaluating or bundling TypeScript without any external toolchain — Running npm packages inside the BEAM Still a research project in early beta. Covered with tests including Web Platform Tests ports, but expect rough edges. github.com/elixir-volt/qu…
English
17
72
508
34.3K