Dev.to · 5 min read

Dev log #16 Typographic Hierarchy and the Great Obsidian Purge

Dev log #16 Typographic Hierarchy and the Great Obsidian Purge

Spent the week redesigning my portfolio’s blog layout and nuking thousands of stale notes in my Obsidian vault. Between the UI polish and some deep dives into libp2p DHT de-flaking, I pushed 36 commits and managed to delete almost 16,000 lines of clutter. TL;DR I’ve always believed that your digital space needs a good pruning every now and then to stay healthy. This week was the embodiment of that philosophy. I pushed 36 commits across four primary projects, resulting in over 23,000 additions and nearly 16,000 deletions. Most of that churn came from a massive redesign of my portfolio's blog and a long-overdue "fresh start" for my Obsidian vault. On the open-source side, I spent some quality time in the weeds of py-libp2p, chasing down flaky DHT tests and proposing better subnet diversity limits. What I Built Portfolio Redesign: The Typography Pivot My main focus this week was my portfolio. I’ve been feeling like the blog layout was getting a bit cluttered, so I opened and merged PR #15, which was all about "typographic hierarchy instead of decoration." I’m moving away from unnecessary borders and boxes and letting the type do the heavy lifting. I spent a lot of time in components/blog and app/blog refining the layout. I implemented borderless filter pills and full-width rows to give the content more room to breathe. One of the bigger technical shifts was moving the blog list to be fully server-rendered. It feels snappier, and it allowed me to implement more "honest" dates and better hover states on the rows. I also added a real focus ring for accessibility (because we’ve all been frustrated by keyboard navigation that feels like a guessing game). By the time I was done, I’d touched over 200 files in that repo alone. The Obsidian Purge I also took a metaphorical chainsaw to my obsidian-vault. I nuked nearly 10,000 lines of stale content. I removed entire directories for "Projects," "Rust," and "Backend" notes that were just gathering digital dust. It’s easy to let a vault become a graveyard of half-finished thoughts. I renamed my local audit to "Persona-Audit-August-2026" and cleared out a bunch of orphaned assets and stale index notes. I even repointed some old PDF links, like the Rust book, and dropped "Practical C" from my active reading list. It feels good to have a clean slate for the second half of the year. Neovim Tinkering (As Always) My nvim config saw some action too. I finally made the jump from bufferline to barbar for my tabline. I also swapped out aerial for outline.nvim to handle my symbols and code structure. Beyond the editor itself, I did some work on my config’s documentation site. I redesigned the card layout to use a masonry/bento style CSS-column grid. I reordered the cards "tallest-first" so the columns balance out better visually. I also widened the max width to 5xl and added some hairline section dividers. It’s a much tighter rhythm now. Pull Requests I had two main PRs on the go this week: Portfolio PR #15 (Merged): As I mentioned, this was the big typography overhaul. It was a massive diff (+10,034 / -1,811) because I was essentially re-skinning the entire blog experience. It feels much more professional now—less like a template and more like a custom-built home for my thoughts. py-libp2p PR #1424 (Open): This one was a bit more technical. I’ve been hitting some flakiness in the kad_dht tests, specifically where the dht_pair fixture races on routing-table population. Sometimes Node A just doesn't know about Node B in time for the test to run. I introduced a bounded poll to give the nodes time to find each other without making the tests feel sluggish. Issues & Discussions Most of my community-facing work happened in the py-libp2p repo. I opened three issues that I’m pretty passionate about: Issue #1423: This was the bug report for the flaky dht_pair fixture I mentioned above. It’s one of those "it works on my machine but fails in CI" problems that makes everyone's life harder. Issue #1422 & #1421: These are about hardening the Kademlia DHT. I want to make subnet-diversity limits runtime-configurable and add a table-wide IP-group cap (maxForTable). When you're dealing with p2p networking, you really don't want your routing table to be dominated by a single ISP or subnet—it’s a massive reliability and security risk. I also did a tiny bit of housekeeping on Pair-Pal by creating a FUNDING.yml file. It’s a small step, but it’s part of taking my open-source projects more seriously. Tech Stack This was a heavily polyglot week, though the numbers are skewed by the sheer amount of content in the portfolio and vault: TypeScript: The backbone of the portfolio redesign. Lua: Keeping the Neovim config evolving. Python: The language of choice for my libp2p contributions. Markdown/MDX: This was the "cleanup" language this week. The add/delete ratio was interesting. While I added over 23k lines, a huge chunk of that was the new portfolio structure. Deleting 15k lines—mostly from the Obsidian vault and the old portfolio layout—felt just as productive. Refactoring isn't always about the new stuff; it's about making sure the old stuff isn't in the way. What's Next Next week, I’m hoping to get that libp2p PR merged once the maintainers have a look at my polling logic. I also want to dive deeper into those subnet diversity configurations I proposed. On the personal side, now that the portfolio layout is stable, I need to actually sit down and write some of the long-form content I’ve been planning. The editor is clean, the vault is purged, and the site is fast. No more excuses—time to build. Yash K Saini — Engineer, building in public — AI/ML, low-level (Rust/C/C++), and open source. GitHub · X · LinkedIn · Portfolio Generated by DevNotion

This is a summary aggregated from Dev.to. Read the complete article on the original site:

Read full article at Dev.to

More Programming & Dev News