<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
    <link href="https://partout.io/feed.xml" rel="self" type="application/atom+xml" />
    <link href="https://partout.io/" rel="alternate" type="text/html" />
    <updated>2026-10-18T12:45:24+02:00</updated>
    <id>https://partout.io/feed.xml</id>
    <title type="html">Partout is the easiest way to build cross-platform tunnel apps.</title>
    <subtitle>Partout is the easiest way to build cross-platform tunnel apps. Set up a VPN in a few lines so that you can focus on your product.</subtitle>
    <author>
        <name>Davide De Rosa</name>
        
    </author>

    
    
    
    
    <entry>
        
        <title type="html">Q4 2026: Zig, Windows, and setbacks</title>
        <link href="https://partout.io/2026/10/zig-windows-and-setbacks/" rel="alternate" type="text/html" title="Q4 2026: Zig, Windows, and setbacks" />
        <published>2026-10-18T00:00:00+02:00</published>
        <updated>2026-10-18T00:00:00+02:00</updated>
        <id>https://partout.io/2026/10/zig-windows-and-setbacks</id>
        <content type="html" xml:base="https://partout.io/2026/10/zig-windows-and-setbacks/"><![CDATA[<h2 id="the-zig-rewrite">The Zig rewrite</h2>

<p>As I mentioned <a href="https://davidederosa.com/2026/08/i-joined-the-rewrite-bandwagon/">in a personal post</a>, last summer I fully ported Partout from Swift to the Zig language. The benefits of the migration are countless, and the legacy Swift layer was eventually removed from the official releases last month. The fast rollout brought the apps back to their original footprint, with the Mac .dmg artifacts even below the 10MB threshold. The removal of public VPN providers was also part of the rollout.</p>

<p>The reason why I chose Zig is because it dramatically simplified the development of the framework on non-Apple platforms, where Swift proved to be a serious bottleneck in terms of support, tooling, binary size, and whatnot. It is certainly harder to write correct code in Zig than in Swift, but the long-term tradeoff is brutally convenient.</p>

<h2 id="cross-platform-integration">Cross-platform integration</h2>

<p>I know, it’s literally taking ages, but it’s very challenging to pick a software design that fits platforms where the native VPN integration differs so much. Let alone the different programming languages and the machinery of FFI.</p>

<p>Truth to be said, except for a few UI leftovers, the Android app could be released in a week of trivial work. However, I decided to squeeze a little more on the cross-platform design because the way VPNs work on Windows is radically different, and I don’t want to find myself doing another rewrite in a month.</p>

<p>So yeah, Android is still on hold, but on the other hand Windows development has advanced immensely and will see an MVP by the end of the year. I dare to say that Passepartout will be the most innovative VPN app on Windows in particular.</p>

<h2 id="setbacks-in-passepartout">Setbacks in Passepartout</h2>

<p>Overall, I did a crazy lot of work without apparent changes to the Passepartout end-user apps, and it’s harder and harder to justify that customers pay for an app that seemingly hasn’t added major features in a year. This is a very tiring feeling that could lead some to burnout.</p>

<p>But I know inside that all this work has a deep meaning to the future of the project, and soon a day will come where what I have planned will be unlocked all at once. Let’s say that 2026 has been kind of “all work no play”, while 2027 will be more fun.</p>

<p>Stay tuned.</p>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[The Zig rewrite]]></summary>
        
    </entry>
    
    <entry>
        
        <title type="html">Q3 2026: Android, faster OpenVPN, and Providers</title>
        <link href="https://partout.io/2026/08/android-faster-openvpn-and-providers/" rel="alternate" type="text/html" title="Q3 2026: Android, faster OpenVPN, and Providers" />
        <published>2026-08-11T00:00:00+02:00</published>
        <updated>2026-08-11T00:00:00+02:00</updated>
        <id>https://partout.io/2026/08/android-faster-openvpn-and-providers</id>
        <content type="html" xml:base="https://partout.io/2026/08/android-faster-openvpn-and-providers/"><![CDATA[<h2 id="passepartout-for-android">Passepartout for Android</h2>

<p>The first time I announced an Android release was towards <a href="/2025/11/update-q4-2025/#android-mvp">the end of 2025</a>, with a smoke test dating <a href="https://www.reddit.com/r/passepartout/comments/1n3l592/hey_i_made_it_work_on_android/">even earlier</a>. Passepartout for Android became a reality two months ago, when I launched a small private beta. If you’re interested in testing it, send an email to <a href="mailto:beta@passepartoutvpn.app">beta@passepartoutvpn.app</a>. The new, still basic app should launch on the Google Play Store in September or October, but it needs responsible testers first.</p>

<h2 id="faster-openvpn">Faster OpenVPN</h2>

<p>While working on the Android app, I rewrote the networking layer backing the OpenVPN implementation of Partout. This was part of a much bigger rewrite that will be activated in the upcoming months, but the results in OpenVPN were already impressive. Even more on Android!</p>

<p>Users would hardly notice changes during daily usage, but a simple speed test in Passepartout should reveal significantly higher speeds than the official apps like OpenVPN Connect, especially on fast connections. Give it a try, I’m curious.</p>

<h2 id="issues-with-profiles">Issues with profiles</h2>

<p>I found the time to address some <a href="https://github.com/partout-io/passepartout/milestone/95?closed=1">long-standing issues</a> with Apple profiles. All apps now use the keychain as the source of truth for profile storage, which is both fast and reliable. The first effect is improved performance, synchronization, and deduplication. The second one is that Mac profiles finally behave as expected: they survive account switches, and App Store and .dmg profiles <a href="https://github.com/partout-io/passepartout/issues/1496">don’t overwrite each other</a>.</p>

<h2 id="providers-will-be-discontinued-soon">Providers will be discontinued soon</h2>

<p>As mentioned in the past, and several times, <a href="https://github.com/orgs/partout-io/discussions/1904#discussioncomment-17851292">provider modules will be discontinued</a>, and it’s a decision I won’t back off from. Providers add great complexity, don’t work as I wish, therefore I don’t feel like charging for the feature. Given the lack of energy and motivation to improve it, I’d rather drop the feature and maybe reintroduce it in the future, properly designed.</p>

<p>Today, the users of Passepartout have proved to have other priorities, like self-hosting, privacy, and new platforms. I want to focus entirely on that demand.</p>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[Passepartout for Android]]></summary>
        
    </entry>
    
    <entry>
        
        <title type="html">OpenVPN –tls-crypt-v2 and ‘Split DNS’</title>
        <link href="https://partout.io/2026/04/openvpn-tls-crypt-v2-and-split-dns/" rel="alternate" type="text/html" title="OpenVPN –tls-crypt-v2 and ‘Split DNS’" />
        <published>2026-04-20T00:00:00+02:00</published>
        <updated>2026-04-20T00:00:00+02:00</updated>
        <id>https://partout.io/2026/04/openvpn-tls-crypt-v2-and-split-dns</id>
        <content type="html" xml:base="https://partout.io/2026/04/openvpn-tls-crypt-v2-and-split-dns/"><![CDATA[<h2 id="on-q1-and-android">On Q1 and Android</h2>

<p>These months have seen steady yet seemingly dummy releases, but I can’t even describe <a href="https://github.com/partout-io/passepartout/milestones?state=closed">the amount of work</a> behind them to rethink Passepartout as a cross-platform application on top of a C ABI. I don’t feel like providing another deadline that I won’t meet, so I’ll just say that 99% of my work volume is towards Partout and the MVP of Passepartout for Android.</p>

<h2 id="parity-with-openvpn">Parity with OpenVPN</h2>

<p>Passepartout will <em>never</em> be a 1:1 replacement for the official OpenVPN client, and some work has to be done at some point to improve performance. What matters, though, is that Passepartout supports those features users require the most. One of them was <code class="language-plaintext highlighter-rouge">tls-crypt-v2</code>, and version 3.7.0 has finally introduced it.</p>

<h2 id="split-dns">Split DNS</h2>

<p>Passepartout 3.8.0 adds something quite unique in the Apple ecosystem, which is <em>true</em> <a href="https://github.com/partout-io/passepartout/issues/503">split DNS</a>. You will find the (paid) feature in the DNS module under the name “Only for configured domains”. By enabling this option, the search domains will act as a filter to determine whether a DNS query goes through the VPN or not. This makes sense in those scenarios where the VPN is not meant to replace the default gateway, but rather to provide access to a private network with its internally resolved hostnames.</p>

<p>Thanks to <a href="https://github.com/awein">Andrew</a> for the original report and feature request.</p>

<h2 id="exporting-configurations">Exporting configurations</h2>

<p>Another (paid) feature added in 3.7.0 is the ability to export OpenVPN/WireGuard modules as configuration files, i.e., .ovpn and .conf files respectively. The latter is supported in the official (and free) WireGuard app, but you’ll rarely find apps that export OpenVPN profiles as .ovpn or via AirDrop, at least on iOS. I’m proud to say that Passepartout is one of them.</p>

<h2 id="leaving-reddit">Leaving Reddit</h2>

<p>This is where the project was born in 2018, but it seems to me that <a href="https://www.reddit.com/r/passepartout">Reddit</a> no longer is the right place to start constructive and well-mannered conversations. Therefore, all support, bug reports, and feature requests are now handled on <a href="https://github.com/orgs/partout-io/discussions">GitHub Discussions</a>. The subreddit remains open for general discussion, but I’m out, except for the typical project announcements.</p>

<p><a href="https://github.com/partout-io/partout">GitHub</a> is now the single source of truth for the development of Partout/Passepartout.</p>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[On Q1 and Android]]></summary>
        
    </entry>
    
    <entry>
        
        <title type="html">2026: One year later</title>
        <link href="https://partout.io/2026/01/2026-one-year-later/" rel="alternate" type="text/html" title="2026: One year later" />
        <published>2026-01-04T00:00:00+01:00</published>
        <updated>2026-01-04T00:00:00+01:00</updated>
        <id>https://partout.io/2026/01/2026-one-year-later</id>
        <content type="html" xml:base="https://partout.io/2026/01/2026-one-year-later/"><![CDATA[<h2 id="2025-was-hard">2025 was HARD</h2>

<p>Last year, I published two posts about the <a href="https://davidederosa.com/2025/03/rewriting-passepartout-for-v3/">reasons for Passepartout v3</a> and the <a href="/2025/03/the-roadmap-for-2025/">challenging two months</a> it took to recover the app stability after its first release.</p>

<p>There’s been 51 releases in 2025, about one per week, and not because I deem regular updates necessary per se. In fact, weekly app updates with fake changelogs typically suggest corporate BS.</p>

<p>In my case, I refactored <em>so many</em> 1000s of lines of sensitive code that the small-to-transparent updates were my way to avoid catastrophes. It’s easy to spot regressions in short development cycles, and the new release strategy has proven to be very effective throughout the year.</p>

<h2 id="100-open-source-software-oss">100% Open-Source Software (OSS)</h2>

<p>At some point during the year, I decided to make <strong>Partout fully open-source</strong> again. The goal was for it to showcase multiple aspects of free software development, including:</p>

<ul>
  <li>An open-source project that is <strong>financially sustainable</strong>.</li>
  <li><strong>Reproducible builds</strong> in Passepartout CI/CD.</li>
  <li>Not only coding, also <a href="https://github.com/orgs/partout-io/projects?query=is%3Aopen"><strong>planning in public</strong></a>.</li>
  <li>Being a reference project for <a href="https://davidederosa.com/cross-platform-swift/"><strong>cross-platform Swift</strong></a>.</li>
</ul>

<p>The first point is pretty unique nowadays, and I’m proud that Passepartout makes the whole project survive and thrive without external support except for the satisfied customers around the world.</p>

<p>Making Partout and Passepartout open-source is how I give back to the programming community, especially to the indie developers struggling to make a dent. I wish my stories could inspire and guide others to turn their side-project into self-sustaining products.</p>

<h2 id="expectations-for-2026">Expectations for 2026</h2>

<p>Year 2025 exceeded the expectations I had at the beginning of the year, by far. Some seemingly impossible things became a reality, whereas a few existing features went off the radar.</p>

<p>For the record, these are the GitHub Projects of:</p>

<ul>
  <li><a href="https://github.com/orgs/partout-io/projects/23/views/2">2026 Q1</a></li>
  <li><a href="https://github.com/orgs/partout-io/projects/20/views/2">2025 Q2-Q4</a> (Closed)</li>
  <li><a href="https://github.com/orgs/partout-io/projects/9/views/2">2025 Q1</a> (Closed)</li>
  <li><a href="https://github.com/orgs/partout-io/projects/1/views/8">2024</a> (Closed, largely private)</li>
</ul>

<h3 id="cross-platform">Cross-platform</h3>

<p>One year ago, making Passepartout cross-platform was utopic because:</p>

<ul>
  <li>I had never really considered the idea.</li>
  <li>Swift is clumsy outside of the Apple ecosystem.</li>
</ul>

<p>When I decided to take my chances around March, though, I (very) patiently figured out the (many) steps to take to make it real. Today, I am at around 80-85% to bring Passepartout to all the operating systems that Swift supports (Android, Windows, Linux).</p>

<p>The Android MVP was part of the <a href="/2025/11/update-q4-2025/">previous update</a>, but it’s still in the works because I underestimated the needed effort, plus “life issues” showed up. Windows/Linux will follow later on. Cross-platform remains the top priority of 2026.</p>

<h3 id="connectivity">Connectivity</h3>

<p>Passepartout is starting to lag behind in terms of connectivity options. It’s not that I don’t care, it’s only a matter of working volume, as usual. The work for cross-platform is pretty intense, but connectivity comes next in my priorities:</p>

<ul>
  <li>Increase feature-parity with OpenVPN</li>
  <li>Other VPN protocols</li>
  <li>Better support for proxies</li>
  <li>Possibly more obfuscation</li>
</ul>

<h3 id="providers">Providers</h3>

<p>The other goal of Q4 was the umpteenth rework of the providers integration. Honestly, I’m thinking of discontinuing the feature because the cost/benefit of maintaining it is ridiculously disadvantageous.</p>

<p>The primary target of Passepartout is people using personal or company servers. Add to that, VPN providers don’t easily offer access to their public APIs. All in all, providers are a huge PITA with marginal returns on investment, and they reguarly take my time away from things that matter more to the audience.</p>

<p>For what it’s worth, and unfortunately, the <a href="https://mullvad.net/it/blog/removing-openvpn-15th-january-2026">Mullvad deadline for OpenVPN</a> will not be met. The Mullvad provider is expected to stop working in Passepartout in the upcoming weeks. Manually imported WireGuard profiles will work as usual.</p>

<h3 id="follow-passepartout-on-reddit">Follow Passepartout on Reddit</h3>

<p>Subscribe to the <a href="https://www.reddit.com/r/passepartout">Passepartout subreddit</a> for the latest updates about the app.</p>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[2025 was HARD]]></summary>
        
    </entry>
    
    <entry>
        
        <title type="html">Update: Q4 2025</title>
        <link href="https://partout.io/2025/11/update-q4-2025/" rel="alternate" type="text/html" title="Update: Q4 2025" />
        <published>2025-11-04T00:00:00+01:00</published>
        <updated>2025-11-04T00:00:00+01:00</updated>
        <id>https://partout.io/2025/11/update-q4-2025</id>
        <content type="html" xml:base="https://partout.io/2025/11/update-q4-2025/"><![CDATA[<p>The year is ending, and in this last quarter I had to reorganize a few priorities of the project. Let me tell you more about them.</p>

<h2 id="remote-configuration">Remote configuration</h2>

<p>A few months ago, I introduced the use of remote <a href="https://martinfowler.com/articles/feature-toggles.html">feature flags</a> in Passepartout. This was a game-changer to avoid disruption when making potentially dangerous changes to the app behavior, and allowed me to make huge leaps forward when it comes to the cross-platform initiative.</p>

<p>During September and October, I went through the activation of the new OpenVPN and WireGuard cross-platform implementations under the hood, which from time to time led to inevitable bugs. This time, though, I could turn off the faulty code instantly without going through Apple review. The approach sped up the internal app evolution immensely, and the upcoming 3.6.0 should wrap up the most difficult stage of porting Passepartout to new platforms, which was the VPN layer.</p>

<p>Thanks to all the kind users that helped me resolve the bugs that emerged along the way. I couldn’t make it without your support.</p>

<h2 id="android-mvp">Android MVP</h2>

<p>This goal alone should shed light on those cross-platform toggles in Preferences &gt; Advanced that some users may have noticed recently in Passepartout.</p>

<p>Together with remote configurations, those toggles allowed me to live-test the new cross-platform implementations of the OpenVPN/WireGuard layers. If things went really wrong, turning off the remote configuration would immediately restore operation. Rinse and repeat until stability. The result of this process is however amazing, because it’s the living proof that Passepartout <em>will</em> work outside of the Apple platforms without going through long and flaky beta phases.</p>

<p>That’s why a stable 3.6.0 would mean that things are finally aligned to start the foundations of non-Apple apps, and <strong>Passepartout for Android</strong> is the first one in my list. We’re talking about a <em>very</em> minimal app here, but last summer I’ve done enough tests to confirm that the VPN functionality of Partout <a href="https://www.reddit.com/r/passepartout/comments/1n3l592/hey_i_made_it_work_on_android/">works on Android</a>. Windows and Linux are planned for the first half of 2026, but take it with a grain of salt, nothing is set in stone.</p>

<h2 id="interoperability">Interoperability</h2>

<p>Partout already operates on data structures that are very friendly to import/export operations, but Passepartout didn’t have a UI that exposed them. Version 3.6.0 will introduce a few features for that matter, specifically:</p>

<ul>
  <li><strong>Export a profile</strong> in a human-readable Partout/Passepartout JSON format, also suitable for import.</li>
  <li><strong>Share a profile</strong> via AirDrop or any other available means.</li>
  <li><strong>Import a profile via text or QR</strong>, to increase feature-parity with the official WireGuard app in particular.</li>
  <li><strong>Copy modules</strong> across profiles, as <a href="https://github.com/orgs/partout-io/discussions/1258">discussed here</a>.</li>
</ul>

<p>Sharing buttons will be available through the “iCloud and Sharing” paywall, a feature included in all the “Core” and “Complete” packages.</p>

<p>Going forward, the JSON format will be the universal standard for all the Partout/Passepartout apps, and regardless of the target OS. I like the idea of promoting a custom file format as a crucial step towards brand-awareness. It goes without saying, other protocol-specific formats keep being supported for import, and later versions will also be able to export single modules like OpenVPN (as .ovpn) and WireGuard (as .conf).</p>

<h2 id="farewell-to-openvpn-compression">Farewell to OpenVPN compression</h2>

<p>Compression support will be removed from OpenVPN in December 2025 due to the old <a href="https://openvpn.net/security-advisory/the-voracle-attack-vulnerability/">VORACLE</a> vulnerability. OpenVPN Inc. has deprecated compression for years, and any decently sized VPN provider shouldn’t be using compression at the time being. Some users may still be affected in legacy environments, but this is non-negotiable.</p>

<p>Therefore, by 2026, compression will be gone for good in Passepartout. Make sure to update your server settings accordingly, or encourage your providers to not use compression in case they do.</p>

<h2 id="wireguard-in-providers">WireGuard in providers</h2>

<p>Let’s get this straight. Providers are the <em>most</em> annoying feature to maintain in Passepartout, to the point that sometimes I regret having introduced it (heh). Two months ago, I was about to add the WireGuard integration to providers, but then I had to take a step back because the current implementation of the Passepartout providers bears an excessive amount of complexity compared to the value that it offers.</p>

<p>So, this had to be taken more carefully to prevent progressive rot of the codebase. The providers in general will be re-thought and simplified, once again, and only after that will the WireGuard integration be reconsidered. For what it’s worth, I’ll try my best to meet <a href="https://mullvad.net/it/blog/removing-openvpn-15th-january-2026">the Mullvad deadline</a>.</p>

<p>If you have suggestions about how you would integrate providers in Passepartout, please <a href="https://www.reddit.com/r/passepartout">post them on Reddit</a>.</p>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[The year is ending, and in this last quarter I had to reorganize a few priorities of the project. Let me tell you more about them.]]></summary>
        
    </entry>
    
    <entry>
        
        <title type="html">Update: Q3 2025</title>
        <link href="https://partout.io/2025/09/update-q3-2025/" rel="alternate" type="text/html" title="Update: Q3 2025" />
        <published>2025-09-08T00:00:00+02:00</published>
        <updated>2025-09-08T00:00:00+02:00</updated>
        <id>https://partout.io/2025/09/update-q3-2025</id>
        <content type="html" xml:base="https://partout.io/2025/09/update-q3-2025/"><![CDATA[<p>This post starts a trend of quarterly updates about Passepartout. Being close to the end of Q3, this is mostly an overview of what I’ve done in the recent months, with an outlook on what I’m doing next.</p>

<h2 id="rebranding-to-partout">Rebranding to <em>Partout</em></h2>

<p>Passepartout will not change its name, but it will be part of a broader project named after its backbone: <em>Partout</em>. Partout is the <a href="https://github.com/partout-io/partout">Swift library</a>, now also cross-platform, of which Passepartout aims to be an elegant showcase. Easier to pronounce, shorter to type, the library I’m building is the very heart of Passepartout, and aims to provide a comprehensive, portable framework to create tunneling software. This website will soon reflect this new direction, I hope you’ll like it.</p>

<h2 id="cross-platform-is-real">Cross-platform is REAL!</h2>

<p>This is the grand goal of 2025, and the intense work of Q3 has taken me incredibly close to the finish line. I drafted the simplest PoC to test VPN connectivity, and I’m thrilled to say that it worked on all the new platforms I intend to support. I managed to connect with Partout to both OpenVPN and WireGuard servers on Linux, Windows, and even Android! It will take patient polish for a public MVP, but I’m positive that something will see the light by the end of the year.</p>

<p>Considering that in January I had little hope that Swift could ever be so ubiquitous, this accomplishment feels kind of <em>legendary</em> to me. I’m proud, and despite the difficulties, the whole experience of native multiplatform has been fun and deeply satisfying.</p>

<p>If you want to learn more, I’ve been writing about this long journey in <a href="https://davidederosa.com/cross-platform-swift/">“Cross-platform Swift”</a>, a blog series that I’ve been publishing on my personal website. I promise, if you are a Swift developer willing to port your apps and libraries on non-Apple platforms, you will find my discoveries very helpful.</p>

<h2 id="new-features-wisely">New features, wisely</h2>

<p>As stability is paramount in Passepartout, I’ve taken a more conservative approach to new features. All the disruptive additions are now rolled out dynamically, in a way that I can instantly revert a faulty update without involving the tedious App Review in the process. The cross-platform initiative is taking 100% of my focus, so new features are still on hold.</p>

<p>What’s been done:</p>

<ul>
  <li><strong>New paywall</strong>: Recently activated to make the purchase flow a bit less confusing.</li>
  <li><strong>TV web import</strong>: Today, I restored the web QR feature on the Apple TV, which finally allows uploading profiles without an iOS or macOS device. Incidentally, without even iCloud. The feature will be under observation for 2 weeks before deeming it stable. If so, a convenient <strong>Send to TV</strong> button will be added to the native apps as well.</li>
</ul>

<p>What’s coming next:</p>

<ul>
  <li><strong>WireGuard in providers</strong>: Starting with Mullvad. This is mostly done, but I’m trying not to rush it. Let’s give it a couple of weeks still.</li>
  <li><strong>Interoperability</strong>: Importing and exporting profiles and modules, plus a universal format for Passepartout/Partout profiles. Sharing profiles with other people. These elements will give the project a stronger and unique identity.</li>
</ul>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[This post starts a trend of quarterly updates about Passepartout. Being close to the end of Q3, this is mostly an overview of what I’ve done in the recent months, with an outlook on what I’m doing next.]]></summary>
        
    </entry>
    
    <entry>
        
        <title type="html">Discontinuining support for the ProtonVPN provider</title>
        <link href="https://partout.io/2025/07/discontinuing-support-for-the-protonvpn-provider/" rel="alternate" type="text/html" title="Discontinuining support for the ProtonVPN provider" />
        <published>2025-07-18T00:00:00+02:00</published>
        <updated>2025-07-18T00:00:00+02:00</updated>
        <id>https://partout.io/2025/07/discontinuing-support-for-the-protonvpn-provider</id>
        <content type="html" xml:base="https://partout.io/2025/07/discontinuing-support-for-the-protonvpn-provider/"><![CDATA[<p>Recently, I realized that the public ProtonVPN API <a href="https://www.reddit.com/r/ProtonVPN/comments/1kr3yu9/byebye_api_power_users_have_been_shut_out_by/">was made private</a>, which in turn left the infrastructure in Passepartout outdated for a while. In my opinion, these are reasonable moves by public providers that don’t want their customers to use third party apps, because it would require additional customer support. While I believe that offering API plans for integrating alternative clients or resellers would be a nice addition, it’s absolutely fine if they don’t want to.</p>

<p>Therefore, the ProtonVPN provider will be removed next week from the supported Passepartout providers.</p>

<p>You can find more information <a href="https://github.com/partout-io/partout/pull/129">in the related PR</a>.</p>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[Recently, I realized that the public ProtonVPN API was made private, which in turn left the infrastructure in Passepartout outdated for a while. In my opinion, these are reasonable moves by public providers that don’t want their customers to use third party apps, because it would require additional customer support. While I believe that offering API plans for integrating alternative clients or resellers would be a nice addition, it’s absolutely fine if they don’t want to.]]></summary>
        
    </entry>
    
    <entry>
        
        <title type="html">The roadmap for 2025</title>
        <link href="https://partout.io/2025/03/the-roadmap-for-2025/" rel="alternate" type="text/html" title="The roadmap for 2025" />
        <published>2025-03-17T00:00:00+01:00</published>
        <updated>2025-03-17T00:00:00+01:00</updated>
        <id>https://partout.io/2025/03/the-roadmap-for-2025</id>
        <content type="html" xml:base="https://partout.io/2025/03/the-roadmap-for-2025/"><![CDATA[<p>Recently, I made <a href="https://github.com/orgs/partout-io/projects/9">my current backlog</a> public. I like to share what I’m working on, and in future posts, I’ll talk about how GitHub Projects helps me plan the development of Passepartout without losing my mind.</p>

<p>Here I present a sneak peek of what 2025 has been so far, and what I envision for the remainder of the year.</p>

<h2 id="short-term">Short-term</h2>

<h3 id="stability-again">Stability, again</h3>

<p>Reaching stability after rewriting Passepartout v3 has been <em>extremely</em> challenging. Despite being a mid-to-small project, it’s insanely hard to keep track of all the tiny details and edge cases covered in such a long development history. Regressions (i.e. features that used to work but are broken by an update) are just inevitable.</p>

<p>I wonder how many people have realized that <a href="https://github.com/partout-io/passepartout/releases">Passepartout has seen 14 updates</a> in less than two months. The criticism, the problems with in-app purchases, and the unforgiving reviews that most customers don’t care to update when a problem is fixed. The funniest part was those blaming me for being a “money grabber” at a time when the cost/benefit ratio of working on Passepartout was at a historical minimum. I worked up to 100h/week while seeing sales going down 60%.</p>

<p>But I’m still alive!</p>

<h3 id="providers-api">Providers API</h3>

<p>The JSON API of Passepartout has been a drag for too long. The time has come to rework it because it’s also a privacy concern for providers, API calls should be authenticated. The outcome will be a better overall integration and support for WireGuard in providers. Mullvad is likely to be the first one because of the <a href="https://www.reddit.com/r/mullvadvpn/comments/1gmf2id/removing_openvpn_15th_january_2026_blog_mullvad/">more stringent deadline</a>.</p>

<h3 id="standalone-mac-release">Standalone Mac release</h3>

<p>This is the one I’m mostly excited about: releasing Passepartout as a .dmg for macOS, outside of the App Store. The app will be limited to free features until I implement a way to receive payments without the App Store.</p>

<h2 id="mid-term">Mid-term</h2>

<h3 id="more-providers">More providers</h3>

<p>A direct consequence of a better-designed API is making room for more providers.</p>

<h3 id="more-protocols">More protocols</h3>

<p>I’d rather disclose this later, but I’d like to extend the suite of supported VPN protocols. Maybe more than just VPN.</p>

<h2 id="long-term">Long-term</h2>

<h3 id="new-platforms">New platforms</h3>

<p>A long-term goal that will not make it to 2025, but that’s been on the back of my head, is opening up to non-Apple platforms. There’s nothing concrete yet, but I’ve been designing the new codebase with this in mind.</p>

<h2 id="the-app-is-already-better-than-v2">The app is already better than v2</h2>

<p>Lastly, I want to spend some words on the new app.</p>

<p>We usually take things that work for granted and complain about things that don’t. It’s human nature. Over the years, I learned that a silent customer is a happy customer and that a noisy one may be right, but not that often.</p>

<p>Even when the update was receiving the biggest hate, I knew that the app would be better, but I could not blame the users “for not seeing it”. An app like Passepartout is best when you don’t notice that it’s running.</p>

<p>I know that the app is better from an engineering perspective. Let me tell you, instead, why v3 is better <em>as an user</em>:</p>

<ul>
  <li>Better battery consumption</li>
  <li>Super-low crash rate</li>
  <li>Native Mac app</li>
  <li>Mac menu consistent with the app</li>
  <li>Per-profile iCloud sync</li>
  <li>TV app is beautiful and sync is reliable</li>
  <li>Shortcuts run in the background</li>
  <li>Stable UI with consistent L&amp;F and animations</li>
  <li>Much better provider server selection</li>
  <li>Custom light/dark appearance</li>
  <li>Interactive login</li>
  <li>Route custom DNS inside/outside VPN</li>
  <li>Edit WireGuard configurations</li>
  <li>Convenient OTP field for OpenVPN (WIP)</li>
  <li>Plenty of resolved OpenVPN bugs
    <ul>
      <li>Connection stuck randomly</li>
      <li>Occasionally stuck when Wi-Fi/Mobile roaming</li>
      <li>Regularly stuck when back from sleep</li>
      <li>Disconnection on “Message too long”</li>
      <li>Disconnection on “No buffer space available”</li>
      <li>Disconnection during renegotiations</li>
      <li>Slow to reconnect</li>
      <li>Memory leaks</li>
      <li>…</li>
    </ul>
  </li>
</ul>

<p>Thanks to those who are trusting the process.</p>]]></content>
        <author>
            <name>Davide De Rosa</name>
            
        </author>
        
        
        <summary type="html"><![CDATA[Recently, I made my current backlog public. I like to share what I’m working on, and in future posts, I’ll talk about how GitHub Projects helps me plan the development of Passepartout without losing my mind.]]></summary>
        
    </entry>
    
</feed>
