https://tonsky.me/blog/tahoe-icons/
It’s hard to justify Tahoe icons @ tonsky.me
Looking at the first principles of icon design—and how Apple failed to apply all of them in macOS Tahoe
tahoe iconshardjustifytonsky
Sponsored https://www.blacked.com/
BLACKED: Exclusive Big and Powerful Male Videos in 4K HD
Premium videos featuring the most beautiful women with the biggest and most dominant black male stars, all in stunning 4K HD...
https://tonsky.me/blog/dice-out/
GMTK Game Jam 2022: Dice Out @ tonsky.me
Experience report from participating in latest GMTK Game Jam
gmtk game jamdicetonsky
https://tonsky.me/blog/dsl/
Designing good DSL @ tonsky.me
A look at common mistakes in DSL designs and how to fix them
designinggooddsltonsky
https://tonsky.me/blog/network-eval/
Ideas for Clojure Network Eval API @ tonsky.me
How nREPL could be improved
ideasclojurenetworkevalapi
https://tonsky.me/blog/options/
You don’t want many options @ tonsky.me
Don’t get excited about libraries that offer many options
many optionswanttonsky
https://tonsky.me/blog/clj-reload/
New Library: clj-reload @ tonsky.me
Announcing clj-reload, a smarter way to reload Clojure code during development
newlibrarycljreloadtonsky
https://tonsky.me/blog/checkbox/
In Loving Memory of Square Checkbox @ tonsky.me
History of checkboxes and radio buttons in user interfaces
loving memorysquarecheckbox
https://tonsky.me/blog/datascript-internals/
A shallow dive into DataScript internals @ tonsky.me
An overview of DataScript code base, what’s there and how it’s structured
internals tonskyshallowdive
https://tonsky.me/blog/interactive-development/
The Blessing of Interactive Development @ tonsky.me
In this post I describe a couple of practice that makes the process of writing code faster, more predictable and straightforward
interactive developmenttonsky
Sponsored https://cams.com/
Cams.com - Free Sex Cams, Live Sex Chat 24/7
Live sex cams, watch and go one on one with your favorite model at Cams.com 🔥 Join free.
https://tonsky.me/blog/alpha/
Cognitect, please stop adding alpha to your namespaces @ tonsky.me
Why putting alpha in your project name does more harm than good
please stopcognitectadding
https://tonsky.me/blog/icfpc-2021/
Zig, Skia, Clojure, Geometry and the Japanese TV Show: ICFP Contest 2021 @ tonsky.me
4-day coding marathon
tv showzigskiaclojuregeometry
https://tonsky.me/blog/the-web-after-tomorrow/
The Web After Tomorrow @ tonsky.me
This post looks at what is missing from the current state-of-the-art web architectures, where they should be improved and what tools we have at hand for that.
webtomorrowtonsky
Sponsored https://www.househumpers.com/
HouseHumpers
Watch hottest property agent having sex with her client. Househumpers.com brings you the best real estate agent sex online.
https://tonsky.me/blog/sublime/
The most important feature of Sublime Text @ tonsky.me
is that it doesn’t change
sublime text tonskyimportant
https://tonsky.me/blog/chrome-intervention/
My web app died from performance bankruptcy @ tonsky.me
Chrome team breaks existing web to make Chrome perform better
web appdiedperformancetonsky
https://tonsky.me/blog/performance-first/
Performance first @ tonsky.me
“Premature optimization being the root of all evil” is the root of all evil
performancefirsttonsky
Sponsored https://adultfriendfinder.com/
AdultFriendFinder – The World’s Largest Dating and Social Discovery Site
Join the Largest Community of Fun-Loving Adults - AdultFriendFinder. Discover the excitement of connecting with millions of like-minded members on...
https://tonsky.me/blog/simple-router/
New Library: Simple Router @ tonsky.me
Announcing clj-simple-router, a HTTP router for Clojure that allows overlapping routes and order-independent route declarations
simple routernewlibrarytonsky
https://tonsky.me/blog/humble-objects/
Humble Chronicles: The Inescapable Objects @ tonsky.me
Why we need OOP, even in Clojure
humble chroniclesinescapable
https://tonsky.me/blog/datomic-as-protocol/
Datomic as a Protocol @ tonsky.me
Datomic introduced a data structure model: entity-attribute-value store, transaction format, Datalog query language dialect. As you get familiar with it, you...
datomicprotocoltonsky
Sponsored https://darlink.ai/
DarLink AI: Free AI Girlfriend Generator | Chat, Photos & Video
Create your ideal AI Girlfriend with DarLink AI. Customize her look and personality, chat naturally, and enjoy personalized photos, videos, and voice for a...
https://tonsky.me/blog/centering/
Hardest Problem in Computer Science: Centering Things @ tonsky.me
Somehow we forgot how to center rectangles and must find our way back
hardest problemcomputerthings
https://tonsky.me/blog/sublime-writer/
Building an ultimate writing machine from Sublime Text @ tonsky.me
My setup for long-form writing in Sublime Text
sublime text tonskybuilding
https://tonsky.me/blog/good-times-weak-men/
Good times create weak men @ tonsky.me
Software abstraction ladder becomes too tall and starts to fall
good timescreateweakmentonsky
https://tonsky.me/blog/humble-decomposition/
Humble Chronicles: Decomposition @ tonsky.me
Overall shape of Humble UI project, a Clojure UI framework
humble chroniclestonsky
https://tonsky.me/blog/python-build/
Python as a build tool @ tonsky.me
Why Skija and JWM use Python instead of existing build tool
build toolpythontonsky
https://tonsky.me/blog/humble-state/
Humble Chronicles: State Management @ tonsky.me
Search for the best state management solution for Humble UI
humble chroniclesstatetonsky
https://tonsky.me/subscribe/
How to subscribe @ tonsky.me
subscribetonsky
Sponsored https://www.xotic.ai/explore
Explore AI Girlfriend & AI Characters | Xotic
Find your perfect AI girlfriend or explore thousands of unique AI characters. Filter by anime or realistic styles, gender preferences, and discover immersive...
https://tonsky.me/blog/humble-layout/
Humble Chronicles: The Layout @ tonsky.me
Humble UI approach to layout
humble chronicleslayouttonsky
https://tonsky.me/blog/syntax-highlighting/
I am sorry, but everyone is getting syntax highlighting wrong @ tonsky.me
Applying human ergonomics and design principles to syntax highlighting
syntax highlightingsorrywrong
https://tonsky.me/blog/form-cleanup/
Cleaning up form UI @ tonsky.me
Simple tips on fixing small details in UI
form uicleaningtonsky
https://tonsky.me/blog/humble-vdom/
Humble Chronicles: Managing State with VDOM @ tonsky.me
An experiment of using VDOM for managing state in Humble UI
humble chronicles managing
https://tonsky.me/blog/swiftui/
SwiftUI defaults considered harmful @ tonsky.me
A few notes on SwiftUI and why UI frameworks should not try to be “smart”
considered harmfulswiftui
https://tonsky.me/blog/acha-acha/
Another powered-by-DataScript example @ tonsky.me
Git Achievements application built around DataScript
anotherpowereddatascript
https://tonsky.me/blog/hiccup/
Hiccup, Macros, API design, and magic @ tonsky.me
Small changes in usage conditions could require full library redesign
api designhiccupmacrosmagic
https://tonsky.me/blog/diagrams/
Where Should Visual Programming Go? @ tonsky.me
Visual programming and textual code should co-exist next to each other, not replace one another
visual programminggotonsky
https://tonsky.me/blog/monitors/
Time to upgrade your monitor @ tonsky.me
A non-comprehensive and opinionated guide to best monitor for programming
timeupgrademonitortonsky
https://tonsky.me/blog/syncthing/
Computers as I used to love them @ tonsky.me
File synchronization can be fun and painless if you don’t have to deal with corporate bullshit.
computersusedlovetonsky
https://tonsky.me/blog/speed/
Speed is a feature @ tonsky.me
When speed is a crucial UX factor
speedfeaturetonsky
https://tonsky.me/blog/tech-sucks/
People expect technology to suck because it actually sucks @ tonsky.me
I get at least 27 tech annoyances on a single day
people expecttechnologysuck
Sponsored https://goloveai.com/
GoLove AI - Free AI Girlfriend App for Real Chat, Video & Photo Conversation
GoLove is an AI Girlfriend Chatbot App. Meet your Girlfriend AI and Enjoy Realistic Conversations on our Website.
https://tonsky.me/blog/medium/
Medium is a poor choice for blogging @ tonsky.me
If you think about publishing an article, starting a blog or even just sharing a short rant on Medium, please consider what you’ll be putting your readers...
poor choicemediumblogging
https://tonsky.me/blog/monitors-mac/
Macs and 4K 120Hz displays compatibility list @ tonsky.me
Macs/4K 120Hz displays compatibility list
macsdisplayscompatibilitylist
https://tonsky.me/blog/ipad/
Apple Design Team vs the World @ tonsky.me
How iPad Pro redesign made it better and worse at the same time
apple designteamvsworldtonsky
https://mastodon.online/@nikitonsky/114669683304293415
Niki Tonsky: "I always imagined that it’s the center of the thu…" - Mastodon
Jun 12, 2025 - Attached: 2 images I always imagined that it’s the center of the thumb that points to slider position. Turned out Apple has different idea
niki tonskyalways imagined
https://tonsky.me/blog/dst/
Daylight Saving Time is a perfect test for UI designer @ tonsky.me
Unique challenges that DST presents for clock/watch designers
daylight saving timeperfectui
https://tonsky.me/blog/github-redesign/
Redesigning Github repository page @ tonsky.me
Better design for Github repository page
github repositoryredesigning
https://github.com/tonsky/FiraCode
GitHub - tonsky/FiraCode: Free monospaced font with programming ligatures
Free monospaced font with programming ligatures. Contribute to tonsky/FiraCode development by creating an account on GitHub.
githubtonskyfreemonospaced
Sponsored https://pleasur.ai/
Pleasur.ai - Your AI Companion Experience
https://tonsky.me/blog/hiring/
How NOT to hire a software engineer @ tonsky.me
A collection of anti-patterns seen in big IT companies regarding hiring practices
software engineerhiretonsky
https://tonsky.me/blog/reinventing-git-interface/
Reinventing Git interface @ tonsky.me
A set of recommendations on how Git UI can be improved not on a cosmetic, but on a very fundamental level. We aim at making Git more usable, powerful and...
reinventinggitinterfacetonsky
https://tonsky.me/user-agreement/
User Agreement @ tonsky.me
user agreementtonsky
https://tonsky.me/blog/skija/
Skija: Graphics for JVM @ tonsky.me
Introducing Skija, Java bindings for Google graphics library, Skia
graphicsjvmtonsky
https://tonsky.me/blog/library-focus/
Library focus @ tonsky.me
Why you shouldn’t write libraries as a part of a bigger software project
libraryfocustonsky
https://tonsky.me/blog/sublime-clojure/
Sublime ❤︎ Clojure @ tonsky.me
New Sublime Text plugin for working with Clojure
clojure tonskysublime
https://tonsky.me/blog/hiring-ai/
How to get hired in 2025 @ tonsky.me
A collection of red flags in software engineers' test assignments
get hiredtonsky
Sponsored https://www.secrets.ai/
Secrets AI - #1 Realistic AI Girlfriend Website for Chatting
Chat 24/7 with realistic AI Girlfriend and enjoy 100+ Fantasies. Secrets AI is the best AI girlfriend website for mutual fun & personal AI companion bonding....
https://tonsky.me/blog/readable-clojure/
Readable Clojure @ tonsky.me
Some advices to writing Clojure code
clojure tonskyreadable
https://tonsky.me/blog/needy-programs/
Needy programs @ tonsky.me
We used to use software; now software started to use us
needyprogramstonsky
https://tonsky.me/blog/datascript-chat/
Chatting cats use DataScript for fun @ tonsky.me
How to write chat application with ClojureScript, core.async, React and DataScript
chattingcatsusedatascriptfun
https://tonsky.me/blog/lockfiles/
We shouldn’t have needed lockfiles @ tonsky.me
Lockfiles are an absolutely unnecessary concept that complicates things without a good reason. Dependency managers can and are working without it just the same.
neededlockfilestonsky
https://tonsky.me/blog/js-bloat/
JavaScript Bloat in 2024 @ tonsky.me
What is the average size of JavaScript code downloaded per website? Fuck around and find out!
javascriptbloattonsky
https://tonsky.me/blog/datascript-resources/
Couple of DataScript resources @ tonsky.me
Couple of new talks about DataScript
coupledatascriptresources
https://tonsky.me/blog/phil-libin/
Phil Libin: Find a new way to ski @ tonsky.me
Brief transcript of What I Know podcast with Phil Libin on entrepreneurship
phil libinnew wayfindski
https://tonsky.me/
Blog @ tonsky.me
blogtonsky
https://tonsky.me/blog/fall-of-native/
Claude is an Electron App because we’ve lost native @ tonsky.me
Article argues that Claude is not an Electron app not because LLMs can’t do it, but because there are no advantages left for native
electron appclaudelostnative
https://tonsky.me/blog/blind-spot-in-dependency/
Blind Spot in Dependency Management @ tonsky.me
Why changelogs are important and how come we don’t talk about it
blind spotdependencytonsky
https://tonsky.me/blog/crdt-filesync/
Local, first, forever @ tonsky.me
We explore how to build local-first sync on top of simple file storage
local firstforevertonsky
https://tonsky.me/blog/gaslight-driven-development/
Gaslight-driven development @ tonsky.me
Computers are starting to have opinions on how our APIs should look like
driven developmentgaslight
https://tonsky.me/blog/concrete-vs-abstract/
Solve the problem at hand @ tonsky.me
Always prefer concrete code to abstract one. Don’t try to solve problems you don’t have.
solveproblemhandtonsky
https://tonsky.me/blog/hashp/
When You Get to Be Smart Writing a Macro @ tonsky.me
A story of writing Clojure’s println alternative that works inside threading-first/last macros
smart writinggetmacrotonsky
https://tonsky.me/blog/cursor-keys/
Cursor keys belong at the center of your keyboard @ tonsky.me
Remap `CapsLock` + `IJKL` to act as cursor keys and teach yourself to use it
cursorkeysbelongcentertonsky
https://tonsky.me/blog/utils/
Grumpy chronicles: The question of utils @ tonsky.me
Cleaning up and organizing single-file utils namespace
grumpy chroniclesquestion
https://tonsky.me/blog/humble-dx/
Humble Chronicles: Developer Experience @ tonsky.me
Using Humble UI from the REPL
humble chroniclesdeveloper
https://tonsky.me/blog/clojure-ui/
Thoughts on Clojure UI framework @ tonsky.me
Ideas and inspirations for new Clojure framework for desktop apps
ui frameworkthoughtsclojure
https://tonsky.me/blog/humble-defcomp/
Humble Chronicles: Shape of the Component @ tonsky.me
Looking for an ergonomic way to define components
humble chroniclesshapetonsky
https://tonsky.me/blog/emoji/
Emoji under the hood @ tonsky.me
Detailed look into all the machinery involved in rendering Emoji
emojihoodtonsky
https://tonsky.me/blog/disenchantment/
Software disenchantment @ tonsky.me
Everything is going to hell and nobody seems to care
softwaredisenchantmenttonsky
https://tonsky.me/blog/pedestal/
Grumpy chronicles: Pedestal and routing @ tonsky.me
Migrating a web app from Ring to Pedestal
grumpy chroniclespedestal
https://tonsky.me/blog/irrelevant-things/
Irrelevant Things @ tonsky.me
As a programmer on a way to technical excellency, you should teach yourself to constantly spot and reduce waste.
irrelevantthingstonsky
https://tonsky.me/blog/horizon/
Forbidden West and the Art of Editing @ tonsky.me
Why editing is a crucial part of visual arts
forbidden westartediting
https://tonsky.me/blog/root-cause/
Address the root cause @ tonsky.me
Do not just fix symptoms. Find out the root cause and address it instead
root causeaddresstonsky
https://tonsky.me/blog/pwa/
You need neither PWA nor AMP to make your website load fast @ tonsky.me
Good performance practices are still needed when developing fast web experience.
needneitherpwaampmake
Sponsored https://www.liveprivates.com/
Free Live Sex Shows on LivePrivates.com
Free Live Sex Shows on Real Sex Webcams. Enjoy the freedom of exciting, one-on-one and anonymous live cam sex chat. Absolute privacy guaranteed.
https://tonsky.me/blog/streams/
Streams: Mail 3.0 concept @ tonsky.me
Introducing concept of Streams, aiming to fix most of email-as-a-medium flaws
streamsmailconcepttonsky
https://tonsky.livejournal.com/323469.html
Облака и коробки: tonsky — LiveJournal
tonskylivejournal
https://mastodon.online/@nikitonsky
Niki Tonsky (@nikitonsky@mastodon.online) - Mastodon
3.04K Posts, 136 Following, 3.67K Followers · Good programming, bad interfaces. Fira Code, Clojure, DataScript, Humble UI
niki tonskymastodon online
https://tonsky.me/blog/clojure-macros/
Clojure macros continue to surprise me @ tonsky.me
clojuremacroscontinuesurprise
https://tonsky.me/blog/humble-signals/
Humble Chronicles: Managing State with Signals @ tonsky.me
An experiment of using incremental computations for managing state in Humble UI
humble chronicles managing
https://tonsky.me/blog/unofficial-guide-to-datomic-internals/
Unofficial guide to Datomic internals @ tonsky.me
This post is a compilation of publicly available information, Datomic docs and google group answers about Datomic internals. Intention is to help others...
unofficial guidedatomictonsky
https://tonsky.me/blog/slow-wrong/
It is fast or it is wrong @ tonsky.me
Fast programs are always fast, slow programs are slow even on a most powerful computers. Knowing that fast solution exists makes slow one plain wrong.
wrong tonskyfast
Sponsored https://www.flirt4free.com/
Free Live Sex Cams and Adult Chat | Flirt4Free
https://tonsky.me/blog/datascript-2/
Ideas for DataScript 2 @ tonsky.me
Things that came to mind while working on DataScript 1
ideasdatascripttonsky