[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"public-config":3,"i-flag:ph-4x3":14,"i-flag:us-4x3":19,"i-flag:de-4x3":21,"i-flag:hk-4x3":23,"i-tabler:lifebuoy":25,"i-tabler:timeline":28,"i-tabler:apps":30,"i-tabler:package":32,"i-tabler:circle-half-2":34,"i-tabler:sun":36,"i-tabler:moon":38,"i-tabler:menu-2":40,"i-tabler:user":42,"i-tabler:notebook":44,"i-simple-icons:forgejo":46,"i-tabler:shield-lock":48,"i-tabler:tools":50,"i-tabler:calendar":52,"i-tabler:x":54,"$f3c8ibi52ymmvo":56,"i-tabler:arrow-left":75,"i-tabler:tag":77},{"matomo":4,"booking":7,"site":9,"blog":11,"newsletter":12},{"enabled":5,"siteId":6},true,"7",{"enabled":5,"url":8},"https:\u002F\u002Fcal.com\u002Fjdbungart",{"url":10},"https:\u002F\u002Fjdneer.com",{"enabled":5},{"enabled":13},false,{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":18},0,640,480,"\u003Cpath fill=\"#0038a8\" d=\"M0 0h640v240H0z\"\u002F>\u003Cpath fill=\"#ce1126\" d=\"M0 240h640v240H0z\"\u002F>\u003Cpath fill=\"#fff\" d=\"M415.7 240L0 480V0\"\u002F>\u003Cpath fill=\"#fcd116\" d=\"M26.7 42.4L41 55l16.6-9.2l-7.4 17.5l14 13l-19-1.6l-8.1 17.2l-4.3-18.5L14 71l16.3-10zm323.8 172.3l.4 19l18 6.3l-18 6.2l-.4 19l-11.5-15.1l-18.2 5.5l10.8-15.6l-10.8-15.6l18.2 5.5zM37.2 388.1l8 17.2l19-1.6l-13.9 13l7.4 17.5l-16.6-9.1l-14.4 12.4l3.6-18.7L14 409l18.9-2.4zm114.2-249l-6.2 6.2l3.1 47l-3 .3l-5.7-42.9l-5.1 5l7.6 38.4a48 48 0 0 0-17.2 7.1l-21.7-32.4H96l26.4 34.3l-2.4 2l-31.1-35.5h-8.8v8.8l35.4 31l-2 2.5l-34.3-26.3v7.1l32.5 21.7q-5.2 7.8-7.1 17.2L66.3 223l-5.1 5l42.9 5.7q-.3 1.6-.3 3.1l-47-3l-6.2 6.2l6.2 6.2l47-3.1l.3 3.1l-42.9 5.7l5 5l38.4-7.6a48 48 0 0 0 7.1 17.2l-32.5 21.7v7.2l34.3-26.3l2 2.4l-35.4 31v8.8H89l31-35.4l2.5 2L96 312.2h7.2l21.7-32.5q7.8 5.2 17.2 7.1l-7.6 38.4l5 5l5.7-42.9q1.5.3 3.1.3l-3 47l6.1 6.2l6.3-6.2l-3.1-47l3-.3l5.7 43l5.1-5.1l-7.6-38.4a48 48 0 0 0 17.2-7.1l21.7 32.5h7.2l-26.4-34.3l2.4-2l31.1 35.4h8.8v-8.8l-35.4-31l2-2.4l34.3 26.3v-7.2l-32.5-21.7q5.2-7.8 7.1-17.2l38.3 7.6l5.1-5l-42.9-5.7q.3-1.5.3-3.1l47 3l6.2-6.1l-6.2-6.2l-47 3l-.3-3l42.9-5.7l-5-5l-38.4 7.5a48 48 0 0 0-7.1-17.2l32.5-21.7v-7.1l-34.3 26.3l-2-2.4l35.4-31v-8.9H214l-31 35.5l-2.5-2l26.4-34.3h-7.2L178 200.2q-7.8-5.2-17.2-7.1l7.6-38.3l-5-5l-5.7 42.8l-3.1-.3l3-47z\"\u002F>",{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":20},"\u003Cpath fill=\"#bd3d44\" d=\"M0 0h640v480H0\"\u002F>\u003Cpath stroke=\"#fff\" stroke-width=\"37\" d=\"M0 55.3h640M0 129h640M0 203h640M0 277h640M0 351h640M0 425h640\"\u002F>\u003Cpath fill=\"#192f5d\" d=\"M0 0h364.8v258.5H0\"\u002F>\u003Cmarker id=\"SVGEq3dreKJ\" markerHeight=\"30\" markerWidth=\"30\">\u003Cpath fill=\"#fff\" d=\"m14 0l9 27L0 10h28L5 27z\"\u002F>\u003C\u002Fmarker>\u003Cpath fill=\"none\" marker-mid=\"url(#SVGEq3dreKJ)\" d=\"m0 0l16 11h61h61h61h61h60L47 37h61h61h60h61L16 63h61h61h61h61h60L47 89h61h61h60h61L16 115h61h61h61h61h60L47 141h61h61h60h61L16 166h61h61h61h61h60L47 192h61h61h60h61L16 218h61h61h61h61h60z\"\u002F>",{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":22},"\u003Cpath fill=\"#fc0\" d=\"M0 320h640v160H0z\"\u002F>\u003Cpath fill=\"#000001\" d=\"M0 0h640v160H0z\"\u002F>\u003Cpath fill=\"red\" d=\"M0 160h640v160H0z\"\u002F>",{"left":15,"top":15,"width":16,"height":17,"rotate":15,"vFlip":13,"hFlip":13,"body":24},"\u003Cpath fill=\"#ec1b2e\" d=\"M0 0h640v480H0\"\u002F>\u003Cpath id=\"SVG5tfvBPpj\" fill=\"#fff\" d=\"M346.3 103.1C267 98 230.6 201.9 305.6 240.3c-26-22.4-20.6-55.3-10.1-72.4l1.9 1.1c-13.8 23.5-11.2 52.7 11.1 71c-12.7-12.3-9.5-39 12.1-48.9s23.6-39.3 16.4-49.1q-14.7-25.6 9.3-38.9M307.9 164l-4.7 7.4l-1.8-8.6l-8.6-2.3l7.8-4.3l-.6-8.9l6.5 6.1l8.3-3.3l-3.7 8.1l5.6 6.8z\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(72 312.5 243.5)\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(144 312.5 243.5)\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(216 312.5 243.5)\"\u002F>\u003Cuse href=\"#SVG5tfvBPpj\" transform=\"rotate(288 312.5 243.5)\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":27},24,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8 12a4 4 0 1 0 8 0a4 4 0 1 0-8 0\"\u002F>\u003Cpath d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m12 3l3.35 3.35M9 15l-3.35 3.35m0-12.7L9 9m9.35-3.35L15 9\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m4 16l6-7l5 5l5-6\"\u002F>\u003Cpath d=\"M14 14a1 1 0 1 0 2 0a1 1 0 1 0-2 0M9 9a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-6 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m16-8a1 1 0 1 0 2 0a1 1 0 1 0-2 0\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":31},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm0 10a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1zm0-8h6m-3-3v6\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":33},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 3l8 4.5v9L12 21l-8-4.5v-9zm0 9l8-4.5M12 12v9m0-9L4 7.5m12-2.25l-8 4.5\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":35},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m9-9v18m0-7l7-7m-7 12l8.5-8.5M12 9l4.5-4.5\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":37},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 12a4 4 0 1 0 8 0a4 4 0 1 0-8 0m-5 0h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7l-.7.7m0 11.4l.7.7m-12.1-.7l-.7.7\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":39},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3h.393a7.5 7.5 0 0 0 7.92 12.446A9 9 0 1 1 12 2.992z\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":41},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":43},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":45},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 4h11a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m3 0v18m4-14h2m-2 4h2\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":47},"\u003Cpath fill=\"currentColor\" d=\"M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.08 7.08 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422a2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24A2.9 2.9 0 0 1 5.8 18.57V8.589a7.11 7.11 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0M7.223 19.905a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.389m9.554-10.464a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.39m0-7.735a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.389\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":49},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 3a12 12 0 0 0 8.5 3A12 12 0 0 1 12 21A12 12 0 0 1 3.5 6A12 12 0 0 0 12 3\"\u002F>\u003Cpath d=\"M11 11a1 1 0 1 0 2 0a1 1 0 1 0-2 0m1 1v2.5\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":51},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 21h4L20 8a1.5 1.5 0 0 0-4-4L3 17zM14.5 5.5l4 4\"\u002F>\u003Cpath d=\"M12 8L7 3L3 7l5 5M7 8L5.5 9.5M16 12l5 5l-4 4l-5-5m4 1l-1.5 1.5\"\u002F>\u003C\u002Fg>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":53},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm12-4v4M8 3v4m-4 4h16m-9 4h1m0 0v3\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":55},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M18 6L6 18M6 6l12 12\"\u002F>",{"slug":57,"title":58,"excerpt":59,"image":60,"publishedAt":61,"topics":62,"readMinutes":63,"html":64,"metaTitle":58,"metaDescription":65,"shareImage":66,"updatedAt":70,"author":71,"related":74},"desec-qt-dns-v2-0-0-rc2-a-big-step-toward-v2-0","deSEC Qt DNS v2.0.0-rc2: A big step toward v2.0","deSEC Qt DNS v2.0.0-rc2 is out for testing. Since v1.8.0 it has gained passphrase-protected profiles, more powerful DNS wizards, version history with restore, overhauled DNSSEC and delegation checks, and a fully offline demo mode. I'm asking for real-world feedback before v2.0.","\u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2.png","2026-09-23T10:33:47.000+08:00",[],4,"\u003Cp>It's been a substantial journey since v1.8.0. What started as a relatively straightforward Python and Qt frontend for managing deSEC DNS zones has grown into a much more capable DNS management application with batteries included.\u003C\u002Fp>\u003Cp>With v2.0.0 now approaching the finish line, I'm putting the second release candidate out there and asking for some real-world testing.\u003C\u002Fp>\u003Ch2 id=\"whats-new-since-v180-%F0%9F%94%A5\">What's new since v1.8.0? 🔥\u003C\u002Fh2>\u003Cp>There have been a lot of changes across the 2.0 development cycle, but these are five of the bigger ones.\u003C\u002Fp>\u003Ch3 id=\"1-%F0%9F%94%90-protected-profiles\">1. 🔐 Protected profiles\u003C\u002Fh3>\u003Cp>API tokens can now be protected with a passphrase, with per-profile encryption and no token recovery by design.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"\u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-unlock-profile.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"527\" height=\"271\" \u002F>\u003C\u002Ffigure>\u003Cp>The goal is simple: make it possible to keep multiple deSEC profiles around without leaving API credentials sitting around in plaintext.\u003C\u002Fp>\u003Ch3 id=\"2-%F0%9F%A7%99-much-more-powerful-dns-wizards\">2. 🧙 Much more powerful DNS wizards\u003C\u002Fh3>\u003Cp>The wizards have grown considerably.\u003C\u002Fp>\u003Cp>There is now support for things such as reverse DNS zones, custom record sets, subdomain creation incl. auto-generation of rDNS zones for your own IP prefixes (!), delegation and bulk operations.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"\u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"1426\" height=\"606\" srcset=\"\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard.png 600w, \u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard.png 1000w, \u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard.png 1426w\" sizes=\"(min-width: 720px) 720px\" \u002F>\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"\u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard-rdns.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"1468\" height=\"1057\" srcset=\"\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard-rdns.png 600w, \u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard-rdns.png 1000w, \u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-wizard-rdns.png 1468w\" sizes=\"(min-width: 720px) 720px\" \u002F>\u003C\u002Ffigure>\u003Cp>The idea is to make common DNS tasks something you can accomplish without having to manually work through every individual record.\u003C\u002Fp>\u003Ch3 id=\"3-%F0%9F%93%9A-dns-version-history-and-restore\">3. 📚 DNS version history and restore\u003C\u002Fh3>\u003Cp>Version history has become a proper part of the application.\u003C\u002Fp>\u003Cp>Changes are tracked per profile, with support for viewing previous DNS states and restoring them when necessary. Bulk operations are also tracked properly, making it much easier to understand what happened to a zone when you've been making a lot of changes.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"\u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-domain-git-history.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"1398\" height=\"291\" srcset=\"\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-domain-git-history.png 600w, \u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-domain-git-history.png 1000w, \u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-domain-git-history.png 1398w\" sizes=\"(min-width: 720px) 720px\" \u002F>\u003C\u002Ffigure>\u003Cp>This also fixes some nasty cross-profile history issues that existed in earlier development builds.\u003C\u002Fp>\u003Ch3 id=\"4-%F0%9F%94%8E-dnssec-and-delegation-checking\">4. 🔎 DNSSEC and delegation checking\u003C\u002Fh3>\u003Cp>DNSSEC and delegation verification have received a major overhaul.\u003C\u002Fp>\u003Cp>The application can perform verification automatically, with adaptive pacing and configurable check intervals to deal more gracefully with real-world DNS and API rate limiting.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"\u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-dnssec-ns-validation.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"423\" height=\"340\" \u002F>\u003C\u002Ffigure>\u003Cp>This is particularly useful when creating or modifying zones and you want to know whether the changes have actually propagated and are behaving as expected.\u003C\u002Fp>\u003Ch3 id=\"5-%F0%9F%A7%AA-a-proper-offline-demo-environment\">5. 🧪 A proper offline demo environment\u003C\u002Fh3>\u003Cp>There is now a fully offline demo profile with generated zones, records and tokens.\u003C\u002Fp>\u003Cp>This makes it possible to explore the application without connecting it to a real deSEC account or modifying actual DNS infrastructure.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"\u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-demo-profile.png\" class=\"kg-image\" alt=\"\" loading=\"lazy\" width=\"1616\" height=\"1452\" srcset=\"\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-demo-profile.png 600w, \u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-demo-profile.png 1000w, \u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-demo-profile.png 1600w, \u002Fcontent\u002Fimages\u002F2026\u002F09\u002Fdesec-qt-dns-demo-2.0.0rc2-demo-profile.png 1616w\" sizes=\"(min-width: 720px) 720px\" \u002F>\u003C\u002Ffigure>\u003Cp>It also makes producing screenshots, testing workflows and demonstrating the application considerably easier.\u003C\u002Fp>\u003Ch2 id=\"and-theres-quite-a-bit-more-%F0%9F%9B%A0%EF%B8%8F\">And there's quite a bit more 🛠️\u003C\u002Fh2>\u003Cp>The five items above only scratch the surface.\u003C\u002Fp>\u003Cp>Since v1.8.0, deSEC Qt DNS has also picked up:\u003C\u002Fp>\u003Cul>\u003Cli>Multi-profile support and simultaneous profiles\u003C\u002Fli>\u003Cli>A dedicated reverse DNS wizard\u003C\u002Fli>\u003Cli>An expanded preset library\u003C\u002Fli>\u003Cli>Vendor-specific DNS presets\u003C\u002Fli>\u003Cli>Bulk record operations\u003C\u002Fli>\u003Cli>Search &amp; Replace\u003C\u002Fli>\u003Cli>Import, export and merge tools\u003C\u002Fli>\u003Cli>Improved accessibility and keyboard navigation\u003C\u002Fli>\u003Cli>Custom themes and updated visual design\u003C\u002Fli>\u003Cli>Improved Wayland support\u003C\u002Fli>\u003Cli>Better Qt platform logging\u003C\u002Fli>\u003Cli>Safer API queue and rate-limit handling\u003C\u002Fli>\u003Cli>Better account information and domain verification status\u003C\u002Fli>\u003Cli>Faster verification of newly created zones\u003C\u002Fli>\u003Cli>Improved cancellation for long-running operations\u003C\u002Fli>\u003Cli>Better API error handling\u003C\u002Fli>\u003Cli>Numerous UI fixes and general polish\u003C\u002Fli>\u003C\u002Ful>\u003Cp>And, perhaps most importantly, the test suite has grown substantially during the development process.\u003C\u002Fp>\u003Cp>The project has gone from \u003Cstrong>976 tests across 35 files\u003C\u002Fstrong> to \u003Cstrong>1,394 tests across 46 files\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>That's a lot of things to break before users get the opportunity to break them in completely new and exciting ways. 😅\u003C\u002Fp>\u003Ch2 id=\"help-me-test-v20-%F0%9F%A7%AA\">Help me test v2.0 🧪\u003C\u002Fh2>\u003Cp>This is a \u003Cstrong>release candidate\u003C\u002Fstrong>, which means we're getting close, but I want more real-world testing before calling it finished.\u003C\u002Fp>\u003Cp>If you use deSEC, I'd really appreciate it if you could install \u003Cstrong>v2.0.0-rc2\u003C\u002Fstrong> and give it a proper workout.\u003C\u002Fp>\u003Cp>Try the things you normally do. Create zones. Modify records. Delete things. Restore things. Try the wizards. Test bulk operations. Check DNSSEC. Import and export data. Try multiple profiles. Throw weird DNS configurations at it.\u003C\u002Fp>\u003Cp>If something breaks, behaves strangely, produces an unexpected result, or just feels wrong, \u003Cstrong>please \u003C\u002Fstrong>\u003Ca href=\"mailto:support@jdneer.com\" rel=\"noreferrer\">\u003Cstrong>report it\u003C\u002Fstrong>\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>That's exactly what this release candidate is for.\u003C\u002Fp>\u003Ch2 id=\"get-v200-rc2-%F0%9F%93%A6\">Get v2.0.0-rc2 📦\u003C\u002Fh2>\u003Cp>The release is available here:\u003C\u002Fp>\u003Cp>\u003Cstrong>Release:\u003C\u002Fstrong>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Fdesec-qt-dns\u002Freleases\u002Ftag\u002Fv2.0.0-rc2?ref=ghost.jdneer.com\">https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Fdesec-qt-dns\u002Freleases\u002Ftag\u002Fv2.0.0-rc2\u003C\u002Fa>\u003C\u002Fp>\u003Cp>The complete list of changes is available in the changelog:\u003C\u002Fp>\u003Cp>\u003Cstrong>Changelog:\u003C\u002Fstrong>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Fdesec-qt-dns\u002Fsrc\u002Fbranch\u002Fmaster\u002FCHANGELOG.md?ref=ghost.jdneer.com\">https:\u002F\u002Fgit.jdneer.com\u002Fjd\u002Fdesec-qt-dns\u002Fsrc\u002Fbranch\u002Fmaster\u002FCHANGELOG.md\u003C\u002Fa>\u003C\u002Fp>\u003Cp>If you've been using deSEC Qt DNS for a while, now is a particularly good time to give v2.0 a spin.\u003C\u002Fp>\u003Cp>\u003Cstrong>Go break it. I'll fix it.\u003C\u002Fstrong> 😎\u003C\u002Fp>","deSEC Qt DNS v2.0.0-rc2 is out for testing. Since v1.8.0 it has gained passphrase-protected profiles, more powerful DNS wizards, version history with...",{"src":60,"width":67,"height":68,"type":69},1400,972,"image\u002Fpng","2026-10-12T21:50:12.000+08:00",{"name":72,"url":73,"owner":13},"Aiko Tanaka",null,[],{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":76},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14M5 12l6 6m-6-6l6-6\"\u002F>",{"left":15,"top":15,"width":26,"height":26,"rotate":15,"vFlip":13,"hFlip":13,"body":78},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0-2 0\"\u002F>\u003Cpath d=\"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592-5.592a2.41 2.41 0 0 0 0-3.408l-7.71-7.71A2 2 0 0 0 11.172 3H6a3 3 0 0 0-3 3\"\u002F>\u003C\u002Fg>"]