Sauber gebaut.Gebaut, um zu wachsen.
Websites, Webanwendungen und WordPress-Plugins, methodisch entwickelt: klar, zuverlässig und bereit, sich Ihren Bedürfnissen anzupassen.
Die Technik steht nie still. Ich bin auch nach dem Start noch da – Entwickler, Problemlöser und Tech-Freund in einer Person – und halte Ihre Website schnell, sicher und aktuell.
Jahrzehnte Ingenieurserfahrung, in der Schweiz zuhause.
Erstellen
Websites für Privatpersonen, Unternehmen und Vereine. Erst das Design, dann die Umsetzung. Von einer handgefertigten, statischen Website, die keinerlei Wartung benötigt, bis hin zu WordPress, wenn Sie die Seite selbst betreiben möchten – mit so wenigen Komponenten wie nötig für das jeweilige Projekt, und jede einzelne davon ist für Sie nachvollziehbar. Die Form folgt der Funktion; das Erlebnis begleitet Sie überallhin.
Webanwendungen – wenn eine Website nicht ausreicht: Mitgliedersysteme, Kundenportale, Buchungsmodule, datenintensive Tools mit eigenem Admin-Bereich. Von Grund auf in PHP entwickelt, wobei die Daten in einer Datenbank vollständig unter Ihrer Kontrolle stehen – ganz ohne unnötige Software von Drittanbietern.
WordPress-Plugins – wenn das gewünschte Plugin nicht existiert oder mit Lizenzgebühren, einem Tracking-Skript und vierzig Funktionen verbunden ist, die du nie nutzen wirst. Stattdessen entwickle ich kleine, prägnante Plugins – einige davon sind öffentlich zugänglich, probier doch eines aus, bevor du mich beauftragst.
Von vorne bis hinten – Server, Datenbank, Code, Layout – alles aus einer Hand, damit nichts zwischen den Abteilungen untergeht. Ich halte die Dinge bewusst einfach: Einfachheit ist nachhaltiger als Raffinesse, verursacht geringere Betriebskosten und bleibt über Jahre hinweg wartbar. Datenschutz ist Standard, keine Option: Hosting in der Schweiz, keine in Ihre Website integrierten Komponenten, die die Daten Ihrer Besucher verkaufen, und Ihre Daten bleiben vollständig in Ihrem Besitz.
So läuft es:
- wir reden
- ich entwerfe
- Sie geben frei
- ich baue und veröffentliche
Sie haben bei jedem Schritt direkt mit mir zu tun. Keine Agentur-Overheads, kein Account-Manager, keine endlose Ticket-Warteschlange.
Betreuen
Ein Projekt ist mit dem Start nicht fertig. Software altert, Bedrohungen entwickeln sich weiter, und der Tag, an dem etwas kaputtgeht, passt nie. Die meisten Entwickler bauen und verschwinden; ich bleibe. Das war schon immer so – jetzt hat es einen Namen und einen Preis.
Wählen Sie das Mass an laufender Betreuung, das Sie brauchen:
| Foundation | Structure | Evolve | |
|---|---|---|---|
| Laufender Betrieb | |||
| Core-, Plugin- und Theme-Updates – eingespielt und geprüft | ✓ | ✓ | ✓ |
| Backups | Hosting, täglich | Wiederherstellung getestet | Wiederherstellung getestet |
| Verfügbarkeits- und Fehlerüberwachung | ✓ | ✓ | ✓ |
| Behebung, wenn etwas kaputtgeht | nach Offerte | ✓ | ✓ |
| SSL, Domain und DNS aktuell gehalten | ✓ | ✓ | ✓ |
| E-Mail-Zustellbarkeit geprüft | ✓ | ✓ | ✓ |
| Sicherheit | |||
| Web-Firewall und Härtung | ✓ | ✓ | ✓ |
| Prüfung der Dateiintegrität | ✓ | ✓ | ✓ |
| Rotation von Schlüsseln und Passwörtern | ✓ | ✓ | ✓ |
| Login-Schutz und Spam-Abwehr | ✓ | ✓ | ✓ |
| Sicherheitsalarme | ✓ | ✓ | ✓ |
| Ihre Weiterentwicklung | |||
| Inhalts- und Layoutänderungen | nach Offerte | 2 Stunden / Monat | 4 Stunden / Monat |
| Neue Funktionen und Erweiterungen | nach Offerte | nach Offerte | 2 Stunden / Monat |
| Performance-Check | jährlich | zweimal jährlich | zweimal jährlich |
| Zusammenarbeit | |||
| Zusammenfassung per E-Mail | vierteljährlich | monatlich | monatlich |
| Reaktionszeit | 2 Arbeitstage | 1 Arbeitstag | am selben Tag |
| Preis | |||
| CHF / Monat | 85 | 255 | 595 |
| CHF / Quartal (quartalsweise in Rechnung gestellt) | 255 | 765 | 1’785 |
| Jahresvorauszahlung CHF | 895 (−12 %) | 2’692 (−12 %) | 6’283 (−12 %) |
- Jeder Neubau enthält zwei Monate «Structure».
- Websites, die ich nicht gebaut habe, können nach einer Überprüfung dazukommen.
- Alles über Ihre Stunden hinaus wird mit CHF 85 pro Stunde verrechnet – ohne Überraschungen.
Plugins
Werkzeuge, die ich für meine eigenen Websites gebaut habe. Frei zum Mitnehmen.
Kleine, raffinierte WordPress-Plugins, die ich jeweils selbst geschrieben habe, weil das Plugin, das ich brauchte, entweder nicht existierte oder mit einer Lizenz, einem Tracking-Skript und vierzig Funktionen ausgestattet war, die ich niemals nutzen würde. Sie werden über diese Website aktualisiert, nicht über einen Marktplatz, und sie senden ausser der Aktualisierungsprüfung selbst keine Daten an den Hersteller – in der Readme-Datei jedes Plugins steht genau, welche Daten dabei übermittelt werden.
KeyTurn 0.1.8
The eight authentication constants (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY and their four _SALT counterparts) sign WordPress's auth cookies and…
Changelog
0.1.8
- Updates now come from designbyroger.com: the plugin carries Plugin Update Checker 5.7 and checks https://designbyroger.com/plugins/keyturn.json about twice a day. This is KeyTurn's only outbound request; the readme says exactly what it sends.
- Tested up to 7.1; security contact added to the readme.
0.1.7
- The arming backup of wp-config.php is now removed on the first verified admin page load after arming, instead of at the first rotation — no more weeks of file-scanner alerts on a file with no remaining value.
- Readme: mailers with a store-credentials-in-wp-config mode sidestep the re-enter-after-rotation step.
0.1.6
- Wording pass across readme, settings page, arm preview, notices and emails: encrypted-secrets (SMTP) consequence stated at every commitment point; crontab-removal reminders on restore; overdue guidance names the crontab path and php binary; careless-delete FAQ corrected and given a hand-finish; nginx snippet corrected.
- Fix: rotation email no longer reports a WP-Cron "next due" date when rotations run from system cron.
0.1.5
- Readme: known interactions — plugins that encrypt secrets against the salts (SMTP), host migrations breaking crontab paths; cron FAQ: which-php check, MAILTO, URL-only panels.
- Settings: crontab example shown whenever a schedule is set, not only after System cron is saved; PHP-binary and MAILTO note.
0.1.4
- Documentation: changelog brought current.
0.1.3
- Incident panel attention treatment: red warning heading with dashicon, bold preamble.
0.1.2
- Recovery instructions rewritten: ordered sequence, plain-language secrets, double-rotation rationale; incident panel mirrored.
0.1.1
- Versioning: plain patch bumps, dev-suffix dropped.
0.1.0
- Initial release.
Full description
The eight authentication constants (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY and their four _SALT counterparts) sign WordPress's auth cookies and nonces. KeyTurn rotates them on a schedule — weekly, monthly, or quarterly — and gives you a one-click "Rotate now" button for incidents.
What rotation buys you: stolen cookies get a bounded useful life, leaked constants go stale, and post-incident cleanup is one click. What it costs: every rotation signs *every* user out of the site — including the administrator who triggers it. KeyTurn tells you this before you commit, on a preview screen, and again in every warning. Plugins that encrypt stored secrets against the salts — SMTP plugins are the common case — will ask for those secrets again after each rotation (see the FAQ).
Architecture, in two sentences. KeyTurn edits wp-config.php exactly once, replacing the eight define() lines with a small marked block that loads a dedicated file, keyturn-salts.php, sitting beside wp-config.php. Every rotation thereafter rewrites only that one file — atomically — so wp-config.php is never regex-edited on a schedule.
One outbound request, and you can see it. About twice a day KeyTurn asks designbyroger.com whether a newer version exists — the same check WordPress makes to wordpress.org for directory plugins, sending the same things: your site URL, plugin, WordPress and PHP versions, and locale. Nothing else ever leaves your server: no telemetry, no salt values. Salts are generated locally with PHP's cryptographic random source. One bundled library (the update checker), no build step, no custom database tables. The one other HTTP request is a self-test that requests your *own* site's URL over loopback to confirm the salts file isn't being served as text — it contacts no external host.
Requirements: PHP 8.1+ and WordPress 6.2+. Single-site only for now; multisite is refused at activation and planned for a later release.
Security contact: report vulnerabilities privately to admin@designbyroger.com.
ShowLove Donations 1.0.6
ShowLove Donations adds a donation form to your WooCommerce site and optionally a Donation Leaderboard.
Changelog
1.0.6
- Updated description and installation documentation
- Renamed tabs: General Settings, Shortcodes
- Removed video links
- Renamed Gutenberg block to ShowLove Donations
1.0.5
- Added self-hosted update support via Plugin Update Checker 5.6
- Added Update URI header so updates are served from designbyroger.com
1.0.4
- Renamed leftover vendor-prefixed CSS class, helper functions and script names to the sld prefix
- Removed a dead nav tab icon style
- No functional changes
1.0.3
- Leaderboard rows now stay on a single line and scale down in narrow containers
- Donation amount now matches the row font size, bold only
- Leaderboard dates now use a short 3-letter month format (e.g. 5 Mar 2026)
- Added a configurable leaderboard heading, set under Label settings
- Added leaderboard shortcode documentation to the Shortcode settings tab
1.0.2
- Removed leftover "Get Pro Version" markup from the settings page (crown icon, upgrade feature list)
- Fixed invalid HTML nesting on the settings page
- Removed dead upgrade-button and stale admin-slug CSS rules
- Fixed empty nonce field on the General Settings tab
1.0.1
- Fixed leaderboard CSS
- Updated settings page title
- Removed "Get Pro Version" tab
- Added support for legacy order flags in leaderboard
1.0.0
- Initial release
- Forked and rebranded with security improvements
- Added donation leaderboard shortcode
- Added donor privacy controls at checkout
- Removed external update checker (phone-home)
- Fixed SQL injection vulnerabilities
- Added nonce verification to AJAX handlers
- Sanitized all user inputs
Full description
ShowLove Donations adds a donation form to your WooCommerce site and optionally a Donation Leaderboard. Visitors can choose their own donation amount and optionally leave a message with the donation.
How it works
On activation, ShowLove creates a virtual WooCommerce product to track donations. Use the [sld_donation] shortcode to display the donation form on any page or post.
If you prefer, you can create your own donation product to override the ShowLove default product (simple, virtual) and select it in ShowLove -> General Settings -> Select Donation Product.
Multiple campaigns
To run separate campaigns (e.g. "Support Education", "Wildlife Fund"):
- Create a simple, virtual product for each campaign
- Check "Donation Product" on the product's edit page - this replaces "Add to Cart" with a donation form
- Either link to the product page directly, or use
[sld_donation product_id="123"]to embed that campaign's form anywhere
Donor leaderboard
Display your top donors with [sld_leaderboard]. Donors can choose to remain anonymous at checkout.
Shortcodes
Donation Form:[sld_donation][sld_donation product_id="123"]
Donation Leaderboard:[sld_leaderboard] - Shows top 10 donors by total[sld_leaderboard limit="5"] - Limit number shown (1-100)[sld_leaderboard orderby="date"] - Sort by most recent instead of highest[sld_leaderboard style="2"] - Use bordered style[sld_leaderboard limit="5" orderby="total" style="2"] - Combined options
Template Code
<?php echo do_shortcode('[sld_donation]'); ?><?php echo do_shortcode('[sld_leaderboard limit="10"]'); ?>
Neue Versionen werden im Newsletter angekündigt.
Beraten
Für Organisationen
Entscheiden, was entwickelt werden soll, ob es überhaupt entwickelt werden soll und wie es anschliessend betrieben werden soll. Ich helfe Ihnen dabei, die richtigen Tools auszuwählen, das passende Hosting zu finden und zu klären, was intern bleiben und was ausgelagert werden soll – und ob KI in Ihren Arbeitsablauf passt oder nicht.
Für Einzelpersonen
Selbstständige Unternehmer, die ein vertrauenswürdiges zweites Paar Augen brauchen, und Lernende, die über Tutorials hinausgehen möchten, um ihre eigene Website endlich zu verstehen, anstatt sich davor zu fürchten.
Der Blickwinkel
Ich betrachte den Aufbau eines Online-Geschäfts aus einer anderen Perspektive: als jemand, der Organisationen weit abseits des Internets geplant, geleitet und beraten hat – und der sein eigenes kleines Online-Geschäft, 6 Treasures, genau auf dieser Plattform betreibt.
Gebuchte Zeit, stundenweise, per Video (kMeet) oder schriftlich (Matrix): CHF 85 pro Stunde, die erste halbe Stunde kostenlos. Grössere Vorhaben – Systeme, Integrationen, längere Beratung – nach Gespräch.
Über mich

Bevor ich meinen Lebensunterhalt mit dem Schreiben von Software verdiente, war ich Luft- und Raumfahrtingenieur, Planungsingenieur, Logistikingenieur, Programmmanager und Unternehmensberater. Den grössten Teil meiner Karriere habe ich damit verbracht, immer wieder dasselbe zu tun, nur in unterschiedlichen Rollen: zu verstehen, wie ein System zusammenpasst, und es dann zuverlässig zum Laufen zu bringen. Websites und Apps sind einfach der Bereich, in dem ich das heute tue – und auch nach Jahrzehnten öffne ich den Code-Editor noch immer mit derselben Begeisterung wie am ersten Tag.
Design ist für mich keine Dekoration. Es bedeutet, zu entscheiden, was man weglässt, und dann das, was übrig bleibt, für den Nutzer vollkommen offensichtlich zu machen.
Ich arbeite bewusst allein und nutze dabei sorgfältig ausgewählte Werkzeuge: wo immer möglich Open-Source-Software, immer Hosting in der Schweiz und nichts, was die Daten meiner Kunden verkauft. Ausserdem arbeite ich täglich mit KI – Claude ist praktisch mein Pair-Programmierer und Sparringspartner. Das macht mich schneller; die Entscheidungen trifft jedoch nicht die KI. Alles, was ausgeliefert wird, ist durch meine Hände gegangen und wurde von mir geprüft.
In den sozialen Medien finden Sie mich nicht, auch wenn ich Sie dazu beraten kann. Sie finden mich am Telefon oder im Café: Meine Kunden bekommen meine private Nummer, meine E-Mail und mein Telegram.