Skip to content
webersheim.de
← All projects

Local & civic

ebersheim.de

The village portal for Mainz-Ebersheim — new every morning, with a podcast.

Screenshot of ebersheim.de

ebersheim.de is the village portal for Ebersheim, a district in the south of Mainz. Since summer 2026 I have been turning it from a static club page into a portal that updates itself every morning — and makes transparent what a machine writes and what a human decides.

Behind the site are more than 20,000 lines of code and over 200 changes since the summer. The rule: no number, date or name is published that is not in the sources. Better no episode than a wrong one.

At a glance

  • About 60 podcast episodes since August 2026
  • More than 20 automatic jobs, publicly visible
  • Fact check before every publication

What we built there

A village portal, piece by piece

Every item can be seen on the live site. Links go straight to the page on ebersheim.de (in German).

According to “So entsteht ebersheim.de”

35
sources every morning
~60
podcast episodes since August
20+
automatic jobs
17
steps in the nightly chain

News and media 7

  • Today in Ebersheim

    open: Today in Ebersheim

    Daily overview rebuilt every night Monday to Saturday: clubs, city and police notices, weather, traffic, events, football and bin dates — written under a fact guard.

  • Ortsfunk — the Ebersheim podcast

    open: Ortsfunk — the Ebersheim podcast

    A two-voice episode of two to three minutes Monday to Saturday, with a weekly review on Sunday. Chapter marks, a cover per episode and a guard against invented facts before speech synthesis.

  • Podcast on every platform

    open: Podcast on every platform

    Subscribe via Spotify, Amazon Music, Deezer, Podcast Index or RSS — as plain text links without tracking.

  • Show segments

    Local business tips, “new on the notice board” for fresh classifieds, house notices with guaranteed airtime and TSV football results from the FuPa API.

  • WhatsApp channel “Ebersheim heute”

    A box on the homepage and a line under every post and episode — the daily overview goes straight to the phone.

  • Instagram and Facebook

    A daily video and post for each episode on the portal’s channels.

  • A public explanation of which sources are read and how a club gets included.

Calendar and community 5

  • Event calendar

    open: Event calendar

    A nightly merge of both parishes’ newsletters, wine events from openwein.de, council meetings, the youth café and posters — plus an upcoming-events sidebar.

  • Calendar subscription

    open: Calendar subscription

    An iCal feed for Google, iPhone/Mac and Outlook, prominent above the calendar and in the sidebar.

  • From the district council

    open: From the district council

    Every meeting in plain language: two sentences per agenda item from the official PDFs, checked by a human before they appear — every meeting of the term and the next date.

  • New development areas

    open: New development areas

    The planned housing areas with planning status and official documents.

  • Clubs, parties and groups

    open: Clubs, parties and groups

    New pages for parties, the summer camp, Agenda 21, the repair café and the youth centre, plus 17 club pages rewritten from the clubs’ own sources.

Everyday life 7

  • What is open today — post office, recycling centre, wine taverns — plus today’s events and the bin calendar. Loaded live via REST so the page cache never freezes “today”.

  • Live bus departures

    Real-time departures of lines 66 and 67 with service alerts, as a widget on every page — the Abfahrtstafel plugin.

  • Bus stops, playgrounds, kindergartens, school, doctors, churches, sports grounds and places to eat. Self-hosted Leaflet; map tiles load only after a click — privacy first.

  • Health in Ebersheim

    open: Health in Ebersheim

    Practices, pharmacy, care services, emergency numbers and the nearest emergency departments on one page.

  • Kindergartens

    open: Kindergartens

    The four kindergartens, rewritten from official sources (the old page dated from 2011), with how to register.

  • Business directory

    open: Business directory

    Members of the local business association, imported weekly, plus further researched businesses — grouped by trade.

  • Free and without an account, every ad moderated, no phone field — contact via a relay form. Ads run for 30 days.

Wine and weather 5

Property 2

  • Local property listings

    open: Local property listings

    Private offers free of charge, agents deliver via OpenImmo into an SFTP inbox, contact through a relay form. The portal does not broker and takes no commission — the Estatequay plugin.

  • MCP interface for listings

    A read-only MCP server makes the listings searchable for AI assistants.

Transparency and engineering 4

  • How this site is made

    open: How this site is made

    Sources, the nightly chain, the checks — and what the AI writes and what humans decide.

  • Live job status

    open: Live job status

    A public dashboard of every automatic job with last run, result and next run — even when something is red.

  • Village emblem

    A silver lattice on a red tile — deliberately not an official coat of arms, generated and used as the favicon.

  • Clean mail delivery and redirects

    Site mail passes SPF and DMARC, and every address reaches the canonical www host in exactly one redirect.

30 · ebersheim.de

More projects

LiveSince 2026

Abfahrtstafel

Live departures of one stop as a WordPress widget.

Shows departures of one bus or tram stop with real-time delays and service alerts from an EFA journey planner. Visitors never reach the planner directly: the site fetches and caches. In use on ebersheim.de as “Bus ab Neugasse”.

  • WordPress
  • PHP 8.1
  • EFA
LiveMCPSince 2026

Estatequay

Open-source real-estate plugin for WordPress, free to download.

Imports listings from agents’ software via OpenImmo over per-agent SFTP inboxes and Spanish feeds via Kyero v3, takes private offers and forwards enquiries through a relay form that stores nothing. Legal requirements such as the energy certificate are enforced.

  • WordPress
  • PHP 8.1
  • OpenImmo
  • Kyero
In developmentSince 2026

Ratsfaden

The common thread through Mainz’s 15 district councils.

Harvests every district-council meeting from the city’s public council information system — 230 meetings and almost 4,000 agenda items in the current term — classifies topics and shows which questions were answered and which were not.

  • Python
  • local LLM