Doug Todd's Avatar

Doug Todd

@dougtodd.dev.bsky.social

๐Ÿ’™ Flutter Developer | ๐ŸŽฎ Gamer | ๐Ÿงฌ Biochemistry Graduate | ๐Ÿ’ป Tech Enthusiast | ๐Ÿค˜ Metal Music Lover Cofounder of @stashhubapp.com Blog - https://dougtodd.dev

113 Followers  |  175 Following  |  87 Posts  |  Joined: 12.11.2023  |  1.9632

Latest posts by dougtodd.dev on Bluesky

Preview
a bald man is laying on the floor with his hand on his chin . ALT: a bald man is laying on the floor with his hand on his chin .

๐Ÿ˜‚

02.08.2025 07:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I very much appreciate the example profile ๐Ÿง›

23.07.2025 12:08 โ€” ๐Ÿ‘ 5    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Awesome! Thanks for letting me know and I feel quite honoured ๐Ÿ˜Š

Small thing; I use Claude and Claude Code in my day to day (not Cursor).

10.07.2025 16:07 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Using Architecture Decision Records (ADRs) with AI codingย assistants Last week my former colleague Doug Todd asked a question about recording decisions on BlueSky: Of course I replied suggesting Architecture Decision Records (ADRs), with a pointer to the at_protocol GitHub repo where we use them. A few days back Doug demoed how he's using ADRs with his coding assistant (Cursor), and I feel like this is going to transform the uptake of the approach.

Architecture Decision Records (ADRs) are a great way of recording why/what etc. for teams. But they're also a great way to provide context to AI coding assistants.

10.07.2025 15:32 โ€” ๐Ÿ‘ 2    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Thanks. This is one of my inspirations. Might nab the template actually :)

03.07.2025 14:31 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I've been trying different ways of tracking coding/project "decisions" (e.g. I chose to do something "this" way instead of "that" way).

Having tried multiple different ways I think I'm settling on just having a "decisions" directory in the repo. This has the added benefit of adding context for LLMs

03.07.2025 12:52 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Claude: So your fix was correct, and this **is** expected Dart behavior. Thanks for teaching me something - I should have recognized this fall-through rule for empty cases!

14.06.2025 11:27 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

TIL: #Dart has fallthrough execution of empty switch statements

14.06.2025 11:26 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I feel the same. There are some bits that look pretty cool and fresh but others that are a readability nightmare.

12.06.2025 11:23 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The casting team for the tv show did an amazing job!

28.05.2025 18:11 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

What about no names? Youโ€™ve got the icons as a reference and I imagine users are fairly familiar with their habits that icons and the order in the list is enough.

09.05.2025 09:10 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Capacities is my go to

21.04.2025 10:38 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

Had a first try at using Rive for animating the @stashhubapp.com logo.

#IndieDev #FlutterDev

16.04.2025 13:07 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Just tried "agentic" coding for migrating my codebase from Freezed 2.x to Freezed 3.0. It was... okay... The easy stuff it did well but a fairly simple find/replace would have also worked. It did not work when moving from .maybe() to switch statements and pattern matching.

#FlutterDev

16.04.2025 13:04 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Screenshot of IDE with a commit from 4 years ago.

Screenshot of IDE with a commit from 4 years ago.

Scary when you get a reminder of how long you've been working on a project for #FlutterDev #IndieDev

25.03.2025 09:57 โ€” ๐Ÿ‘ 3    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Good use of the domain.

06.03.2025 23:53 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image Post image

VERY excited for this!

#Spiritbox #Whitechapel #Metalcore #Deathcore

06.03.2025 17:29 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Iโ€™ve never attended a hackathon before. Could you tell me what to expect? What do I need to bring?

03.03.2025 15:21 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I think itโ€™s just our target audience is pretty 50/50 with the type of device they have.

03.03.2025 13:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

It was at this point he realised he should have just created a custom render widget.

#FlutterDev

03.03.2025 11:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Downloads are pretty 50:50 but paying users is 25:75 (๐Ÿค–:๐ŸŽ)

03.03.2025 10:00 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

What did they say about it?

27.02.2025 09:32 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image Post image

Got some new @stashhubapp.com business cards

#FlutterDev #SmallBusiness

20.02.2025 11:14 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Amazing stuff! Looking forward to the future of Dart on the server.

19.02.2025 12:52 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Adding Paddle to a Flutter Web App Integrating Paddle into a Flutter web app for subscription management can be challenging, especially without an official SDK. In this post, I walk through my process of using JavaScript interop, Fireb...

New blog post.

#FlutterDev

dougtodd.dev/posts/adding...

16.02.2025 21:46 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

This looks amazing! As a non- web dev that sometimes needs to make web tools this could be very handy. Thank you.

10.02.2025 16:42 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image Post image Post image Post image

Grammys: Sewing Stash Edition ๐Ÿชก

Which one do you find most relatable? ๐Ÿ˜†

#SewingSky #SewingHumour #SewingMemes

10.02.2025 13:58 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

- AsyncValue (while not exclusive to Riverpod) is a wonderful encapsulation of async data and all the ways you might want your UI to handle it
- Built-in caching is nice
- Testing is simple as you can just override the values to the state you want for your tests.

08.02.2025 22:37 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

For me the pros are:
- DI is handled for you (don't have to worry about scoped Providers)
- You can "chain" providers together VERY easily and if the "parent" provider refreshes, the child ones do too (if you want them to)

08.02.2025 22:37 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

Love me a good dbrand skin

17.01.2025 12:07 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@dougtodd.dev is following 20 prominent accounts