TJ @tunji.dev · 09/07/2026Please file issues in Github with details so I can help. It's hard to help with just posts. Have you tried using other models? You can delete downloaded models from the UI. 000
TJ @tunji.dev · 09/07/2026Experimenting with something new in the latest Heron release. Heron now let's you download a local inference model to translate text and it works completely offline on your device. Nothing gets sent to any server. 091
TJ @tunji.dev · 01/07/2026This week's Heron release is a small quality of life one. The Black Heron theme has been updated to be OLED black. The previous color scheme is now under the Pied Heron theme. 091
TJ @tunji.dev · 01/07/2026This week's Heron release is a small quality of life one. The Black Heron theme has been updated to be OLED black. The previous color scheme is now under the Pied Heron theme. 051
TJ @tunji.dev · 22/06/2026I spent my weekend playing with view transitions on web on tunji.dev, and they're really nice! I'm surprised more websites don't use them, its largely just adding a view transition name on components on React 19+ 090
TJ @tunji.dev · 09/05/2026I built push notification support for standard.site in Heron and I just got my first notification for one of my subscriptions. Feels good 😊 0203
TJ @tunji.dev · 29/04/2026With the latest Heron update, I can prioritize my writing over other atproto records on my profile. 030
TJ @tunji.dev · 19/04/2026You can drag down on the home timelines or tap the button on the top right 010
TJ @tunji.dev · 05/02/20262D scrolling on Heron is one of my favorite features. There are so many amazing nature photographers on here and the right layout really helps make the content pop. 030
TJ @tunji.dev · 03/02/2026Trying something fun with the Heron gallery: support for 2D scrolling. It will be available in feeds where all the posts have media, like a profile's photos or videos, or special media only feeds like videos or some made on @graze.social. 090
TJ @tunji.dev · 31/01/2026Adding a little morph animation from the back button to the Heron logo if going back via a gesture ☺️ 1121
TJ @tunji.dev · 16/12/2025The latest version of Heron adds a pull down gesture for timeline settings. It was fun to implement, I used the Anchored draggable and seekable transition APIs. 1171
TJ @tunji.dev · 06/12/2025The latest version of Heron bumps Jetpack Compose to 1.10 and to Navigation 3's stable release so the animations and transitions are more polished than ever 0151
TJ @tunji.dev · 29/09/2025I'm excited to announce something I've been building, an open source atproto client heron.tunji.dev! Its currently available in beta on Google Play for Android devices. Please DM @heron.tunji.dev if you'd like early access. It will be released to all Android users in the next few weeks! 99321
TJ @tunji.dev · 25/08/2025Getting ready for an alpha launch, but in the meantime, here's some UI progress! I try to maximize the amount of screen estate allocated to content when scrolling. 1419
TJ @tunji.dev · 21/07/2025Working on a blog post for 3 unique predictive back animations you can create with the navigation events library 😊 Slide to pop Sticky shared elements resize to pop Drag to pop 040
TJ @tunji.dev · 01/06/2025Whoever they are, their bot/script is running on Google cloud in San Jose data centers: 100
TJ @tunji.dev · 20/05/2025For an idea of the cool stuff you can do with this, I built this with nav3 1101
TJ @tunji.dev · 19/05/2025I got asked how the persistent UI architecture scales when theres local animations like in the navigation bar mock below, and how to keep them with separate navigation bar instances. Solution: create movable shared element transitions using movableContentOf! I've updated the post with an example. 040
TJ @tunji.dev · 14/03/2025Room 2.7.0-rc02 is out which fixes a NullPointerException when compiling with KSP on iOS, which means the tip of tree commit of Heron compiles again on iOS! 1181
TJ @tunji.dev · 08/03/2025I asked the folks @graze.social if I could put metadata in my bird feed to mark it as an image only feed, and they did! Which means I can support 3 feed presentation styles in my app: Text with embeds, expanded media and condensed media! 1433
TJ @tunji.dev · 28/02/2025Got my dynamic feed layout toggle working yday. Just need to support an image focused layout next! 071
TJ @tunji.dev · 16/02/2025I really like bluesky, but sometimes I want less text, and more content 🦜 🦆 🦩 260
TJ @tunji.dev · 13/01/2025I got Heron compiling for iOS on the iPad and I still can't believe the value prop of compose multiplatform. I was able to build an offline-first multiplatform app in 4 weeks! Frame rate isn't great, and I don't know if iOS insets for the status and nav bars are supported, but my mind is blown. 3388
TJ @tunji.dev · 09/01/2025Back to work next week, and I got further that I thought I would with my open source bluesky client! Just needs a little polish over the next few months and I'll publish it to the play store. Here's a little progress video: 0183
TJ @tunji.dev · 20/12/2024Also the recursive CTE to get the reply thread for a post is something 🥴 Fairly sure its not optimal, but its 4 CTES, 2 of them recursive and 3 UNIONs 000
TJ @tunji.dev · 20/12/2024Diving into posts with shared elements is an interesting experience! IDK if I want to keep it, it may get tiring after a while. Also notice how the avatar image shape morphs from a corner circle to a full circle from screen to screen. 220
TJ @tunji.dev · 16/12/2024My holiday project is an open source bluesky app! Already having fun with the androidx shapes library on the timeline, where the connecting lines for the thread have "mass" and distort circular avatars by distorting them around the edges. 4211
TJ @tunji.dev · 12/11/2024The above was just a stress test for something I've been playing around with with navigation! I saw @riggaroo.bsky.social post about using animateBounds with FlowLayouts and wanted to apply it to my NavHost to animate up to 3 panes entering or leaving depending on screen size or navigation state: 140
TJ @tunji.dev · 12/11/2024The new animateBounds modifier in Compose 1.8 is one of those new APIs with huge ripple effects. Being able to arbitrarily animate the size and position of any composable is mind blowing. Below I have a resizable grid that shuffles on click. Look at items animate to their shuffled locations! 2181