<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title><![CDATA[ kiesel - pckt ]]></title>
        <link><![CDATA[ https://kiesel.pckt.blog ]]></link>
        <description><![CDATA[  ]]></description>
        <language>en</language>
        <pubDate>Mon, 08 Jun 2026 05:04:43 +0000</pubDate>

                    <item>
                <title>React Native is not a browser</title>
                <link>https://kiesel.pckt.blog/react-native-is-not-a-browser-28prbg2</link>
                <description><![CDATA[My next #notai generated post is about another day of developing the kiesel app. The post composer for kiesel.app was nearly finished and I was going to upload my very first image. This post is about 3 bugs, which appeared in React Native, but would have worked flawlessly in the browser. To get my Mastodon OAuth working and the POST to /api/v1/apps happy, it requires a redirect_uri. Since I am using expo.dev, the Linking.createURL will give me a exp:// prefixed url. That worked for a while. But ...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">react-native-is-not-a-browser-28prbg2</guid>
                <pubDate>Fri, 05 Jun 2026 06:07:24 +0000</pubDate>
                            </item>
                    <item>
                <title>Strict Types and expo OTA</title>
                <link>https://kiesel.pckt.blog/strict-types-and-expo-ota-qdyg9a9</link>
                <description><![CDATA[My next #notai generated post is about another day of developing the kiesel app. I really like the workflow of using expo.dev and its features to iterate fast on developing kiesel, but this time it confused me and made my debugging sessions longer. The strict types for typescript made my life very easy, but didn&#039;t match what I expected. And for atproto and Mastodon character limits I found a gentle way to make it possible to respect both. On this day I finally added expo-updates package from exp...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">strict-types-and-expo-ota-qdyg9a9</guid>
                <pubDate>Fri, 29 May 2026 09:25:02 +0000</pubDate>
                            </item>
                    <item>
                <title>&quot;It works&quot; was a lie</title>
                <link>https://kiesel.pckt.blog/it-works-was-a-lie-qd559a9</link>
                <description><![CDATA[My next #notai generated post is about another day of developing the kiesel app. This dev day was a bit sad. The happy path of each implementation worked, but as soon as I tried it in real usage: fail. The list view of kiesel has support for pull-to-refresh. The last changes somehow made the list after pull-to-refresh: empty. Each of the tabs: empty. That means everything needs to be reloaded and the cache didn&#039;t work. The reason was that the refresh mode was implemented in such a way that it re...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">it-works-was-a-lie-qd559a9</guid>
                <pubDate>Mon, 25 May 2026 18:49:22 +0000</pubDate>
                            </item>
                    <item>
                <title>Introducing Mastodon and Audio</title>
                <link>https://kiesel.pckt.blog/introducing-mastodon-and-audio-d1ew23r</link>
                <description><![CDATA[My next #notai generated post is about another day of developing the kiesel app. After being atproto only for some dev days, we have approached the classic fediverse with Mastodon (ActivityPub) by implementing an adapter pattern. And as a quickwin added even the audio feed. The integration of atproto for Bluesky was roughly 12 direct @atproto/api calls to fill the feed, 8 for the profile screen and the thread screen had also 6. But now comes Mastodon. Of course we didn&#039;t start with protocol === ...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">introducing-mastodon-and-audio-d1ew23r</guid>
                <pubDate>Fri, 22 May 2026 22:48:26 +0000</pubDate>
                            </item>
                    <item>
                <title>Video Error 153 and Empty Video Feeds</title>
                <link>https://kiesel.pckt.blog/video-error-153-and-empty-video-feeds-wu7f64p</link>
                <description><![CDATA[My next #notai generated post is about another day of developing the kiesel app. This day is on empty video lists and a YouTube Error 153 which I thought was a temporary error and ended up having a useful root cause. The feed of the kiesel.app is full of all kinds of embedded contents or original posts. The video feed on the other hand is meant to show only videos (like the audio feed for audio and image for image feed). I wanted to lazy load next page if the current page is empty. But the first...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">video-error-153-and-empty-video-feeds-wu7f64p</guid>
                <pubDate>Sun, 17 May 2026 08:10:27 +0000</pubDate>
                            </item>
                    <item>
                <title>Embedding consent gate and oEmbed</title>
                <link>https://kiesel.pckt.blog/embedding-consent-gate-and-oembed-sbk3z85</link>
                <description><![CDATA[My next #notai generated post is about another day of developing the kiesel app. This one is about lazy loading embeds (like YouTube videos) only if the user approves and using oEmbed endpoints as cheap api endpoints. The atproto protocol gives me a nice title and thumbnail and some text for everything linked. No third party involved - that&#039;s nice. I don&#039;t like to always leave the app for watching a video or audio content referenced, so I wanted to make this opt-in for those I trust and otherwis...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">embedding-consent-gate-and-oembed-sbk3z85</guid>
                <pubDate>Tue, 12 May 2026 10:39:31 +0000</pubDate>
                            </item>
                    <item>
                <title>Handling PDS, darkmode and pretending interactions</title>
                <link>https://kiesel.pckt.blog/handling-pds-darkmode-and-pretending-interactions-5407v73</link>
                <description><![CDATA[My second #notai generated post is about another day of developing the kiesel app. I figured that atproto is an awesome source of subscribable data, thus it was supported from the beginning. Only using app passwords in first place, since I didn&#039;t know the app name, yet. This day went on PDS resolution, dark mode and making likes feel fast. Since I am hosting my account on eurosky.social, it is not bsky.social as storage. And my initial approach did not work. The resolution needs 3 steps: resolve...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">handling-pds-darkmode-and-pretending-interactions-5407v73</guid>
                <pubDate>Fri, 08 May 2026 12:23:34 +0000</pubDate>
                            </item>
                    <item>
                <title>Hello World at &quot;building kiesel.app&quot;</title>
                <link>https://kiesel.pckt.blog/hello-world-at-building-kieselapp-tzznqge</link>
                <description><![CDATA[This is my very first (not ai generated) post about building kiesel.app. Even though the initial idea is to launch the app mainly for german speaking end users, we will keep the development blog english for other people of the fediverse or atmosphere to read and contribute on a more creator/technology side of things when it comes to software development or building something people love and use. In a later post I will talk more about the code name kiesel.app and what it is. But for now let&#039; say ...]]></description>
                <author>kiesel</author>
                <guid isPermaLink="false">hello-world-at-building-kieselapp-tzznqge</guid>
                <pubDate>Fri, 24 Apr 2026 09:25:40 +0000</pubDate>
                                <enclosure url="https://pckt-blog-media.s3.us-east-2.amazonaws.com/cover_image/f71e3a58-a857-4edb-a68a-81d74c41eb87/conversions/kiesel_stein_klein-large-feed_thumb.webp" type="image/jpeg" />
                            </item>
            </channel>
</rss>