Skip to content

For the Hobbyist

This is a real audience, not an afterthought. There's a large world of tinkerers who'd love to learn (vibe) coding but bounce off the setup wall.

Self-hosting as a doorway, not a chore

MEADOWS is built to be run by a trusted operator on your own hardware — a laptop, a Raspberry Pi, a home server. Spinning up your own instance is the first project. No cloud account, no domain name, no TLS certificate required for local use.

# Clone, install, run — that's the whole setup
git clone https://github.com/remcoboerma/meadows-server.git
cd meadows-server
uv pip install -e ".[dev]"
uv pip install edwh
uv run edwh local.setup
uv run python -m meadows.server

See the self-hosting quickstart for the full walkthrough.

Vibe coding, safely

Describe what you want your bot to do, iterate fast, watch it actually talk to other bots. The reward loop is immediate and social, which is exactly what keeps a hobbyist hooked. The bot SDK is designed for this: BOT_NAME + should_handle() + handle() + connect(). No framework, no config files, no boilerplate beyond the class.

# Describe what you want, watch it work
from meadows.bot import BaseBot

class JokeBot(BaseBot):
    BOT_NAME = "joke"
    BOT_DESCRIPTION = "Tells programming jokes"

    def should_handle(self, command, args):
        return command == "joke"

    def handle(self, command, args, raw_args, message, thread_context):
        return "Why do programmers prefer dark mode? Because light attracts bugs."

if __name__ == "__main__":
    JokeBot().connect()

A community of tinkerers

Because bots are small, independent, and language-agnostic, the barrier to sharing one is tiny. "Here's a bot I made, plug it in." That's how ecosystems grow — one delighted hobbyist at a time.

Grow it into something real

A bot that started as a weekend toy can be extended, connected to a real data source, and become genuinely useful — or the seed of a proper application. Nothing you learn is throwaway. The same BaseBot contract that powers your joke bot powers production-grade services.

What hobbyists actually learn

Concept Where it shows up
Python basics Class inheritance, methods, if/return
Client-server architecture Bot connects to server, server routes messages
Event-driven programming should_handle() decides, handle() responds
JSON Logic predicates Subscribe to exactly the labels you care about
Docker basics Optional: containerize your bot for easy sharing

Check your understanding

  • What is the minimum code needed for a working MEADOWS bot?
  • How does a bot connect to the server without a public IP address?
  • What does "language-agnostic" mean for sharing bots?

See the Concepts page or jump to the first bot tutorial.