<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>NewAgeDevs Blog</title><description>Guides, product updates and stories from NewAgeDevs.</description><link>https://newagedevs.com/</link><item><title>I built it to count our own days. The hard part was the rectangle that repaints at midnight.</title><link>https://newagedevs.com/blog/a-rectangle-that-repaints-at-midnight/</link><guid isPermaLink="true">https://newagedevs.com/blog/a-rectangle-that-repaints-at-midnight/</guid><description>A couples widget that has to be right at midnight with no app running — and what that one constraint did to the data model, the renderers, the database and the privacy story. Plus the destructive migration that wiped the installed base.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>Product</category></item><item><title>Dhaka&apos;s transit data is all published. None of it was in a form you could query.</title><link>https://newagedevs.com/blog/dhaka-transit-data-nobody-could-query/</link><guid isPermaLink="true">https://newagedevs.com/blog/dhaka-transit-data-nobody-could-query/</guid><description>Every bus route, fare chart, train timetable and launch schedule in Bangladesh is public — as PDFs, scans and gazettes. This is how five of them became 2 MB of JSON that works with no connection, what it still gets wrong, and why every fare in the app carries a tilde.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>Product</category></item><item><title>We made three video downloaders. Media Saver does all of their jobs.</title><link>https://newagedevs.com/blog/one-downloader-instead-of-three/</link><guid isPermaLink="true">https://newagedevs.com/blog/one-downloader-instead-of-three/</guid><description>Instagram and Facebook in full, six more platforms, and any website through its own browser — including HLS streams. How it extracts on your phone instead of our servers, why its downloads run on up to four connections, and exactly where your link does and does not go.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>Product</category></item><item><title>Five bugs you only find on someone else&apos;s phone</title><link>https://newagedevs.com/blog/five-bugs-you-only-find-on-someone-elses-phone/</link><guid isPermaLink="true">https://newagedevs.com/blog/five-bugs-you-only-find-on-someone-elses-phone/</guid><description>A crash before the device is unlocked, a string that interpolated the wrong half of itself, and three more that never reproduced on the machine they were written on.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>Engineering</category></item><item><title>My volume button broke, so I drew a new one on the screen</title><link>https://newagedevs.com/blog/my-volume-button-broke-so-i-drew-a-new-one/</link><guid isPermaLink="true">https://newagedevs.com/blog/my-volume-button-broke-so-i-drew-a-new-one/</guid><description>A Samsung A30 with a dead volume rocker, a weekend fix that turned into ten thousand installs, and everything Android does to make an on-screen overlay harder than it looks — including the reviews I cannot do anything about.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>Product</category></item><item><title>We put a music-separation model on a phone. The model was the easy part.</title><link>https://newagedevs.com/blog/music-separation-on-a-phone/</link><guid isPermaLink="true">https://newagedevs.com/blog/music-separation-on-a-phone/</guid><description>Splitting a song into vocals, bass, drums and everything else runs comfortably on a laptop. Getting it onto a phone meant fighting the memory allocator, rejecting a GPU backend with data before accepting a different one, and rewriting an inverse STFT in Dart.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>Engineering</category></item></channel></rss>