Sign in

avelino

@avelino.run
1.2K followers 217 following 116 posts

I build things that run on your machine, not someone's cloud. outl.app, plain-markdown outliner. Made awesome-go (168k ⭐). CTO buser.com.br. Xoogler, ex-Twitter

PostsRepliesMedia
avelino @avelino.run · 09/08/2026
44 decision records, each naming the test that dies if you undo it. 6 of them say "none - debt" out loud avelino.run/taste-is-not...
avelino.run
Taste is not a method
The design decisions in zer0 that only exist because something got measured: a logo rejected by a rasteriser, a luminance band where no ink is readable, a find bar that refuses to count, and a lock me...
000
avelino @avelino.run · 09/08/2026
a green test suite tells you the questions you wrote have the answers you expected it says nothing about the questions you didn't write. that's where the bugs live zer0: #webkit engine, rust core, swift shell. #browser #zer0
100
avelino @avelino.run · 09/08/2026
avelino.run/question-bef...
avelino.run
The question has to exist before the code does
Writing software got cheap enough that building something to throw it away is now the sane move. What did not get cheaper is knowing what would make you throw it away, and that has to be written down ...
000
avelino @avelino.run · 09/08/2026
lately i’ve been turning old ideas into software wild how “cheap” it got to write something and throw it away later, if it didn’t turn out good or i’m not gonna use it gotta admit i never thought i’d get to this point in software engineering, my own dumbness ahahah so good to be living this
100
avelino @avelino.run · 08/08/2026
absence as legacy makes absence peer-controlled, and that’s how I ended up validating an attacker’s iss against the attacker’s own metadata doc. What’s still untested is deliberate downgrade by omission.
010
avelino @avelino.run · 08/08/2026
sorry delay on reply Yes, and the first version of it was decoration: it asserted on fixtures the test itself built. It now asserts on emitted bytes per hop, both directions. Your hostile-adapter point is the actual bug I shipped, though:
110
avelino @avelino.run · 01/08/2026
Shipped both in one binary. Stateless dispatch, server/discover, MRTR, hardened auth on the new path. Byte-identical behaviour on the old one. Wrote up how, plus the four defects a green test suite hid from me. avelino.run/absence-is-t...
avelino.run
Absence is the compatibility contract
MCP 2026-07-28 deleted the initialize handshake and protocol-level sessions. My proxy sits on both sides of that wire and every backend it talks to is still on the old revision, so picking one was nev...
000
avelino @avelino.run · 01/08/2026
Implementing a new protocol revision is the easy half. MCP 2026-07-28 deleted the initialize handshake and protocol-level sessions. Every backend I proxy is still on 2025-11-25 and will be for a year, so my proxy is a modern server on one side and a legacy client on the other, at the same time.
avelino.run
Absence is the compatibility contract
MCP 2026-07-28 deleted the initialize handshake and protocol-level sessions. My proxy sits on both sides of that wire and every backend it talks to is still on the old revision, so picking one was nev...
200
Reposted by avelino
Martin Kleppmann @martin.kleppmann.com · 31/07/2026
My talk at @localfirstconf.com is up, in which I argue that local-first has a role to play in improving the resilience of democratic societies in an era of geopolitical tensions. I'm pretty happy with how this talk turned out www.youtube.com/watch?v=--Ru...
youtube.com
Martin Kleppmann — Local-first in an unstable world
YouTube video by Local-First Conf
311825
avelino @avelino.run · 25/07/2026
it used to be that publishing on the App Store was slow and full of complexity, now Google Play is worse than Apple
000
avelino @avelino.run · 25/07/2026
publishing apps to stores is an agonizing thing for me as a dev who worked mostly with web development web is push to main = prod mobile, on the other hand, has an infinite review process we don’t control
200
avelino @avelino.run · 24/07/2026
outl.app/blog/a-keyst...
outl.app
A keystroke should never wait for the disk — outl blog
Adding backlinks made outl slow to open and edit on a big workspace: 2800 pages, 211k ops, and every Esc stuttered. The fix wasn't one trick, it was a rule. The op log is the truth, so everything else...
000
avelino @avelino.run · 24/07/2026
you open outl to get something out of your head. if the app makes you wait, it already failed. so the rule: the op log is the truth the .md, the sidecar, the index, the sync - all projections. they can wait. your keystroke can’t
000
avelino @avelino.run · 24/07/2026
added backlinks. small feature. my workspace has 2800 pages and 211k ops, and suddenly every Esc stuttered. turned out a one-block edit was writing 23 ops. now it writes 1 but the real fix wasn’t a trick. speed isn’t a feature I optimize when there’s time, it’s the premise.
200
avelino @avelino.run · 19/07/2026
and it remains intact, guaranteeing the tree’s reliability congratulations on the work you built
020
avelino @avelino.run · 19/07/2026
I’m the one who should thank you for sharing so much knowledge in the paper I confess I’ve been pushing hard to try to break the Op structure by loading a large volume of data into outl - I recently migrated my notes graph with 4k pages
100
Reposted by avelino
Martin Kleppmann @martin.kleppmann.com · 07/06/2026
Always nice to hear about apps using an algorithm we developed – in this case a tree CRDT with move operation (martin.kleppmann.com/papers/move-...). Thanks @avelino.run for the shout-out! outl.app/blog/outl-be...
outl.app
outl beta: three clients, one tree — outl blog
TUI, native desktop, and an iOS app on TestFlight — all reading the same workspace folder. Apple-first, same Rust core, zero cloud. Inside: how outl makes file sync converge using a tree-CRDT and an H...
1543
avelino @avelino.run · 06/06/2026
@martin.kleppmann.com thank you for bringing knowledge to turn the outl into reality outl.app/blog/outl-be...
outl.app
outl beta: three clients, one tree — outl blog
TUI, native desktop, and an iOS app on TestFlight — all reading the same workspace folder. Apple-first, same Rust core, zero cloud. Inside: how outl makes file sync converge using a tree-CRDT and an H...
030
avelino @avelino.run · 29/01/2026
cc @rust-lang.org @clojureberlin.bsky.social @clojuredays.bsky.social
000
avelino @avelino.run · 29/01/2026
FFI with @graalvm.org Native Image: The Real Work of Maintaining a Library That Crosses Language Boundaries avelino.run/ffi-graalvm-... #ffi #graalvm #rust #learning #libc
avelino.run
FFI with GraalVM Native Image: The Real Work of Maintaining a Library That Crosses Language Boundaries
It's not about compiling to native and calling it done. It's about stack overflows in unexpected places, locks that survive crashes, and data that vanishes between processes. Battle documentation from...
100
avelino @avelino.run · 29/01/2026
new documentation page jbundle.avelino.run
jbundle.avelino.run
Introduction | jbundle
010
avelino @avelino.run · 26/01/2026
Tired of GraalVM reflection configs and incompatible libraries? jbundle turns your JVM app into a single binary — zero external dependencies, full JVM compatibility, no setup headaches. Just `jbundle build` and ship github.com/avelino/jbun... #clojure #graalvm #nativeimage #java #scala #groove
github.com
162
avelino @avelino.run · 25/01/2026
Everyone's selling you the "rewrite in Rust for performance" narrative I turned a #Clojure database into a .so that runs embedded in #Rust, #Python, or anything that loads FFI Zero JVM at runtime @graalvm.org Native Image did the heavy lifting avelino.run/chrondb-poly...
avelino.run
ChronDB: Transforming a Clojure Database into a Polyglot Library with GraalVM Native Image and FFI
A deep dive into how ChronDB leverages GraalVM Native Image to compile Clojure code into native shared libraries (.so/.dylib), enabling seamless FFI integration with Rust and Python through ctypes and...
061
avelino @avelino.run · 08/09/2025
Last weekend my #OSS project prestd got its second security advisory. We shipped a fix in hours — and I realized: vulnerabilities don’t just test code, they test trust. Wrote about what this means, from Heartbleed to today: avelino.run/when-danger-... #foss #cve
avelino.run
When Danger Knocks on the Door: Learning to Handle CVEs in Open Source
Learn how open source projects handle CVEs. From Heartbleed and Log4Shell to the prestd advisory, explore lessons on vulnerability disclosure, fast fixes, and building trust in software security.
021
avelino @avelino.run · 05/08/2025
Team agility is built on architecture, not just process. Our new post explores how Clean Architecture, TDD, and a Staff Engineer's vision build codebases that truly enable innovation, instead of blocking it. avelino.run/cultivating-... #SoftwareArchitecture #StaffEngineer #CodeQuality
avelino.run
Cultivating a Healthy Codebase: Beyond Code That Just Works
A deep dive into software engineering principles for building a healthy, maintainable, and evolvable codebase. Learn how Clean Architecture, SOLID, TDD, and the Staff Engineer mindset can boost your t...
041
avelino @avelino.run · 17/07/2025
The Code Doesn't Speak for Itself: Why Experienced Tech Professionals Must Master the Art of #Negotiation Your code is brilliant, but it's your voice that ensures your impact is valued. avelino.run/the-code-doe... #TechCareer
avelino.run
The Code Doesn't Speak for Itself: Why Experienced Tech Professionals Must Master the Art of Negotiation
For software engineers and data scientists, logic reigns. But career growth demands a different skill: negotiation. Learn why your value needs to be articulated.
050
avelino @avelino.run · 05/07/2025
yep
000
avelino @avelino.run · 05/07/2025
How sad it is to see people lose focus on what they want, doing things that take them further away from what they want
000
avelino @avelino.run · 28/06/2025
I’ve had so many bad ideas that I tried to turn into products — many went really wrong, and others didn’t even get past the idea stage. Yesterday I had yet another idea (probably a bad one). Will I fail at one more product? #lol #startup #StartupLife
111
avelino @avelino.run · 11/06/2025
💡 How does product thinking turn into real business impact and better user experiences? Dive into the next chapter of our series and see how collaboration and data-driven decisions are changing the game! avelino.run/product-thin... #UX #BusinessImpact #ProductDevelopment
avelino.run
From Theoretical to Tangible: How Product Thinking Generated Real Business Results and Transformed User Experience
Explore how developers transformed product thinking into tangible business results and user experience, evolving from theory to practice with measurable impact since 2022.
000
avelino @avelino.run · 09/06/2025
🚀 Discover how product-minded developers have quietly revolutionized software delivery since 2022. From agile cycles to measurable quality, see how tech teams are building real value! Read now: avelino.run/silent-revol... #ProductThinking #SoftwareDevelopment #Agile #TechEvolution
avelino.run
The Silent Revolution: How Product-Minded Developers Transformed Software Delivery Since 2022
Discover how product-minded developers revolutionized software delivery since 2022, improving development cycles, technical quality, and strategic alignment with industry data.
010
avelino @avelino.run · 29/05/2025
Flexoki Theme available in the marketplace of #logseq github.com/avelino/flex... #pkm #flexoki cc @ednico.bsky.social
031
avelino @avelino.run · 28/05/2025
Flexoki Theme, an inky color scheme for #Logseq github.com/avelino/flex... coming soon to marketplace #pkm #flexoki cc @ednico.bsky.social
github.com
GitHub - avelino/flexoki-logseq: Flexoki, an inky color scheme for Logseq. Based on stephango.com/flexoki
Flexoki, an inky color scheme for Logseq. Based on stephango.com/flexoki - avelino/flexoki-logseq
031
avelino @avelino.run · 26/05/2025
seeing the software we use release an update gives peace of mind (knowing that it won't be deprecated) #logseq
020
avelino @avelino.run · 24/05/2025
It might sound like a romantic tweet, but with each passing month, my graph becomes more connected (beautiful) I confess I don't know how I used to remember things without #PKM jotting everything down has reduced my cognitive load and allowed me to focus my thoughts on the present #logseq
040
avelino @avelino.run · 02/05/2025
That’s why I love open source — I’m always learning lemmy.world/comment/1679... #foss #oss #OpenSource
lemmy.world
We built real document versioning on top of Git — with full history, point-in-time access, and chronological restoration. - Lemmy.World
We built real document versioning on top of Git — with full history, point-in-time access, and chronological restoration. This is the core of #ChronDB [https://clj.social/tags/ChronDB]. 👇 Here’s how it works under the hood https://www.moclojer.com/blog/implementing-versioned-document-history-in-chrondb/ [https://www.moclojer.com/blog/implementing-versioned-document-history-in-chrondb/] #moclojer [https://clj.social/tags/moclojer] #clojure [https://clj.social/tags/clojure] #gitbased [https://clj.social/tags/gitbased] #git [https://clj.social/tags/git] #db [https://clj.social/tags/db] @clojure [https://lemmy.ml/c/clojure]
001
avelino @avelino.run · 01/05/2025
We built real document versioning on top of Git — with full history, point-in-time access, and chronological restoration. This is the core of #ChronDB 👇 Here’s how it works under the hood www.moclojer.com/blog/impleme... #moclojer #clojure #gitbased #git #db
moclojer.com
Implementing Versioned Document History in ChronDB
Learn how ChronDB implements Git-based document versioning with time-travel capabilities, allowing document history retrieval, point-in-time access, and chronological version restoration without losin...
000
Reposted by avelino
(λ. borkdude) @borkdude.bsky.social · 26/04/2025
A new blog post about #babashka, Java interop, reflection and #clojure type hints! blog.michielborkent.nl/babashka-jav...
blog.michielborkent.nl
Babashka Java interop, reflection and type hints
Babashka Java interop, reflection and type hints
173
avelino @avelino.run · 27/04/2025
organizing my nix environment today ⚡ making things simpler, more intuitive, and getting rid of duplicates. less mess 🚀 #nixos #devenv #envdev #nix
000
avelino @avelino.run · 27/04/2025
📊 SQL Benchmarking in #ChronDB! We analyzed the performance of SQL operations in our Git-based database. See the numbers, and insights about optimizations. Discover how ChronDB performs with different volumes and types of queries. www.moclojer.com/blog/sql-ben... #Clojure #SQL #Benchmark
moclojer.com
SQL Benchmarking in ChronDB: Building Performance on a Git Foundation
Explore how ChronDB achieves SQL performance on a Git-based database architecture through benchmarking, optimization techniques, and continuous measurement. Learn how we balance Git's versioning benef...
010
Reposted by avelino
Cuducos @cuducos.me · 22/04/2025
Bugzinho interessante para quem gosta de MongoDB, Go e quer contribuir com o #MinhaReceita pela primeira vez 🪲 github.com/cuducos/minha-receita/is…
github.com
Corrigir nome dos campos no MongoDB · Issue #319 · cuducos/minha-receita
Segundo o @mbnunes, no MongoDB, os CNPJs atualmente tem esse formato — repare que o nome dos campos não é o mesmo que os nomes que são utilizados na API: { "_id" : ObjectId("67f971d90bef128a47ad227...
073
avelino @avelino.run · 21/04/2025
🚨 Feedback isn’t about speed — it’s about impact. 🧠 Neuroscience shows that waiting up to 48 hours can turn a tough conversation into real growth. New article just dropped 👇 avelino.run/the-power-of... #Leadership #Neuroscience #Feedback #PeopleManagement
avelino.run
The Power of Two Days: Neuroscience Behind the 48-Hour Rule for Effective Feedback
Feedback given within 48 hours after an event is more effective, empathetic, and constructive. This article explores the neuroscience behind this optimal window, grounded in David Rock's Your Brain at...
000
avelino @avelino.run · 12/04/2025
Weekend goal will be to disconnect from the digital world
061
avelino @avelino.run · 11/04/2025
The game of creating databases using #git internals continues this week was the time to implement inner/left/right join in the #postgresql protocol I tried to explain a little about the architecture implemented to perform joins www.moclojer.com/blog/impleme... #sql #sql #opensource
moclojer.com
Implementing SQL JOIN Support in ChronDB via PostgreSQL Protocol
Learn how ChronDB, a Git-based database, now supports SQL JOIN operations through PostgreSQL protocol. This technical deep dive covers INNER JOIN and LEFT JOIN implementation, performance optimization...
010
avelino @avelino.run · 09/04/2025
Just dropped a demo of chrondb — a PostgreSQL-compatible database that persists everything in Git. Connect via psql, run SQL queries, and watch your data get versioned like code. 🎥 Watch it in action: www.youtube.com/watch?v=MRen... #databases #postgresql #git #devtools #opensource
youtube.com
🔍 Exploring chrondb: A Git-Backed Database with PostgreSQL Compatibility (via psql)
YouTube video by Thiago Avelino
010
avelino @avelino.run · 06/04/2025
Sometimes we try to escape from some technology, but it's no use! It's common at the beginning of a software engineering career to want to "escape" from certain technology stacks (ex Java, etc). After I understood that adding value is the delivery to... Read more avelino.run/quote/2025-0...
010
avelino @avelino.run · 04/04/2025
avelino.run/why-we-chang...
000
avelino @avelino.run · 04/04/2025
Original post: clj.social/@planet/1142...
000
Reposted by avelino
Django @djangoproject.com · 02/04/2025
Django 5.2 has arrived! 🚀www.djangoproject.com/weblog/2025... Featuring a composite of new feature – auto-importing models in the shell. Composite primary keys. BoundField override improvements. Version 5.2 is Long Term Support (LTS) 👉️ 3 years of support, until April 2028. We hope you like it!
Django 5.2 is here! 🎉
15918
Reposted by avelino
Chrome for Developers @developer.chrome.com · 26/03/2025
What's New in WebGPU (Chrome 135) developer.chrome.com/blog/new-in-we…
developer.chrome.com
What's New in WebGPU (Chrome 135)  |  Blog  |  Chrome for Developers
Allow creating pipeline layout with null bind group layout, allow viewports to extend past the render targets bounds, easier access to the experimental compatibility mode on Android, remove maxInterStageShaderComponents limit, and more.
052