Available for agency backlogs and projects
Linus Web Development
Freelance backlog partnerfor Swiss web and digital agencies

Web developer in Basel: WordPress websites and web apps built to fit.

I take work off your core team exactly where the day runs out of hours: fast WordPress, Elementor and CSS fixes, measurable local SEO (Google and AI search), and complete dashboards and web apps with React and Supabase.

− This ticket has been stuck in the agency backlog for three sprints.
// A simple way of working for agencies

No long onboarding. Just send the ticket across.

Overnight: tickets you send at 5 p.m. are often ready on staging by 8:30 the next morning.

  1. STEP 01Your time: 2 min.

    Send the backlog ticket or the task

    Send the page link, a short screenshot or a Loom video. A WordPress bug, a mobile layout, a Rank Math setup or a feature request.

  2. STEP 02 · FREE TESTCHF 0 risk

    I solve the first small ticket (up to 30 min.) for free

    Instead of a long pitch, you see on the real code how cleanly and quickly I work in your existing WordPress or Git setup.

  3. STEP 03Hourly or fixed price

    Extra capacity when the team is full

    You book me when your team is at capacity. Single tickets at an hourly rate, clear fixed-price packages, or complete client websites and custom web apps.

// Real work, real systems

Two kinds of work. One person to call.

I use WordPress and local SEO as the fast lane for day-to-day client work. I also have the architecture experience to build complete web apps and internal tools with React and Supabase.

CASE 01 · WORDPRESS & LOCAL SEORole: freelance web developer & SEO (one year of build and operation)
vakeup.ch (live site) ↗

VakeUp Basel: from a new build to the top 1–5 on Google, ChatGPT and Gemini

For this Basel catering and take-away business (100% vegetarian and vegan, focused on local ingredients) I built the whole WordPress presence, wired complex ordering and enquiry flows with Fluent Forms, and took on the local search marketing.

Rankings you can check (Basel area)Organic + AI search
🔍 “catering basel”
Top 1–5 on Google
🔍 “veganes catering basel”
Top 1–5 on Google
🔍 “vegetarisches catering” / “firmen catering”
Top 1–5 on Google
🤖 ChatGPT & Google Gemini recommendation
Top recommendation in Basel
  • WordPress
  • Elementor
  • Rank Math SEO
  • Fluent Forms
  • Local SEO / GEO
  • Google Ads
  • Custom SVG animation
✦ LIVE CODE SAMPLE FROM VAKEUP.CHPlain SVG + CSS keyframes (0 KB of video)
VakeUp♥
💡 Lightweight inline SVG illustrations instead of heavy video. Better for PageSpeed and SEO.PageSpeed 95+
CASE 02 · INTERNAL ERP & TEAM DASHBOARDBuilt from scratch · Next.js 16 · React 19 · Supabase
Includes a companion app for smart fridges (under NDA)

A made-to-fit operations dashboard, in the spirit of Slack and Monday

Off-the-shelf tools rarely match a real kitchen and catering day. I built an operations cockpit from scratch that brings catering enquiries, HACCP logs, finance, inventory, the kitchen, staff, contracts and live team chat into one place.

  • Strict role visibility: An admin sees every module (including finance and contracts via signed Supabase Storage links), while kitchen or drivers only see their own areas.
  • Realtime team chat: A custom chat bubble with an unread counter on Supabase Realtime, with no per-seat licence.
  • Companion smart-fridge app (confidential): Alongside it, a specialised app for running intelligent fridges.
⚙️ SHOW THE TECHNICAL ARCHITECTURE (FOR TECH LEADS)

Frontend: TypeScript, React 19 (TSX), Next.js 16 (App Router), Tailwind CSS 4, drag-and-drop cockpit cards.

Backend (serverless): Supabase Postgres, Supabase Auth (username or email), Supabase Storage (signed links for finance and contract files), Supabase Realtime.

Build & QA: Static export (next build → out), strict ESLint and TypeScript check at build time.

CASE 03 · MULTI-USER WEB APP & AILive at linus-os.ch · Cloudflare Workers + Supabase RLS
Open linus-os.ch ↗

Linus OS: a modular life, finance and health system with an AI photo scanner

A full multi-user platform (German / CHF) where people manage appointments, projects, clients, finances, shopping lists, routines and food in one place. With Postgres row-level security (RLS) each account sees only its own data, and modules that are not needed disappear from the UI.

📸 OpenAI Vision meal scan

Photo of the plate → the AI estimates calories and macros before saving. Cost: under 1 centime per scan.

📲 Barcode and web push

A camera scanner connected to Open Food Facts, plus a service-worker web push for morning and evening reviews.

⚙️ SHOW THE ARCHITECTURE OF LINUS-OS.CH

UI & stack: TypeScript, React 19, Next.js 16 (App Router), Tailwind CSS 4, shadcn/ui, several colour palettes (light/dark), a configurable 6-slot mobile bottom bar.

Data & APIs: Supabase Postgres with row-level RLS, OpenAI Vision API, Open Food Facts API, ICS calendar import.

Hosting: Static export served by Cloudflare Workers on linus-os.ch.

INTERACTIVE PREVIEW: AI CALORIE ESTIMATE & MODULES< 0.01 CHF / API-Call
MODULAR UI (shown or hidden per account):
✓ Today & calendar✓ Finance (CHF)✓ Health & AI scan✓ Business & clientsKnowledge / archive (hidden)
CASE 04 · CONTEXT AI & EDGE FUNCTIONSLive at thip.linus-os.ch · Vite + React 19 + Supabase Edge Functions
Open thip.linus-os.ch ↗

thipthipTranslate: cultural context translation with API caching and a cost cockpit

In languages such as Thai, Lao or Vietnamese, sentence endings and pronouns depend on who is speaking, to whom (a partner, an elder, a stranger) and in what mood. Instead of a stiff word-for-word translation, this web app returns culturally accurate phrasing, including pronunciation, a reason, 3 alternatives and a live conversation mode (OpenAI Whisper plus speech output).

WHY THIS CASE MATTERS FOR AGENCY CLIENTS:

Many SMEs want AI features but fear uncontrolled OpenAI costs or leaked API keys. In thipthipTranslate the key sits protected as a secret in Supabase Edge Functions, a database cache absorbs duplicate requests for free, and an admin dashboard watches token cost in realtime.

// For Swiss agencies & SMEs

What you can book me for.

A clean handover, direct communication in Swiss German, German or English, and prices you can plan. Hourly, or a fixed price per ticket or milestone.

01 / DAY-TO-DAYAvailable now

WordPress & Elementor backlog support

I clear stalled tickets for your clients: mobile layout bugs, CSS glitches, complex Fluent Forms flows, new landing pages or custom SVG animations.

Learn more →
Billing:Fixed price per ticket / hourly
02 / VISIBILITYWhite-label possible

Local SEO (Rank Math) and GEO

Technical and editorial optimisation for local searches in Switzerland, so the local ranking improves and the business is easier to find in ChatGPT and Gemini too.

Learn more →
Proof:Top 1–5 rankings in Basel
03 / CUSTOM WEB APPSAI-first speed

Custom dashboards, portals and AI tools

When WordPress runs out of room: with Cursor AI, React/Next.js and Supabase I build secure client portals, internal team dashboards and OpenAI integrations quickly.

Learn more →
Stack:Next.js · Supabase RLS · Cloudflare
// Pricing

Clear prices, without an agency markup.

A fair hourly rate for single tickets, or a fixed price when the scope is clear. All prices in CHF. The quote always comes first, with no commitment.

Hourly rate
CHF 45

per hour · billed in 15-minute increments · no minimum

Backlog ticket

CHF 45 / hour

A CSS, Elementor or plugin fix, billed in 15-minute increments. The first ticket up to 30 min. is free.

More

A started quarter-hour costs CHF 11.25. A ticket of up to one hour costs at most CHF 45.

Typical work is mobile layout, CSS, forms, plugin conflicts after updates and PageSpeed. There is no minimum and no subscription. I reply within 4 business hours.

WordPress support for agencies →

Landing page

from CHF 690

One page in WordPress/Elementor, responsive, with a form, a basic Rank Math setup and PageSpeed work.

More

The price starts at CHF 690 because the scope differs from page to page. The fixed price covers what the quote describes. Extra requests are billed at the hourly rate.

SME website

from CHF 1,890

Up to 5 WordPress pages, design to your brand, contact form, legal-page structure, a local SEO base and a handover.

More

The price starts at CHF 1,890. The full local SEO setup at CHF 890 is a separate package. Extra requests are billed at the hourly rate.

Local SEO setup

CHF 890

Keyword research, Rank Math, schema, Google Business Profile and GEO. Fixed price for WordPress sites.

More

Also included: consistent business details and a simple way to ask for Google reviews. Rank Math Pro plus WP Rocket is worth having. The licence is about CHF 155 per year and the client pays it.

The price of CHF 890 is for WordPress. For another CMS or custom code, the price is on request after I have looked at the system. Ongoing support from CHF 149 per month and Google Ads are separate.

Local SEO Basel →

Google Ads

CHF 390 + CHF 190 / month

Setup of one local search campaign. Care is one monthly check of that campaign. Google ad spend is extra.

More

The CHF 390 setup covers one account, conversion tracking, one local search campaign, the ads and the link to the Google Business Profile.

Care at CHF 190 per month is one monthly check of that campaign and can be cancelled any month. Anything beyond that is CHF 45 per hour.

Local SEO Basel, including Google Ads →

Maintenance & SEO support

from CHF 149 / month

Updates, backups, uptime monitoring, a monthly ranking report and 1 hour of support included. Cancel any month.

More

The price starts at CHF 149 per month. Time beyond the included hour is billed at CHF 45 per hour.

Web app / MVP

from CHF 3,900

A dashboard, client portal or AI tool with React, Next.js and Supabase, including login, roles (RLS) and hosting setup.

More

An MVP with login, roles and the essential features starts at CHF 3,900. The exact fixed price comes after a free planning workshop.

After the final invoice the code belongs to the client. The data can stay in Zurich if wanted.

Web app development →

All prices in CHF. Fixed prices cover the scope in the quote; extra requests are billed transparently at the hourly rate.

<fixed/>★ SEO #1
Linus · web developer in Basel, working remotely
// About me and how I work

A practical builder, not agency filler.

Hello, I am Linus, a web developer in Basel. I combine two things rarely found in one person: I know the classic Swiss SME stack (WordPress, Elementor, local SEO and Google Ads) inside out, and I enjoy building complex web apps with React, TypeScript and Supabase.

For app work I use Cursor AI directly in the code, openly and on purpose. AI speeds up the typing. I still own the database architecture, the security model (row-level security, protected edge functions), API cost control and a clean build. For your agency that means agency-level quality in a fraction of the usual turnaround.

LANGUAGES
German / Swiss German, English
RESPONSE TIME
Within 4 business hours
START HERE
First test ticket (30 min) free
// Questions agencies ask

Test ticket, process, pricing. Short answers.

How does the free test ticket work?

You send a small, clearly scoped task from your backlog, for example a mobile bug, an Elementor issue or a Rank Math setup. The first task of up to 30 minutes is free and without commitment. You see how I work, on the real code.

What do you charge as a web developer in Basel?

My rate is CHF 45 per hour, billed in 15-minute increments. Defined jobs have fixed prices: landing pages from CHF 690, SME websites from CHF 1,890, a local SEO setup for WordPress at CHF 890, Google Ads setup at CHF 390 plus CHF 190 per month to run, and web apps from CHF 3,900. You always get a quote before any work starts.

Hourly rate or fixed price: which is better for my agency?

For single backlog tickets and maintenance, the hourly rate is the better fit because you only pay for the time used. For new websites, landing pages or web apps with a clear scope, I recommend a fixed price per milestone so the budget stays predictable for you and your client.

How does the work with agencies actually run?

You send the ticket by email, through your own ticket system, or as a Loom video. I work in your existing WordPress or Git setup, ideally on staging, document every change and hand it over for review. White-label is available. Your client does not have to know I am involved.

How fast do you reply, and when is a ticket done?

I reply within 4 business hours with an estimate. Small fixes sent late in the afternoon are often ready on staging the next morning.

Do you also do local SEO for businesses in Basel?

Yes. I optimise WordPress sites with Rank Math, structured data (LocalBusiness schema), the Google Business Profile and copy aimed at local searches. That improves local rankings and the chance of showing up in AI answers from ChatGPT, Gemini and Perplexity. How far it climbs depends on the industry, the competition and the starting point. For VakeUp Basel, “catering basel” and “veganes catering basel” sit in positions 1–5.

When is a custom web app a better fit than WordPress?

As soon as you need logins with roles, internal workflows, realtime data or AI features, WordPress runs out of room. I then build tailored dashboards and portals with React, Next.js and Supabase, including row-level security so each user only sees their own data.

// BLOG & INSIGHTS

Practical notes from Basel: WordPress, SEO and web apps.

See all articles →
Setting up a Google Business Profile in Basel: step by step
Guide

Setting up a Google Business Profile in Basel: step by step

Your Google Business Profile is the listing that shows up in Google Maps and on the right of the search results for local searches. This guide walks you through setting it up, from the first sign-in to verification, and helps you avoid the pitfalls I keep seeing with small businesses in Basel.

Google Business ProfileLocal SEOBaselGoogle Maps
Read on · 6 min →
NO COMMITMENT

Send me your first small backlog ticket.

A stubborn CSS bug on mobile, an Elementor widget that sticks, or a question about a web app? Fill in the form. I reply within 4 business hours with a clear estimate.

  • ✓ First test ticket (up to 30 min.) free
  • ✓ Hourly work, no minimum
  • ✓ Every change is documented
  • ✓ Your enquiry is stored in Zurich. The site is delivered via Cloudflare (USA).

By sending this form you accept the privacy policy. Spam protection by Cloudflare Turnstile.