TJ
banner
tunji.dev
TJ
@tunji.dev
Really good buddies with the little green droid.

🌐 tunji.dev

Building @heron.tunji.dev, an open source Android atproto client.

Why Heron? heron.tunji.dev
Reposted by TJ
On Tuesday night, you may have noticed something a little different on Bluesky. Here's a peek behind the scenes of how the election feed came together. Endlessly grateful for this collaboration with @wnyc.org/@gothamist.com & @bsky.app!
About The Other Night...
How Graze is defining the next era of a decentralized, open social attention economy.
graze.leaflet.pub
November 6, 2025 at 9:39 PM
Reposted by TJ
Want to rearrange your feeds on Heron? Just drag and drop them into the order you want!
November 6, 2025 at 6:15 PM
Reposted by TJ
Yo check out the latest @graze.social newsletter when you get a chance… no reason
November 5, 2025 at 9:37 PM
Reposted by TJ
Getting ready for #TheAndroidShow at #dcldn25
October 30, 2025 at 5:05 PM
Reposted by TJ
play.google.com/store/apps/d... Heron by @tunji.dev looks great for a bsky app, it's what I'd use if I had an android phone
Heron - Apps on Google Play
A graceful atproto client
play.google.com
October 29, 2025 at 9:23 PM
How have folks who've built third party bluesky clients implemented push notifications? There's this xrpc endpoint, but I'm not sure how to use it: https://docs.bsky.app/docs/api/app-bsky-notification-register-push
October 28, 2025 at 12:50 AM
It seems bluesky made breaking changes to their response for their oauth authorization server; the introspection_endpoint in the response json has been removed.

Heron is going to be broken on sign in and refresh token flows till a new version of the app can be approved 😞
October 27, 2025 at 2:44 PM
Reposted by TJ
The Android team is diving into what's new in Android development to help you build excellent apps across devices. Tune into The Android Show on October 30 to learn more → goo.gle/tas-oct25
Tune in (here!) on October 30 - and click to get notified - for The Android Show!
Join us on October 30 at 10AM PT for our Fall episode of #TheAndroidShow! In our quarterly show, we’ll be live from Droidcon in London, where we’ll be unpacking some of the latest agentic experiences...
goo.gle
October 23, 2025 at 8:26 PM
Oh btw, I'm co-hosting the Android show this year! Tune in on October 30th for all the latest news in the Android world!

www.youtube.com/watch?v=wyt_...
Tune in on October 30 for our next episode of The Android Show
YouTube video by Android Developers
www.youtube.com
October 23, 2025 at 8:00 PM
Heron is now available to everyone on the play store as a public beta!
𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣

Heron is available in public beta on the play store!

play.google.com/store/apps/d...

𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣𓅣
play.google.com
October 23, 2025 at 5:26 PM
When uploading videos, bluesky recommends uploading to the video service at video.bsky.app: docs.bsky.app/docs/tutoria...

How does this work with custom PDSes? Is the best bet there to just upload the video as a regular blob, and wait for it to be hydrated later?
Bluesky Video Service
A video streaming service for the Bluesky app
video.bsky.app
October 22, 2025 at 4:42 PM
Google Play approve my app pls 🥹
October 21, 2025 at 11:02 PM
Soon 👀
October 13, 2025 at 6:30 PM
Is it just me or are bluesky oauth tokens super finicky when they have to be refreshed?
October 3, 2025 at 5:01 PM
Reposted by TJ
Oh dang while I'm giving shoutouts @graze.social just also launched a banger new website, well done @devingaffney.com www.graze.social
Bluesky Custom Feeds - Built By You
Design, deploy, and grow custom feeds of any complexity on Bluesky with Graze.social.
www.graze.social
October 1, 2025 at 5:05 PM
Reposted by TJ
Heron looks amazing! Can't wait to see it out in the wild, great work @tunji.dev!
tunji.dev TJ @tunji.dev · Sep 29
I'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!
September 29, 2025 at 5:39 PM
Reposted by TJ
We're excited to share the new Graze! Completely redesigned look, same powerful tooling. Check it out at graze.social
Bluesky Custom Feeds - Built By You
Design, deploy, and grow custom feeds of any complexity on Bluesky with Graze.social.
graze.social
September 29, 2025 at 4:50 PM
I'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!
September 29, 2025 at 4:34 PM
Reposted by TJ
i wrote about atproto and why it matters
Open Social — overreacted
The protocol is the API.
overreacted.io
September 26, 2025 at 3:33 PM
Anyone got tips for refreshing bluesky oauth tokens? The tokens from oauth are valid for an hour. Once they expire, calls to refresh fail with the error "claim timestamp check failed". I can't find much in the way of docs for this
September 20, 2025 at 12:18 AM
Reposted by TJ
today in bsky bikeshedding: I'm anti higher post limits—I think it's nice for longform & shortform to not bleed into each other!

brevity is good; I challenge anyone to give me 500 chars that couldn't be 300

I *am* in favor of bsky supporting embeds to other apps; bsky doesn't have to do it all!
Increase Post Character limit to 500. · Issue #2551 · bluesky-social/atproto
Is your feature request related to a problem? Please describe. This is a feature request related to product enhancement. Describe the solution you'd like I propose increasing the post character lim...
github.com
September 17, 2025 at 2:19 PM
Reposted by TJ
Today's #JetpackReleaseNotes includes Camera and Camera ViewFinder 1.5.0, Room 2.8.0, Hilt 1.3.0, plus bug fixes in Compose 1.9.1, Navigation 2.9.4, and Navigation3 1.0.0-alpha09.
developer.android.com/jetpack/andr...
Recent Release Notes  |  Android Developers
developer.android.com
September 11, 2025 at 3:02 AM
Reposted by TJ
Just published my first blog post: recreating Liquid Glass in the browser.
It’s a deep dive into refraction math, SVG filters, and some CSS.

Full write-up with demos here: kube.io/blog/liquid-...

(Works fully in Chrome, basics + interactive visuals in Safari.)

#LiquidGlass #Apple #CSS #UI
Liquid Glass in the Browser: Refraction with CSS and SVG — kube.io
Explore how to recreate Apple's stunning Liquid Glass effect using CSS, SVG Displacement Maps, and refraction calculations.
kube.io
September 8, 2025 at 7:24 PM
Is there a list of alternative bsky pds implementations? I'm working on Oauth for my 3P app and it'd be nice to have "sign in with x" buttons where x isn't just bsky.
September 7, 2025 at 4:14 PM