DEV Community

Art
Art

Posted on

ForgeDesigner Alpha: an AI assistant that builds websites on your own machine

Today I'm releasing the first alpha of ForgeDesigner for macOS (Apple Silicon) and Linux (x86_64).

ForgeDesigner is a small desktop app where you describe a website in plain words and an AI assistant builds it: it creates the pages, writes the Markdown, and shows you a live preview. The result is plain files in a folder on your disk. You don't need a hosting account, you don't get locked into a page builder, and nothing lives in somebody else's cloud unless you put it there.

👉 Download: https://codeberg.org/CrowdWare/Forge4D/releases/tag/v2026.9.23-forgedesigner-linux

Why I built it

I wanted something between "hand-write HTML" and "rent a website builder". The things people use today, WordPress, website builders and IDEs, all ask you to learn their world first. I wanted a single place where I can say "make me a landing page with a short intro and a contact section", then look at the files, change a sentence by hand, and ask for the next step.

ForgeDesigner is built on Forge 4D, an open platform where apps are written in two small languages:

  • SML (Simple Markup Language): declarative UI and content
  • SMS (Simple Script): event handlers and logic

The whole designer UI, including the docks, the file tree, the editor and the assistant tab, is itself an SML/SMS app running on the native Forge runner (C++ on top of Godot 4.6). A few lines from its layout:

DockingContainer {
    id: rightDock
    dockSide: right

    VBoxContainer {
        id: preview
        rightDock.title: @Strings.tabPreview
    }
}
Enter fullscreen mode Exit fullscreen mode

What works in this alpha

  • AI assistant with tools. The assistant can list_files, read_file, write_file and run_command inside your workspace folder (~/ForgeWorkspace/...). You watch it work in the transcript, and the file tree updates as files appear.
  • ForgeCMS plugin. The first output target: pages as SML plus Markdown, ready to be pushed to a Git repo and served as a static site.
  • Live preview. Select a page or a Markdown file and see a layout preview next to the editor.
  • Editor that stays in sync. Every keystroke is saved, and changes the assistant makes show up in the editor right away.
  • Offline by default. Out of the box the assistant runs against a built-in mock: it's free and sends nothing anywhere. Switching to a real model is one config line (see below).
  • Retries. If the model provider answers with "overloaded", the request is retried automatically; after that there's a Retry button.

Security model

An AI that can write files and run commands on your machine needs guard rails. ForgeDesigner has these:

  • Permissions are declared and confirmed. The app lists what it needs (workspace files, running programs after asking, network access to openrouter.ai), and the runner asks you once on first start.
  • Commands are argv, not shell strings. A small set (git, ls, cat, ssh, scp) runs directly. Everything else opens a dialog where you decide, once or for good.
  • API keys stay in the runner. Your key lives in a chmod 600 file in the runner's data folder and is never handed to the app or the model.

Prompt injection is still a real risk. The trusted commands can reach whatever your user can. That's a big part of why this is an alpha.

Try it

macOS (Apple Silicon): unzip, then remove the quarantine flag once. The alpha is only ad-hoc signed.

xattr -dr com.apple.quarantine ForgeDesigner.app
Enter fullscreen mode Exit fullscreen mode

Linux (x86_64):

tar xzf ForgeDesigner-2026.9.23-linux-x86_64.tar.gz
./ForgeDesigner/ForgeDesigner.x86_64
Enter fullscreen mode Exit fullscreen mode

Connect a real model (OpenRouter)

  1. Create a key on openrouter.ai (Keys → Create Key). Models ending in :free need no credit.
  2. Open the app's data folder:
    • macOS: ~/Library/Application Support/Godot/app_userdata/ForgeDesigner/
    • Linux: ~/.local/share/godot/app_userdata/ForgeDesigner/
  3. Put the key into forge_ai_keys.sml and run chmod 600 forge_ai_keys.sml:
   Keys {
       openrouter: "sk-or-v1-..."
   }
Enter fullscreen mode Exit fullscreen mode
  1. In forge_ai.sml, switch the provider:
   Ai {
       provider: "openrouter"
       chatModels: "qwen/qwen3.8-27b:free, nvidia/nemotron-3-super-120b-a12b:free"
   }
Enter fullscreen mode Exit fullscreen mode

The first model is used, and the others are fallbacks. Free models come and go, so check the current ones with tool support.

  1. Send your next message. No restart needed.

Known rough edges

  • macOS build is Apple Silicon only and not notarized; Linux build is x86_64 only. No Windows build yet.
  • ForgeCMS is the only output plugin so far.
  • Free models are sometimes overloaded or change without notice.
  • The UI still has a few leftovers from its origins as an SML editor.

What's next

  • Deploying a site straight from the app (Git push + SSH)
  • More output plugins: HTML, Android, macOS apps, and books (chapters by prompt, export to PDF/EPUB)
  • Finer-grained "always allow" rules for commands like git and ssh

The code is open source (GPLv3, with a commercial license available) on Codeberg: https://codeberg.org/CrowdWare/Forge4D

If you try it, I'd love to hear what broke, what felt wrong, and what you'd build with it. Issues and comments welcome! 🌱

Top comments (0)