<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mario JGT</title>
    <description>The latest articles on DEV Community by Mario JGT (@mario_jgoestarosso_5c91).</description>
    <link>https://dev.to/mario_jgoestarosso_5c91</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3971151%2F42bc92a7-61dd-4fa8-bf84-ac37b2d75de6.jpg</url>
      <title>DEV Community: Mario JGT</title>
      <link>https://dev.to/mario_jgoestarosso_5c91</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mario_jgoestarosso_5c91"/>
    <language>en</language>
    <item>
      <title>Building a Local WebGPU AI Agent Inside a Game Engine</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Fri, 04 Sep 2026 08:00:00 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/building-a-local-webgpu-ai-agent-inside-a-game-engine-h1c</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/building-a-local-webgpu-ai-agent-inside-a-game-engine-h1c</guid>
      <description>&lt;p&gt;What if a game-engine AI agent could work without an API key or send the project prompt to a cloud model?&lt;/p&gt;

&lt;p&gt;I have been building that option into Feather Engine while keeping its existing OpenAI, Anthropic, and Google providers intact. Users can now choose Local AI (WebGPU) in the same agent panel, download the model deliberately, and let it use the engine's real tools rather than a separate demo chatbot.&lt;/p&gt;

&lt;h2&gt;
  
  
  The architecture
&lt;/h2&gt;

&lt;p&gt;The local path uses AI SDK 6, browser-ai's Transformers.js provider, and a dedicated Web Worker. The first curated model is Qwen3 0.6B in q4f16 form: small enough to be realistic in a browser, but still a roughly 570 MB download.&lt;/p&gt;

&lt;p&gt;Model weights live in a Feather-owned browser cache. Nothing downloads until the user confirms it. The UI exposes hardware compatibility, progress, cancellation, loading, unloading, and cache clearing. Local mode does not require a provider key and never silently falls back to a cloud model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making the local model control the whole engine
&lt;/h2&gt;

&lt;p&gt;The hard part was not text generation. Feather's agent has 223 engine tools covering scenes, objects, materials, physics, scripts, UI, animation, assets, and project workflows. Sending every definition and the full cloud prompt to a 0.6B model would overwhelm its useful context.&lt;/p&gt;

&lt;p&gt;Instead, every tool belongs to a tested capability group. A lightweight router selects the relevant groups for each request while retaining a small core set. The local model therefore receives a compact prompt and a focused tool surface, but every engine capability remains reachable. Both local and cloud models call the same tool instances and mutation layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Safety and lifecycle details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Explicit consent before the first model download&lt;/li&gt;
&lt;li&gt;WebGPU and shader-f16 checks before loading&lt;/li&gt;
&lt;li&gt;Abortable generation without destroying an already loaded model&lt;/li&gt;
&lt;li&gt;Worker termination when unloading or switching models&lt;/li&gt;
&lt;li&gt;Cache deletion limited to Feather's own model cache&lt;/li&gt;
&lt;li&gt;Persisted provider settings that preserve existing cloud keys and model choices&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Verification
&lt;/h2&gt;

&lt;p&gt;The implementation currently passes 512 automated tests, a production build, and a rendered browser smoke test for consent, provider switching, and cloud-setting preservation. A real-GPU inference run in the supported desktop/browser matrix remains an important release gate because headless CI cannot meaningfully prove driver behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;Small local models benefit more from disciplined context design than from pretending they are cloud-scale models. Tool routing, compact instructions, visible download state, and a strict no-fallback privacy contract make the feature feel like part of the engine instead of an embedded model demo.&lt;/p&gt;

&lt;p&gt;I am excited about where browser-native agents can go next: stronger curated models, better capability routing, and more work that stays on the user's machine.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>webassembly</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Devlog: building a whole stadium from three.js primitives (no 3D assets)</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Wed, 02 Sep 2026 10:12:01 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/devlog-building-a-whole-stadium-from-threejs-primitives-no-3d-assets-4j73</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/devlog-building-a-whole-stadium-from-threejs-primitives-no-3d-assets-4j73</guid>
      <description>&lt;h2&gt;
  
  
  Devlog: building a whole stadium from primitives
&lt;/h2&gt;

&lt;p&gt;Another &lt;strong&gt;Chaos Football Club&lt;/strong&gt; devlog — this one on how the world is built. Short version: there are no downloaded 3D models. Everything you see is procedural.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why primitives
&lt;/h3&gt;

&lt;p&gt;Instead of authoring or buying GLB models, every prop — stands, floodlights, arena hardware, decor — is assembled from three.js primitives (boxes, cylinders, spheres) on a fixed candy colour palette. It keeps the download tiny, loads instantly in the browser, and gives the whole game one consistent, cartoony look.&lt;/p&gt;

&lt;h3&gt;
  
  
  The payoff
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No asset pipeline to manage — props are code- Every arena can be re-themed by swapping the palette and a few parameters- Fast iteration: tweak a number, reload, done### Stack
TypeScript, three.js for rendering, 2D Rapier for physics.
Wishlist Chaos Football Club on Steam: &lt;a href="https://store.steampowered.com/app/4945250/Chaos_Football_Club/" rel="noopener noreferrer"&gt;https://store.steampowered.com/app/4945250/Chaos_Football_Club/&lt;/a&gt;
Want to test it? Reach out and I'll send you a free Steam key. 🔑&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>indiegames</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Loop Valley devlog: you draw it</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Mon, 31 Aug 2026 17:00:00 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-you-draw-it-5c1e</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-you-draw-it-5c1e</guid>
      <description>&lt;p&gt;You draw it — the core verb of Loop Valley, brush dock and all.&lt;br&gt;
Sketch walls and watch the world grow around them. This is the one store screenshot that keeps the UI visible — everything else hides chrome for the money shots.&lt;br&gt;
Wishlist: &lt;a href="https://store.steampowered.com/app/4707890/Loop_Valley/" rel="noopener noreferrer"&gt;https://store.steampowered.com/app/4707890/Loop_Valley/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>indie</category>
      <category>showdev</category>
      <category>steam</category>
    </item>
    <item>
      <title>Loop Valley devlog: pasture life</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Sun, 30 Aug 2026 17:00:00 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-pasture-life-37b7</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-pasture-life-37b7</guid>
      <description>&lt;p&gt;Cattle in the meadow — Loop Valley is inhabited, not just built.&lt;br&gt;
Small pastoral beats sell the world as alive. Herds spawn in paddocks as the town grows around your walls.&lt;br&gt;
Wishlist: &lt;a href="https://store.steampowered.com/app/4707890/Loop_Valley/" rel="noopener noreferrer"&gt;https://store.steampowered.com/app/4707890/Loop_Valley/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>indie</category>
      <category>indiegames</category>
      <category>steam</category>
    </item>
    <item>
      <title>Loop Valley devlog: blue hour in the valley</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Fri, 28 Aug 2026 17:00:00 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-blue-hour-in-the-valley-26dl</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-blue-hour-in-the-valley-26dl</guid>
      <description>&lt;p&gt;Blue hour, windows lit — the cozy money shot from Loop Valley.&lt;br&gt;
Day/night is driven by a phase value. Blue hour is a narrow band just before the sun crosses the horizon — worth the tuning time for shots like this.&lt;br&gt;
Wishlist: &lt;a href="https://store.steampowered.com/app/4707890/Loop_Valley/" rel="noopener noreferrer"&gt;https://store.steampowered.com/app/4707890/Loop_Valley/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>indie</category>
      <category>indiegames</category>
      <category>steam</category>
    </item>
    <item>
      <title>How Feather Engine’s Pixel Art Trees Stay Procedural and Editable</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Thu, 27 Aug 2026 17:02:00 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/how-feather-engines-pixel-art-trees-stay-procedural-and-editable-9ap</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/how-feather-engines-pixel-art-trees-stay-procedural-and-editable-9ap</guid>
      <description>&lt;p&gt;Building stylized vegetation usually means jumping between the engine and a sprite editor, managing exported sheets, and accepting that every variation becomes another asset. For Feather Engine, I wanted a tighter loop: choose a visual language, shape the tree, and plant it without leaving the editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nine leaf languages, five growth habits
&lt;/h2&gt;

&lt;p&gt;Pixel Art Trees offers nine procedural leaf styles—broad, star, fine, blossom, jungle, ribbon, needle, pod, and quill—alongside five growth habits: young, spread, candelabra, leaning, and ancient. That gives 45 base combinations before changing the palette, seed, scale, or density.&lt;/p&gt;

&lt;h2&gt;
  
  
  Painted by code, still real 3D
&lt;/h2&gt;

&lt;p&gt;The plugin generates a deterministic 32×32 leaf atlas from code instead of importing bitmap sprites. The live preview uses the same Feather tree renderer that the project will use, so creators are not approving a disconnected thumbnail. The result stays a compact recipe that can be regenerated reliably.&lt;/p&gt;

&lt;h2&gt;
  
  
  A short editor loop
&lt;/h2&gt;

&lt;p&gt;Install Pixel Art Trees from Feather’s Asset Store, open it from View → Extensions, select a leaf style and growth habit, then adjust the seed and palette while the tree updates. A creator can plant one tree or place a terrain-snapped grove in a click, then continue fine-tuning with the main Tree Builder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for projects, not screenshots
&lt;/h2&gt;

&lt;p&gt;The generated trees use linked tree assets and a shared nearest-filtered atlas. They support wind, chopping, lower-detail rendering, and export. Because the recipe is deterministic and stored as normal project data, it also behaves naturally in Feather’s live collaboration workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a plugin?
&lt;/h2&gt;

&lt;p&gt;Keeping this feature in an enableable plugin lets the core editor stay focused while giving environment artists a purpose-built studio. The vegetation logic began in my RPG Mania project; bringing it into Feather turns that game-specific work into a reusable tool for more creators.&lt;br&gt;
Pixel Art Trees is now available in Feather Engine. Grow the world, and keep every tree editable.&lt;br&gt;
&lt;a href="https://feather-engine.com/#pixel-trees" rel="noopener noreferrer"&gt;https://feather-engine.com/#pixel-trees&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>pixelart</category>
    </item>
    <item>
      <title>A Real Two-User Feather Engine Collaboration Session</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Thu, 27 Aug 2026 17:00:06 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/a-real-two-user-feather-engine-collaboration-session-4aa3</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/a-real-two-user-feather-engine-collaboration-session-4aa3</guid>
      <description>&lt;p&gt;I recorded a real host-and-editor collaboration session in Feather Engine, the local-first open-source 3D game engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project-wide, not viewport-only
&lt;/h2&gt;

&lt;p&gt;The shared state follows the open project across the engine while both people work.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Viewport and scene hierarchy changes.- Object transforms, components, and Inspector fields.- Blueprint graph changes.- Selections and live editing presence.## Host-owned by design
The desktop owner starts the session with their own ngrok authtoken and shares the invite. The host remains authoritative for saving, Play mode, and local filesystem work, so collaboration does not require an always-on Feather cloud backend.
## Watch the real session
The new website demo shows the session setup, role roster, and live editing workflow from start to finish: &lt;a href="https://feather-engine.com/#collaboration" rel="noopener noreferrer"&gt;https://feather-engine.com/#collaboration&lt;/a&gt;
## Current boundary
This remains an experimental desktop feature. Use source-controlled project copies and keep backups while the collaboration protocol and project format continue to evolve.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>rust</category>
    </item>
    <item>
      <title>Loop Valley devlog: storybook house facades</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Thu, 27 Aug 2026 17:00:01 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-storybook-house-facades-533p</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/loop-valley-devlog-storybook-house-facades-533p</guid>
      <description>&lt;p&gt;Storybook houses up close — swayback roofs, jettied storeys, Fachwerk timber framing.&lt;br&gt;
Each house in Loop Valley is procedurally assembled from a kit of parts. Getting facades readable at diorama scale took serious art-direction tuning.&lt;br&gt;
Wishlist: &lt;a href="https://store.steampowered.com/app/4707890/Loop_Valley/" rel="noopener noreferrer"&gt;https://store.steampowered.com/app/4707890/Loop_Valley/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>indiegames</category>
      <category>showdev</category>
      <category>steam</category>
    </item>
    <item>
      <title>Tashpile: A Self-Hosted Linux Server Manager That Doesn't Suck</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Thu, 27 Aug 2026 14:00:06 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/tashpile-a-self-hosted-linux-server-manager-that-doesnt-suck-5bed</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/tashpile-a-self-hosted-linux-server-manager-that-doesnt-suck-5bed</guid>
      <description>&lt;p&gt;If you run a Linux VPS or homelab server, you probably know the drill: SSH in, run commands, forget what ports are open, repeat tomorrow.&lt;br&gt;
I built Tashpile to fix that — a simple, self-hosted server manager you install once and forget about (in a good way).&lt;br&gt;
&lt;strong&gt;What is Tashpile?&lt;/strong&gt;&lt;br&gt;
A lightweight web dashboard for Linux servers. Fall Guys-inspired UI, serious functionality underneath.&lt;br&gt;
&lt;strong&gt;Quick install&lt;/strong&gt;&lt;br&gt;
git clone &lt;a href="https://github.com/mariojgt/tashpile" rel="noopener noreferrer"&gt;https://github.com/mariojgt/tashpile&lt;/a&gt;&lt;br&gt;
cd tashpile &amp;amp;&amp;amp; sudo ./install.sh&lt;br&gt;
That's it — Python deps, systemd service, random password, dashboard on port 8888.&lt;br&gt;
&lt;strong&gt;Features&lt;/strong&gt;&lt;br&gt;
• &lt;strong&gt;Docker management&lt;/strong&gt; — install Docker, start the daemon, launch nginx in a container&lt;br&gt;
• &lt;strong&gt;Open port scanner&lt;/strong&gt; — see every listening port, flagged as accessible from the network or local-only&lt;br&gt;
• &lt;strong&gt;Web terminal&lt;/strong&gt; — tab completion, persistent history, quick buttons for ls, docker, ports, logs&lt;br&gt;
• &lt;strong&gt;System overview&lt;/strong&gt; — host, uptime, memory, disk at a glance&lt;br&gt;
&lt;strong&gt;Who is it for?&lt;/strong&gt;&lt;br&gt;
Homelabbers, indie devs with a VPS, anyone who wants a GUI for basic server ops without installing Portainer + Netdata + a separate terminal app.&lt;br&gt;
&lt;strong&gt;Tech stack&lt;/strong&gt;&lt;br&gt;
Python 3.8+, Flask, vanilla JS. No database. Runs as a systemd service. MIT licensed.&lt;br&gt;
Star it if it's useful — issues and PRs welcome!&lt;br&gt;
&lt;a href="https://github.com/mariojgt/tashpile" rel="noopener noreferrer"&gt;https://github.com/mariojgt/tashpile&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>opensource</category>
      <category>linux</category>
      <category>selfhost</category>
    </item>
    <item>
      <title>Schedule a Week of Social Posts from Cursor with Postiz MCP</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Thu, 27 Aug 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/schedule-a-week-of-social-posts-from-cursor-with-postiz-mcp-1oaa</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/schedule-a-week-of-social-posts-from-cursor-with-postiz-mcp-1oaa</guid>
      <description>&lt;p&gt;As developers, we ship fast but promote slow. Social media feels like a distraction — another tab, another tool, another hour lost.&lt;br&gt;
What if your AI coding assistant could schedule your posts too?&lt;br&gt;
That's exactly what Postiz MCP enables. Connect it to Cursor (or any MCP-compatible client), and you can:&lt;br&gt;
• List your connected social accounts&lt;br&gt;
• Draft platform-specific content&lt;br&gt;
• Schedule a full week of posts in one conversation&lt;br&gt;
• Upload media and publish to LinkedIn, X, Dev.to, Instagram, and more&lt;br&gt;
Here's my setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect Postiz MCP in Cursor&lt;/li&gt;
&lt;li&gt;Ask: "Schedule 5 posts this week about [topic]"&lt;/li&gt;
&lt;li&gt;Review drafts, tweak tone, confirm&lt;/li&gt;
&lt;li&gt;Done — back to coding
The real win isn't automation for its own sake. It's removing friction so you actually show up consistently.
Building in public only works if you... actually post in public.
Try connecting MCP to your workflow. Your future self (and your audience) will thank you.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>productivity</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Feather Engine: The Model Forge Update</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Wed, 26 Aug 2026 21:00:00 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/feather-engine-the-model-forge-update-1oig</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/feather-engine-the-model-forge-update-1oig</guid>
      <description>&lt;p&gt;Feather Engine has a major new update focused on faster visual-first 3D creation.&lt;br&gt;
&lt;strong&gt;Model Forge&lt;/strong&gt; brings in-engine 3D modelling, vertex editing, sculptable box hulls, and a polished studio-style render mode. The update also adds Arbor Forge for stylized trees, installable plugins with a dedicated manager, and improved multi-platform production exports.&lt;br&gt;
Feather Engine combines node-based visual scripting, FeatherScript, Rapier physics, AI-assisted scene editing, live runtime previews, and production export tools in one open-source workspace.&lt;br&gt;
Explore the project: &lt;a href="https://github.com/mariojgt/featherEngine" rel="noopener noreferrer"&gt;https://github.com/mariojgt/featherEngine&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>3d</category>
    </item>
    <item>
      <title>A Meadow, a Coastline, and a Procedural World in CUBELANDS</title>
      <dc:creator>Mario JGT</dc:creator>
      <pubDate>Wed, 26 Aug 2026 17:00:01 +0000</pubDate>
      <link>https://dev.to/mario_jgoestarosso_5c91/a-meadow-a-coastline-and-a-procedural-world-in-cubelands-408f</link>
      <guid>https://dev.to/mario_jgoestarosso_5c91/a-meadow-a-coastline-and-a-procedural-world-in-cubelands-408f</guid>
      <description>&lt;p&gt;A new CUBELANDS alpha screenshot captures the Wanderer standing where a flower-filled meadow meets the coast. The first seal-shrine waits beyond the trees, wildlife crosses the sky, and the route forward is visible without feeling prescribed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this frame matters
&lt;/h2&gt;

&lt;p&gt;It is easy to treat a screenshot as a beauty shot, but this one brings several parts of the current build into a single view.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The meadow and shoreline meet as distinct but connected spaces.- Foliage gives the foreground density without hiding the route.- Wildlife adds movement above and beside the player.- The active shrine objective gives the landscape a purpose.This is a capture from the working early-alpha build, not a target render.
## Built from cubes
The central technical idea behind CUBELANDS is that its characters, trees, ruins, and bosses are generated at runtime from procedural cubes, with no imported meshes or animation clips. That constraint shapes both the visual identity and the way I build the world.
The goal is to keep the landscape readable from a distance while still rewarding the player for wandering into its smaller details.
## What comes next
CUBELANDS is a third-person open-world action-adventure planned for Steam. There is no release date or public store page yet, so for now I’m sharing real progress from the build as it takes shape.
Where would you go first in this scene: into the forest, down to the beach, or toward the shrine?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>showdev</category>
      <category>buildinpublic</category>
      <category>steam</category>
    </item>
  </channel>
</rss>
