<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>The Plakar Frontend, Explained on Plakar | The Open Standard for Backup and Restore</title>
    <link>https://plakar.io/posts/plakar-ui-series/</link>
    <description>Recent content in The Plakar Frontend, Explained on Plakar | The Open Standard for Backup and Restore</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 PlakarKorp</copyright>
    <lastBuildDate>Mon, 01 Jun 2026 15:32:59 +0200</lastBuildDate><atom:link href="https://plakar.io/posts/plakar-ui-series/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>I used to think frontend was easy</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-series-intro/</link>
      <pubDate>Mon, 25 May 2026 13:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-series-intro/</guid>
      <description>I&amp;rsquo;m a backend developer who ended up building a frontend. This series explains the Plakar UI stack — what&amp;rsquo;s in it, why it&amp;rsquo;s structured the way it is, and why it&amp;rsquo;s not as scary as the node_modules folder suggests.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://plakar.io/posts/2026-05-25/plakar-ui-series-intro/featured.png" />
    </item>
    
    <item>
      <title>Plakar UI #1: pnpm and Turborepo</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-pnpm-turborepo/</link>
      <pubDate>Mon, 25 May 2026 12:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-pnpm-turborepo/</guid>
      <description>How and why we set up the Plakar UI as a monorepo using pnpm for strict dependency management and Turborepo for fast, cached task orchestration.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://plakar.io/posts/2026-05-25/plakar-ui-pnpm-turborepo/featured.png" />
    </item>
    
    <item>
      <title>Plakar UI #2: React</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-react/</link>
      <pubDate>Mon, 25 May 2026 11:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-react/</guid>
      <description>Why React exists and what problems it actually solves — explained to backend developers who know Go and are curious about how modern frontend UIs are built.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://plakar.io/posts/2026-05-25/plakar-ui-react/featured.png" />
    </item>
    
    <item>
      <title>Plakar UI #3: TypeScript</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-typescript/</link>
      <pubDate>Mon, 25 May 2026 10:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-typescript/</guid>
      <description>Two TypeScript features that will surprise Go developers: incremental refactoring without blocking the compiler, and discriminated unions with automatic type narrowing.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://plakar.io/posts/2026-05-25/plakar-ui-typescript/featured.png" />
    </item>
    
    <item>
      <title>Plakar UI #4: Zod</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-zod/</link>
      <pubDate>Mon, 25 May 2026 09:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-zod/</guid>
      <description>TypeScript types only protect your own code — Zod validates data at runtime API boundaries, turning silent undefined bugs into immediate, descriptive parse errors.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://plakar.io/posts/2026-05-25/plakar-ui-zod/featured.png" />
    </item>
    
    <item>
      <title>Plakar UI #5: TanStack Query</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-query/</link>
      <pubDate>Mon, 25 May 2026 08:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-query/</guid>
      <description>How TanStack Query handles all HTTP requests in Plakar UI — automatic caching, deduplication, background refetching, and cache invalidation after mutations.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-query/featured.png" />
    </item>
    
    <item>
      <title>Plakar UI #6: TanStack Form</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-form/</link>
      <pubDate>Mon, 25 May 2026 07:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-form/</guid>
      <description>How TanStack Form and the AppField pattern turn forms from a copy-paste nightmare into composable, declarative building blocks with type-safe validation.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-form/featured.png" />
    </item>
    
    <item>
      <title>Plakar UI #7: React Aria Components</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-react-aria-components/</link>
      <pubDate>Mon, 25 May 2026 06:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-react-aria-components/</guid>
      <description>Why we use React Aria Components as the foundation for our UI library — and why building accessible, keyboard-navigable widgets from scratch is much harder than it looks.</description>
      
    </item>
    
    <item>
      <title>Plakar UI #8: TanStack Table</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-table/</link>
      <pubDate>Mon, 25 May 2026 05:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-table/</guid>
      <description>How TanStack Table gives us a headless, fully type-safe data grid — with sorting, filtering, and pagination — without dictating how anything looks.</description>
      
    </item>
    
    <item>
      <title>Plakar UI #9: TanStack Router</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-router/</link>
      <pubDate>Mon, 25 May 2026 04:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-tanstack-router/</guid>
      <description>How TanStack Router brings compile-time safety to client-side routing — broken links, missing params, and wrong search params are all caught before the code ships.</description>
      
    </item>
    
    <item>
      <title>Plakar UI #10: Storybook</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-storybook/</link>
      <pubDate>Mon, 25 May 2026 03:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-storybook/</guid>
      <description>How we use Storybook to develop, document, and visually test our UI component library in isolation, independent of application logic.</description>
      
    </item>
    
    <item>
      <title>Plakar UI #11: Testing Strategy</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-testing-strategy/</link>
      <pubDate>Mon, 25 May 2026 02:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-testing-strategy/</guid>
      <description>How we test the Plakar UI — unit tests for components, integration tests for user flows, and why we draw the line where we do.</description>
      
    </item>
    
    <item>
      <title>Plakar UI #12: The Build Process</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-build-process/</link>
      <pubDate>Mon, 25 May 2026 01:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-build-process/</guid>
      <description>How we bundle and ship the Plakar UI — Vite, code splitting, environment configs, and what happens between writing code and serving it to users.</description>
      
    </item>
    
    <item>
      <title>Plakar UI: Conclusion</title>
      <link>https://plakar.io/posts/2026-05-25/plakar-ui-series-conclusion/</link>
      <pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://plakar.io/posts/2026-05-25/plakar-ui-series-conclusion/</guid>
      <description>Wrapping up the series — what we covered, the common thread running through every tool choice, and what comes next.</description>
      
    </item>
    
  </channel>
</rss>
