<?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: Tijmen de Jong 💻🚀</title>
    <description>The latest articles on DEV Community by Tijmen de Jong 💻🚀 (@tijmen_de_jong).</description>
    <link>https://dev.to/tijmen_de_jong</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F662614%2F4a95c012-c151-446d-ac92-2f08cf76021c.png</url>
      <title>DEV Community: Tijmen de Jong 💻🚀</title>
      <link>https://dev.to/tijmen_de_jong</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tijmen_de_jong"/>
    <language>en</language>
    <item>
      <title>We are building PixelRooms! The marketplace of AI teams for thepixeloffice.ai</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Tue, 24 Mar 2026 22:20:56 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/we-are-building-pixelrooms-the-marketplace-of-ai-teams-for-thepixelofficeai-3i4e</link>
      <guid>https://dev.to/tijmen_de_jong/we-are-building-pixelrooms-the-marketplace-of-ai-teams-for-thepixelofficeai-3i4e</guid>
      <description>&lt;p&gt;I wanted to share something we have been working on as part of &lt;a href="https://thepixeloffice.ai" rel="noopener noreferrer"&gt;thepixeloffice.ai.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The concept&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pixelrooms.ai" rel="noopener noreferrer"&gt;PixelRooms&lt;/a&gt; is a marketplace of pre-built AI teams. Instead of stitching together prompts and tools yourself, you pick a "room" that comes with specialist AI personas, a task library, and relevant integrations — all ready to deploy in minutes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnosu39zx02qpwxzi883n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnosu39zx02qpwxzi883n.png" alt=" " width="800" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Think of a room like a functional department. There is a branding room, a sales room, an engineering room, and more. Each one ships with a set of AI personas that have defined roles, deep skills, and a clear purpose within the team. You can tweak how each persona thinks and prioritizes work so the team fits your specific workflow.&lt;/p&gt;

&lt;p&gt;The pitch is simple: no hiring, no onboarding, no waiting. You pick a room and the team gets to work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we are building right now&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;6 pre-built rooms covering common business functions&lt;/li&gt;
&lt;li&gt;22+ AI personas with distinct roles and skill levels&lt;/li&gt;
&lt;li&gt;36+ ready to run tasks per room&lt;/li&gt;
&lt;li&gt;100+ use cases covered across founders, operators, and agencies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why we are sharing this now&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We are in early stages and actively looking for collaborators. Whether you are into AI product design, prompt architecture, Next.js, or just have strong opinions on how AI teams should work — we would love to talk.&lt;/p&gt;

&lt;p&gt;If this sounds interesting, check out the concept at thepixeloffice.ai or drop a comment below. We are very open to feedback and collaboration at this stage.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>discuss</category>
      <category>opensource</category>
    </item>
    <item>
      <title>OpenClaw + Openshell sandbox + Habbo MCP + OpenRoute models</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Sun, 22 Mar 2026 10:58:31 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/openclaw-openshell-sandbox-habbo-mcp-openroute-models-3on3</link>
      <guid>https://dev.to/tijmen_de_jong/openclaw-openshell-sandbox-habbo-mcp-openroute-models-3on3</guid>
      <description>&lt;p&gt;Today i linked my secure openclaw running inside openshell with my latest project mcp the hotel-mcp.fixdev.nl &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tndejong/habbo-agent-platform" rel="noopener noreferrer"&gt;https://github.com/tndejong/habbo-agent-platform&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And now we can use openclaw agents to show their work in my own hotel that is running on my server&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgx92jetda78lduju6wv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgx92jetda78lduju6wv.png" alt=" " width="505" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;visualize your agents to and join: &lt;a href="https://hotel-portal.fixdev.nl/app" rel="noopener noreferrer"&gt;https://hotel-portal.fixdev.nl/app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Request below here a mcp key to connect and go inside your own rooms let the bots do the talking ;) &lt;/p&gt;

&lt;p&gt;Working on a way to easy manage your connected bots in the portal but for now i can spawn the bots for you guys that u can then add to your openclaw envoirment.&lt;/p&gt;

&lt;p&gt;Greets! &lt;br&gt;
Have Fun!&lt;/p&gt;

&lt;p&gt;Text me below here for access and pro tier ;) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2nuq5ercbtn35r1uaa3q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2nuq5ercbtn35r1uaa3q.png" alt=" " width="800" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>RUN NEMOCLAW WITHOUT KILLING PORT 8080 ;)</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Sun, 22 Mar 2026 00:29:42 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/run-nemoclaw-without-killing-port-8080--1kak</link>
      <guid>https://dev.to/tijmen_de_jong/run-nemoclaw-without-killing-port-8080--1kak</guid>
      <description>&lt;p&gt;Struggling with NemoClaw's hardcoded port 8080 blocking your setup?&lt;/p&gt;

&lt;p&gt;Just skip NemoClaw and run OpenShell directly. NemoClaw is only a management wrapper on top of OpenShell. The actual sandboxing, network policy enforcement, and agent security all come from OpenShell itself.&lt;/p&gt;

&lt;p&gt;Here is all you need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.nvidia.com/openshell/latest/index.html" rel="noopener noreferrer"&gt;https://docs.nvidia.com/openshell/latest/index.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start the OpenShell gateway on a port of your choice (no port 8080 required):&lt;br&gt;
openshell gateway start --port 9090&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a sandbox with OpenClaw pre-installed:&lt;br&gt;
openshell sandbox create my-assistant --image ghcr.io/nvidia/openshell-community/sandboxes/openclaw:latest&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect to it:&lt;br&gt;
openshell sandbox connect my-assistant&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OpenClaw starts automatically inside the sandbox. You get the same kernel level isolation, filesystem restrictions, and network policy enforcement that NemoClaw provides. No port conflicts, no onboarding wizard, no hardcoded port 8080.&lt;/p&gt;

&lt;p&gt;This is a known early preview bug in NemoClaw. Until it is fixed, running OpenShell directly is the cleaner path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xs93wz6apvc3g9iuox2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xs93wz6apvc3g9iuox2.png" alt=" " width="463" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nemoclaw</category>
      <category>openclaw</category>
      <category>programming</category>
    </item>
    <item>
      <title>OPENSHELL WITH OPENCLAW!</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Sat, 21 Mar 2026 12:46:58 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/openshell-with-openclaw-5dn1</link>
      <guid>https://dev.to/tijmen_de_jong/openshell-with-openclaw-5dn1</guid>
      <description>&lt;p&gt;Okay i waited a bit long with using openclaw and yes ofcourse this was because of the manny warnings that its a really big security risk. &lt;/p&gt;

&lt;p&gt;But Why? What is the security risk? I think most people are like WOW this is insane but they hold back because of this risk. Me either.&lt;/p&gt;

&lt;p&gt;So i tried it now because nvidia came with a secure shell that does by default no outbound calls and can't receive by default calls from the outside. &lt;/p&gt;

&lt;p&gt;So your openclaw runs only to ports endpoints you accept. &lt;/p&gt;

&lt;p&gt;Also read and writing to folders is limited and can u rule in simple yaml files.&lt;/p&gt;

&lt;p&gt;How this works? &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get openshell from the official website &lt;a href="https://docs.nvidia.com/openshell/latest/index.html" rel="noopener noreferrer"&gt;https://docs.nvidia.com/openshell/latest/index.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install it&lt;/li&gt;
&lt;li&gt;Setup openclaw inside the openshell sandbox&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thats it!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>programming</category>
      <category>openclaw</category>
    </item>
    <item>
      <title>Started this project last week!</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Sat, 21 Mar 2026 12:13:55 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/started-this-project-last-week-54ib</link>
      <guid>https://dev.to/tijmen_de_jong/started-this-project-last-week-54ib</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/tijmen_de_jong/the-pixel-office-grind-1dp0" class="crayons-story__hidden-navigation-link"&gt;THE PIXEL OFFICE .AI (GRIND)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/tijmen_de_jong" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F662614%2F4a95c012-c151-446d-ac92-2f08cf76021c.png" alt="tijmen_de_jong profile" class="crayons-avatar__image" width="256" height="256"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/tijmen_de_jong" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Tijmen de Jong 💻🚀
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Tijmen de Jong 💻🚀
                
              
              &lt;div id="story-author-preview-content-3380248" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/tijmen_de_jong" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F662614%2F4a95c012-c151-446d-ac92-2f08cf76021c.png" class="crayons-avatar__image" alt="" width="256" height="256"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Tijmen de Jong 💻🚀&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/tijmen_de_jong/the-pixel-office-grind-1dp0" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Mar 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/tijmen_de_jong/the-pixel-office-grind-1dp0" id="article-link-3380248"&gt;
          THE PIXEL OFFICE .AI (GRIND)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/tijmen_de_jong/the-pixel-office-grind-1dp0#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>THE PIXEL OFFICE .AI (GRIND)</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Sat, 21 Mar 2026 12:12:18 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/the-pixel-office-grind-1dp0</link>
      <guid>https://dev.to/tijmen_de_jong/the-pixel-office-grind-1dp0</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Started on March 16th 2026&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Started this week a new project with my friend Peter. I know him from skateboarding and we've known each other for about 8 years. This week we started our own online project. We both love open source projects and are also enthusiastic about the new AI developments, especially AI Agents.&lt;/p&gt;

&lt;p&gt;So last week I came up with an idea to turn a Habbo retro emulator into a real live AI Agent hotel that shows what your agents are doing. Much like the versions that are currently in development for OpenClaw — maybe you've seen some on Instagram.&lt;/p&gt;

&lt;p&gt;I really love the style of Habbo Hotel, so I cloned an open source emulator and started building. A day later my friend Peter joined to help me build the branding website thepixeloffice.ai.&lt;/p&gt;

&lt;p&gt;We are thrilled to share this project with you guys and can't wait to show you some early features of this new concept.&lt;/p&gt;

&lt;p&gt;The project is currently at the point where we can create agents, link them to bots in the hotel and make them talk in any language about the tasks they are picking up. They are all connected with each other and can communicate through the hotel about what they are doing.&lt;/p&gt;

&lt;p&gt;The current orchestration uses Claude's team orchestration logic, but we are planning to also add an OpenClaw integration.&lt;/p&gt;

&lt;p&gt;It all works through MCP connections and some AI translation tools that translate technical jargon into clear, readable messages for the customer.&lt;/p&gt;

&lt;p&gt;Stay tuned for more, and I will share some project images below of what we have so far :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foe2ggq4qlqqc1053816h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foe2ggq4qlqqc1053816h.png" alt=" " width="380" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2vyzmrhp317rvi9q3wfm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2vyzmrhp317rvi9q3wfm.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Building Agent Emulator: Habbo emulator + MCP 👨‍💻🏨</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Sat, 14 Mar 2026 14:41:58 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/building-agent-emulator-habbo-emulator-mcp-4ob4</link>
      <guid>https://dev.to/tijmen_de_jong/building-agent-emulator-habbo-emulator-mcp-4ob4</guid>
      <description>&lt;h1&gt;
  
  
  Running AI agents in a self-hosted Habbo Hotel (via MCP)
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/tndejong/habbo-agent-platform" rel="noopener noreferrer"&gt;&amp;gt; &lt;strong&gt;This setup is outdated we are currently improving our services, check github for the latest setup README.md&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built a self-hosted Habbo setup where AI agents can interact with the hotel in real time: spawn users, chat, move between rooms, send alerts, and more.&lt;/p&gt;

&lt;p&gt;The project is &lt;code&gt;habbo-agent-platform&lt;/code&gt;, based on Arcturus + Nitro + an MCP server layer.&lt;/p&gt;

&lt;p&gt;It started as a "Claude in Habbo" experiment, but the current version is broader: it works with any MCP-compatible client (Claude Code, Cursor, and others).&lt;/p&gt;

&lt;h2&gt;
  
  
  What this is
&lt;/h2&gt;

&lt;p&gt;The stack has three parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hotel stack (Docker)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Arcturus emulator&lt;/li&gt;
&lt;li&gt;MariaDB&lt;/li&gt;
&lt;li&gt;Nitro web client&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;MCP server (&lt;code&gt;habbo-mcp&lt;/code&gt;)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js/TypeScript&lt;/li&gt;
&lt;li&gt;Talks to Arcturus over RCON&lt;/li&gt;
&lt;li&gt;Reads/writes relevant data via MySQL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Any MCP-compatible client&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calls tools exposed by &lt;code&gt;habbo-mcp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Can trigger actions like account creation, messages, moderation, economy changes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MCP Client (Claude Code / Cursor / etc)
        |
        v
habbo-mcp server  ---- MySQL (players, room/chat data)
        |
        v
RCON TCP
        |
        v
Arcturus emulator (Docker)
        |
        v
Nitro frontend (browser)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What changed recently (important)
&lt;/h2&gt;

&lt;p&gt;The repo is now much more production-friendly than the first version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-arch GHCR images&lt;/strong&gt; (&lt;code&gt;amd64&lt;/code&gt; + &lt;code&gt;arm64&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster publish workflow&lt;/strong&gt; (Buildx cache in GitHub Actions)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portainer-friendly compose&lt;/strong&gt; with env-driven ports/subnet&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic DB bootstrap&lt;/strong&gt; when core tables are missing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Nitro asset conversion&lt;/strong&gt; on first run&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTPS/WSS-ready Nitro URL generation&lt;/strong&gt; via env vars&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional SSH auto-tunnel&lt;/strong&gt; in MCP for remote hotel management&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;README restructured&lt;/strong&gt; for starter onboarding (Docker/Portainer-first)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick start (recommended path)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/tndejong/habbo-agent-platform.git
&lt;span class="nb"&gt;cd &lt;/span&gt;habbo-agent-platform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create &lt;code&gt;.env.registry&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;HABBO_OWNER_OR_ORG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;tndejong
&lt;span class="nv"&gt;HABBO_PUBLIC_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;127.0.0.1
&lt;span class="nv"&gt;HABBO_PUBLIC_PROTOCOL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http
&lt;span class="nv"&gt;HABBO_NITRO_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1080
&lt;span class="nv"&gt;HABBO_GAME_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3000
&lt;span class="nv"&gt;HABBO_RCON_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3001
&lt;span class="nv"&gt;HABBO_DB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;13306
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose &lt;span class="nt"&gt;--env-file&lt;/span&gt; .env.registry &lt;span class="nt"&gt;-f&lt;/span&gt; docker-compose.registry.yaml up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://127.0.0.1:1080?sso=123&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;First run can take a while: Java build + Nitro conversion + initial setup.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  MCP client config (minimal env)
&lt;/h2&gt;

&lt;p&gt;Use these values in your MCP client:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;MCP_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;your-key&amp;gt;
&lt;span class="nv"&gt;RCON_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;127.0.0.1
&lt;span class="nv"&gt;RCON_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3001
&lt;span class="nv"&gt;DB_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;127.0.0.1
&lt;span class="nv"&gt;DB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;13306
&lt;span class="nv"&gt;DB_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;arcturus
&lt;span class="nv"&gt;DB_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;arcturus_user
&lt;span class="nv"&gt;DB_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;arcturus_pw
&lt;span class="nv"&gt;HABBO_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://127.0.0.1:1080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Remote server management via SSH tunnel
&lt;/h2&gt;

&lt;p&gt;If your hotel runs on a VPS and DB/RCON are local-only there, MCP can auto-open an SSH tunnel.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;SSH_TUNNEL_ENABLED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true
&lt;/span&gt;&lt;span class="nv"&gt;SSH_TUNNEL_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;server-ip&amp;gt;
&lt;span class="nv"&gt;SSH_TUNNEL_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;22
&lt;span class="nv"&gt;SSH_TUNNEL_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;ssh-user&amp;gt;
&lt;span class="nv"&gt;SSH_TUNNEL_KEY_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/path/to/private_key
&lt;span class="nv"&gt;SSH_TUNNEL_LOCAL_RCON_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;43001
&lt;span class="nv"&gt;SSH_TUNNEL_REMOTE_RCON_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;13001
&lt;span class="nv"&gt;SSH_TUNNEL_LOCAL_DB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;43306
&lt;span class="nv"&gt;SSH_TUNNEL_REMOTE_DB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;13306
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then point MCP runtime to local forwarded ports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;RCON_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;127.0.0.1
&lt;span class="nv"&gt;RCON_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;43001
&lt;span class="nv"&gt;DB_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;127.0.0.1
&lt;span class="nv"&gt;DB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;43306
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Example in-hotel bot action
&lt;/h2&gt;

&lt;p&gt;I can now do things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deploy an NPC bot into the active room at &lt;code&gt;(5,5)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;make it say:

&lt;ul&gt;
&lt;li&gt;"Welcome to Habbo agent platform what can i do for u today?"&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;That all goes through MCP tools (&lt;code&gt;deploy_bot&lt;/code&gt;, &lt;code&gt;talk_bot&lt;/code&gt;) against the running emulator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Production notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;sso=123&lt;/code&gt; is fine for local tests, not for real user auth.&lt;/li&gt;
&lt;li&gt;Keep DB/RCON private (localhost/internal network only).&lt;/li&gt;
&lt;li&gt;Prefer proxying Nitro through Nginx Proxy Manager on &lt;code&gt;80/443&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use VPN/IP allowlists if the hotel is internal-only.&lt;/li&gt;
&lt;li&gt;Keep secrets out of committed files.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Visual
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfwlw03q71vwdw8id0jr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfwlw03q71vwdw8id0jr.png" alt="Habbo Agent Platform Bot Welcome" width="588" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Current project repo: &lt;a href="https://github.com/tndejong/habbo-agent-platform" rel="noopener noreferrer"&gt;https://github.com/tndejong/habbo-agent-platform&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Cursor + Docs | Filament | Develop Quick MS Web Apps</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Sat, 13 Dec 2025 14:26:05 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/cursor-mcps-filament-develop-quick-ms-web-apps-3a6i</link>
      <guid>https://dev.to/tijmen_de_jong/cursor-mcps-filament-develop-quick-ms-web-apps-3a6i</guid>
      <description>&lt;p&gt;🧩 &lt;strong&gt;So what is an MS web app?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;MS&lt;/u&gt; stands for &lt;u&gt;Management System&lt;/u&gt; Web App. This can be any web application that helps you manage data. Think of a content management system, an order management system, or an HR management system. Basically any system where you need to manage data can be classified as an MS web app.&lt;/p&gt;

&lt;p&gt;The reason I describe this concept so broadly is because of my personal philosophy. We often try to build very complex visualizations for management systems, while at its core it is simply a large collection of data that we want to manage through a clear and structured interface. We want to know where the buttons are, how data can be filtered, and how it is structured.&lt;/p&gt;

&lt;p&gt;In conclusion, most management systems can be simplified into manageable tables that follow a CRUD approach. Create, Read, Update, and Delete. Once you see it this way, many systems become much less complex than they initially seem.&lt;/p&gt;

&lt;p&gt;⚡ &lt;strong&gt;Why this approach works so well&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One big advantage of this approach is that you can set up a management system very quickly using a tool like Filament. Filament is an extensive UI framework built on top of &lt;u&gt;Laravel&lt;/u&gt; and it makes heavy use of Laravel’s core features.&lt;/p&gt;

&lt;p&gt;This is powerful because you are working with well documented and widely used technology. This will become even more valuable later when we start generating parts of our management system using &lt;u&gt;Opus 4.5 inside Cursor&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;Filament also provides UI styling out of the box, with many clean and well designed components such as tables, navigation, and forms. You no longer have to reinvent the wheel. Unless your client wants to spend a lot of money on a custom built and very unfriendly interface that you develop yourself. 😂&lt;/p&gt;

&lt;p&gt;🤖 &lt;strong&gt;Combining documentation with modern AI tooling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At this point you know what an MS web app is, what Filament is, and why it is a great choice. This is where the current era of development really shines.&lt;/p&gt;

&lt;p&gt;Because we are building a management system using a well documented UI framework, we can index the &lt;u&gt;Filament&lt;/u&gt; documentation inside &lt;u&gt;Cursor&lt;/u&gt;. We can do the same with the Laravel documentation, which is already very strong. This gives our AI tooling deep context about how our system should be built.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Generating a management system with good prompts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now comes the interesting part. We want to generate our management system, but this only works well if we give good prompts.&lt;/p&gt;

&lt;p&gt;If you have looked at the Filament documentation, you know that Filament works with Resources. A Resource represents a complete CRUD setup for a single object.&lt;/p&gt;

&lt;p&gt;If you are familiar with object oriented programming, this will immediately make sense. If not, here is a simple example.&lt;/p&gt;

&lt;p&gt;Data in management systems can almost always be flattened into objects. In an ecommerce system, for example, you have orders, products, and customers. Each of these is an object in your code. A Product is an object. A Customer is an object.&lt;/p&gt;

&lt;p&gt;Using Filament, you can generate a complete CRUD for each object by using the Resource mechanism. With a single command, Filament can generate all the pages needed to create, view, and update a Customer. This means that inside Cursor you can use a prompt like:&lt;/p&gt;

&lt;p&gt;Create a new resource for my customers with the following data fields: first name, last name, age, and email.&lt;/p&gt;

&lt;p&gt;Cursor will then generate the full CRUD setup for you, and it will immediately be accessible in your Filament environment.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Massive time savings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As you can imagine, this saves you hours of development time. You no longer need to manually build components, edit pages, or form logic. In one step, you have a complete CRUD for a single object.&lt;/p&gt;

&lt;p&gt;You can even run multiple agents in Cursor at the same time to build different parts of your management system in parallel. Relationships between resources are also easy to implement through prompting, as long as the Filament documentation has been indexed.&lt;/p&gt;

&lt;p&gt;🎯 &lt;strong&gt;Final thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I hope these insights help you get started with building your own MS web app using &lt;u&gt;Filament&lt;/u&gt;. Once you adopt this mindset and tooling, building management systems becomes faster, cleaner, and much more enjoyable.&lt;/p&gt;

&lt;p&gt;Let me know if you still have any questions.&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>laravel</category>
      <category>webdev</category>
      <category>php</category>
    </item>
    <item>
      <title>Cursor + MCP's | Docker | Strapi v5 | Next JS | Render</title>
      <dc:creator>Tijmen de Jong 💻🚀</dc:creator>
      <pubDate>Fri, 12 Dec 2025 22:29:16 +0000</pubDate>
      <link>https://dev.to/tijmen_de_jong/cursor-mcps-docker-strapi-next-js-45g1</link>
      <guid>https://dev.to/tijmen_de_jong/cursor-mcps-docker-strapi-next-js-45g1</guid>
      <description>&lt;p&gt;🚀 Today my mission was to deploy a Strapi CMS that would power the content for my portfolio website.&lt;/p&gt;

&lt;p&gt;I wanted to create the fastest and most efficient development workflow possible. So I looked for a cloud solution that could load and deploy Docker images straight out of the box.&lt;/p&gt;

&lt;p&gt;☁️ That is when I discovered &lt;u&gt;Render&lt;/u&gt;, a cloud platform that builds Docker images directly from a GitHub repository. This allows you to run the exact same versions locally and in production, in my case &lt;u&gt;Strapi v5 and PostgreSQL 16&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;💬 After some back and forth with &lt;u&gt;Grok from xAi&lt;/u&gt;, while sitting on the toilet, I figured out exactly how to use Render with a Render configuration file. This file defines your server structure in a clean and organised way. It is similar to a Docker file but created specifically for Render so you can build reusable blueprints directly from GitHub.&lt;/p&gt;

&lt;p&gt;⚙️ Once I understood the workflow, I created a new project and asked my good friend Cursor to generate a full Strapi v5 project with a Docker image. Honestly, who still searches everything manually when &lt;u&gt;Cursor with Opus 4.5&lt;/u&gt; can create it in seconds. I loaded the files and did not touch Google once.&lt;/p&gt;

&lt;p&gt;🐳 After Cursor generated the project, I started debugging. I checked the logs and verified that the Docker container was running properly. With a bit of prompting and tweaking, I had a fully working Strapi v5 setup with a Docker file and a Render configuration file in under ten minutes.&lt;/p&gt;

&lt;p&gt;📚 &lt;strong&gt;Pro tip:&lt;/strong&gt; Import the documentation of your tech stack into Cursor to give it more context. Think Render docs, Strapi v5 docs, and anything else you use. Feed everything in.&lt;/p&gt;

&lt;p&gt;📦 After testing everything locally, I uploaded the blueprint to Render. When the deployment began, a few errors popped up. Normally you could copy the logs manually into Cursor, but today we have something much better. Render provides an MCP server that you can connect directly to Cursor. Cursor can fetch deployment logs automatically and understand exactly what went wrong.&lt;/p&gt;

&lt;p&gt;🤯 It worked beautifully, and with only a few prompts my production Docker file was fixed. MCP servers are absolutely brilliant. Yes there are some risks, but I am not working with sensitive data right now so who cares.&lt;/p&gt;

&lt;p&gt;🧱 With Render running my Strapi v5 CMS, the real work began. I created entries and linked them to my existing Next JS portfolio. I structured everything based on my current site. Projects, jobs, tech stacks, all the objects I use, plus the single pages like About and Home.&lt;/p&gt;

&lt;p&gt;🔌 Then came a new challenge. I needed to build an API integration for my portfolio. Did I really want to manually inspect all endpoints. Of course not. I would not be Tijmen if I did not look for an MCP server. And guess what. There is a Strapi v5 MCP server that you can install on your local Strapi instance and expose to other projects. It only works on localhost but it was exactly what I needed.&lt;/p&gt;

&lt;p&gt;🧠 This allowed my portfolio to retrieve all data automatically. The MCP server knew all my entries and pages, giving Cursor full context for building my API integration.&lt;/p&gt;

&lt;p&gt;🏁 &lt;strong&gt;Conclusion: If you want to move fast today, use Cursor with MCP servers and choose a cloud platform that integrates with your development environment. You stay in full control as a developer while using modern tools to reach your goals as quickly as possible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is my first post but I will definitely write more in the coming months about this learning journey!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
