Skip to content
Erik Thiart

Erik Thiart / Independent developer & technical consultant

Freelance PHP developer in South Africa.

I turn complicated business processes into software people can use and teams can maintain.

I’m Erik Thiart, based in Cape Town. I build custom PHP and MySQL systems, connect APIs, and engineer automation for businesses across South Africa and internationally. My work spans transaction platforms, publishing systems, commerce, map-based applications and AI-driven data pipelines.

Follow @erikthiart on X Development, automation and the work behind these projects.

Since 2012Building and maintaining business software

11 project case studiesPlatforms, maps, commerce and service websites

Cape Town · UTC+2South African and international engagements

Where I can help

PHP development, API integration and business automation.

For business owners who need delivery and development teams who need an extra pair of hands.

PHP development & maintenance

Build features, fix bugs, and maintain existing applications. Customer portals, internal tools, MySQL reporting and AdminLTE dashboards.

API & payment integrations

Connect your systems to payment gateways, suppliers and other services, with explicit status handling, useful logs and reconciliation when a response is uncertain.

Business process automation

Replace repeated spreadsheet work and manual administration with imports, scheduled jobs, queues and reports your team can use.

I work directly with business owners and alongside development teams. Whether the job is a focused repair or a complete build, the starting point is the process you need to improve.

Engineering in detail / BizLookupPro

An AI curation harness built around evidence, validation and recovery.

Turning source websites into useful business listings involves more than generating descriptions. Each record needs to belong to the right business, carry supporting evidence, survive interrupted work, and pass publication checks.

  1. 01Collect sources

    Fetch business websites and prepare usable source pages.

  2. 02Bound the task

    Give each writer a small brief and its cached evidence.

  3. 03Validate answers

    Check input hashes and account for every candidate.

  4. 04Publish & audit

    Check source quotes, publish accepted records and audit the result.

Separate source collection from AI writing

The PHP pipeline prepares cached source evidence and bounded writer tasks, normally 25 candidates per brief. Native AI writers work from those briefs; the publisher owns validation and publication.

Reject stale output before it can be assembled

Every answer carries the SHA-256 fingerprint of its draft. A missing or mismatched hash holds the answer. Snapshot checks also detect changed drafts and briefs, so output from an earlier assignment cannot silently pass as current work.

Make completion explicit

Every assigned candidate needs an answer or an explicit skip with a reason. Completion checks catch missing decisions and unfinished repairs. Retry files contain only unfinished assignments, while the original task mappings remain available for investigation.

Coordinate publishing across processes

A shared request budget paces concurrent curation processes. Rate-limit responses use bounded retries with increasing waits. Publishing locks, retained logs and non-zero failure exits make interruptions visible instead of treating a partial run as success.

Protect the source-fetching boundary

A Go fetch service handles concurrent HTTPS retrieval with timeouts, response-size and redirect limits. Address checks on each connection reject private and reserved destinations, including redirects that would reach an internal network.

Measure the work that actually ran

Usage imports deduplicate native session records and retain separate repair and retry sessions. Resource checks govern new writer launches. Publication checks and source audits provide evidence of accepted output; generated text alone is not counted as a delivered listing.

The result: a controlled workflow for collecting evidence, coordinating AI-assisted work, reviewing incomplete tasks and publishing traceable business records. These are the same engineering concerns I bring to imports, supplier integrations and other automated business processes.

Read the BizLookupPro case study

Skills grounded in delivered work

A broad stack, applied to specific problems.

PHP is my core application language. I use complementary tools where they fit the job, from Python reporting to a concurrent Go fetch service.

WorkTechnologies & engineeringProject evidence
Business applicationsProcedural PHP, PDO, MySQL/MariaDB, transactions, role-based access and customer portalsSIMcloud, Pets in Peace
APIs & authenticationREST, SOAP, OAuth, MCP, webhooks, supplier status queries and account-scoped permissionsSIMcloud, AllNet
AI & data workflowsBounded agent tasks, cached evidence, input fingerprints, validation, selective retries and publication auditsBizLookupPro harness
Payments & reconciliationVerified funding, durable order state, immutable financial history and recovery of uncertain outcomesPets in Peace, SIMcloud
Interfaces & publishingAdminLTE, Bootstrap, Tailwind, JavaScript, responsive layouts, content editors and commerce interfacesFuture Cities Africa, Watchful
Interactive web appsSvelteKit, TypeScript, progressive web apps, service workers, API-backed state and simulated account ledgersTrolley vir Jou
Maps & routingMapLibre, Leaflet, Valhalla, self-hosted vector tiles, route geometry, scoring and GPX exportRunner Route Studio, Trolley vir Jou
Automation & operationsPython, SQLite, PHP CLI, cron jobs, queues, import history, logs and repeatable reportingMonthly Reporting Automation, Finance Operations Console
Source fetching & hostingGo, concurrent HTTPS, bounded network access, Docker and cPanel deployment workflowsBizLookupPro harness, Geldenhuys Physiotherapy
Search & service websitesSemantic HTML, canonical URLs, structured data, sitemaps, service content and enquiry measurementGeldenhuys Physiotherapy, Cape River Stone

Selected case studies

Real business processes. Working software.

From South African service businesses to publishing and international directory platforms: examples of the websites, integrations and business systems I build.

01 / Prepaid services & integrations

SIMcloud

Connecting prepaid services to business operations.

Ongoing platform development and integration work across the customer portal, APIs and back office.

PHP · MySQL · REST APIs · OAuth · MCP · Background jobs

Visit SIMcloud

The business problem

Businesses need to buy and distribute airtime, data, SMS and prepaid electricity through repeatable workflows. Supplier processing can be delayed, so accepting an order and confirming delivery need to be handled as separate steps.

My work

I develop customer and admin tools, API integrations, bulk and recurring order workflows, and the background processing that follows orders through to their outcome. The work includes wallet and transaction reporting, plus OAuth-based MCP access for supported AI tools.

A key implementation decision

For uncertain electricity orders, recovery queries the original reference before any further action. A delayed response needs reconciliation; repeating the purchase can create a second charge.

Engineering challenges

  • Keep queued, submitted and confirmed supplier outcomes distinct across customer screens, workers and reports.
  • Carry the original order identity through recovery so a transport failure does not become an automatic second purchase.
  • Separate account-scoped reporting access from transaction permissions in OAuth and MCP integrations.

What this enables

Customers can use a portal or integrate their own systems, while operations staff have order history and diagnostics to investigate delivery. Separate reporting and transaction access lets connected applications use the appropriate permissions.

02 / Voucher distribution & redemption

AllNet

Following an airtime voucher from order to redemption.

Development and maintenance of a procedural PHP voucher platform and its business API.

PHP · MySQL · REST APIs · AdminLTE · USSD

Visit AllNetAirtime

The business problem

A business distributing airtime rewards needs to order voucher PINs, give them to recipients, and track redemption. These are distinct events: creating an order does not mean a recipient has received airtime.

My work

My work covers voucher ordering and distribution, customer and admin workflows, and the API used by business integrations. The API supports balance checks, ordering, order retrieval and voucher-status queries, with documentation explaining the boundaries of each operation.

A key implementation decision

Keep ordering, distribution and redemption status distinct throughout the workflow. A submitted redemption still needs its supplier outcome checked, and an uncertain response must be investigated before it is repeated.

What this enables

Businesses can distribute a universal airtime PIN without choosing the recipient’s network at purchase. Recipients redeem through supported online or USSD routes, and account-owned order and voucher records support tracking and follow-up.

03 / Commerce & service operations

Pets in Peace

Connecting voucher sales, pet registration and aftercare assistance.

Application development spanning the public storefront, customer accounts and staff administration.

PHP · MariaDB · AdminLTE · Payments · Email & SMS queues

Visit Pets in Peace

The business problem

A voucher sale is only the start of the service. Customers need to register pets and activate benefits; staff need to review claims and manage aftercare. Payments, customer records and service history need to remain connected.

My work

I developed purchase and voucher workflows, pet registration and activation, customer accounts, and role-based staff tools. Supporting work includes payment verification, wallet and order records, certificates, queued notifications, and wholesale and corporate workflows.

A key implementation decision

Verified payment issues the voucher; pet registration and explicit activation establish the benefit. Keeping these steps separate makes the customer journey clear and gives staff a record of the applicable dates and terms.

Engineering challenges

  • Reconcile verified funding against the original order amount before issuing voucher units.
  • Use transactions, row locks and replay checks around financial and redemption writes.
  • Keep payment, activation, claims and aftercare history connected while enforcing customer and staff permissions.

What this enables

Customers can purchase, register and manage their benefits online. Authorised staff can review claims and follow the aftercare process, with scoped access and retained financial and audit history supporting the work.

04 / Publishing & content operations

Future Cities Africa

A publishing platform with the tools to run it.

Designed and built from scratch, covering the public website and the administration behind its content.

PHP · MySQL · Bootstrap · AdminLTE · Content management

Visit Future Cities Africa

The business problem

A publisher working across podcasts, webinars and industry discussions needs to organise different kinds of content and keep them connected. The team also needs a practical way to publish and maintain that material.

My work

I built the PHP/MySQL platform, including podcast episodes and clips, webinar listings, industry leader profiles, series, municipal briefs, and subscriber and enquiry flows. The admin area gives the team dedicated screens to manage those content types.

A key implementation decision

Give each content type an appropriate editing workflow. Municipal briefs, for example, have editing and preview tools so the team can review the presentation before publishing.

What this enables

The team can publish and maintain its own content through an admin interface. Visitors can browse episodes, clips, webinars and related profiles through a connected public website.

05 / Local business website

Geldenhuys Physiotherapy

Helping prospective patients understand the practice and take the next step.

Designed and built from scratch for a physiotherapy practice in Century City, Cape Town.

PHP · CSS · Responsive design · Technical SEO · Analytics

Visit Geldenhuys Physiotherapy

The business problem

A practice website needs to explain the services, answer common questions, and make booking or getting in touch straightforward, particularly for someone visiting on a phone.

My work

I built the responsive website with dedicated service pages, practice information, pricing guidance and FAQs. Booking, WhatsApp, telephone and directions links provide clear next steps. Technical SEO work includes page metadata, canonical URLs, structured data and a sitemap.

A key implementation decision

Keep the site simple to operate with shared PHP content and layouts. Track enquiry actions such as booking and WhatsApp clicks separately from page views, so reporting can distinguish the actions visitors take.

What this enables

Prospective patients can find relevant service information and reach the practice’s booking or contact channels. The site also provides a basis for measuring enquiry intent, with booking completion handled by the external booking service.

06 / Directory platform & data workflows

BizLookupPro

Connecting business discovery with the tools behind a listing.

Designed and built from scratch, spanning the public directory, private owner workspaces and publishing integrations.

PHP · MariaDB · Tailwind · REST APIs · OAuth · MCP

Visit BizLookupPro

The business problem

A useful business directory needs consistent records, a way to check where information came from, and a process for owners to manage their details. Supporting different countries also introduces differences in addresses, phone numbers and locations.

My work

I built the directory and its administration, owner workspaces with CRM and enquiry tools, and REST/OAuth/MCP publishing routes. Supporting data workflows collect and review listing evidence, retain source information, and organise businesses by service and place.

A key implementation decision

Preserve the source and review history behind published details. Keep public business profiles separate from private owner records, with explicit permissions for team and agency access.

The curation engineering

The surrounding harness coordinates source collection, bounded AI writer tasks, stale-output detection, completion accounting and controlled publication. A Go service handles concurrent source retrieval; PHP owns the curation workflow and validation. Explore the harness and its recovery controls.

What this enables

Visitors can discover businesses and inspect listing sources. Owners have tools to manage their presence and enquiries, while publishing integrations support structured updates across an international directory.

07 / Service website & commerce

Watchful

Bringing service enquiries and equipment sales together.

Website and application development across the public site, shop, customer accounts and administration.

PHP · MySQL · Product catalogue · Customer accounts · Order administration

Visit Watchful

The business problem

A business offering services and selling equipment needs to accommodate two customer journeys: understanding a service and making an enquiry, or finding a product and placing an order.

My work

I developed the public service pages and PHP/MySQL storefront, with product details, a cart, checkout and customer accounts. Administration tools support product, order and customer management.

A key implementation decision

Give service enquiries and product purchases their own routes through the site. Keep customer order history connected to the account, and provide staff with the corresponding order-management screens.

What this enables

Visitors can explore services or browse equipment from one website. Customers can access their orders, and staff have tools to maintain the catalogue and manage the work that follows an order.

08 / Professional services website

iCatch

Making a specialist service business understandable and easy to contact.

Built the public website from scratch for a Cape Town private investigation agency.

Website development · Service content · Enquiry routes

Visit iCatch

The business problem

People considering a specialist service need to understand what the business offers and how to make contact. The website needs to explain the services clearly enough to support that first conversation.

My work

I built the website around the agency’s services, including private investigation, surveillance, tracking and background checks. The site combines service information with telephone, email and enquiry-form contact routes.

A key implementation decision

Place contact options alongside service explanations so visitors can get in touch while reading about the work relevant to them.

What this enables

Prospective clients can explore the service offering and contact the agency directly through the website.

09 / Interactive product & progressive web app

Trolley vir Jou

A shopping simulation with a complete application behind it.

Product development across the web app, PHP API, account flows, simulated wallet and administration.

SvelteKit · TypeScript · PHP · MySQL · PWA · Leaflet

Visit Trolley vir Jou

The product idea

Give people the experience of browsing, filling a trolley and waiting for a delivery, followed by a reveal of what they did not spend. The purchases, wallet funds and deliveries are simulated; no real payment or delivery takes place.

My work

I developed the SvelteKit progressive web app and procedural PHP/MySQL API, covering account verification, the catalogue, persistent trolley state, a simulated wallet, map-based delivery animation and the server-timed reveal. The application also includes referrals, product administration and funnel reporting.

Engineering challenges

  • Keep the interface, API and stored trolley state consistent across navigation and returning sessions.
  • Record simulated wallet amounts in integer cents, with ledger entries and duplicate protection for rewards.
  • Combine an installable app shell and cached assets with authenticated, server-owned account and checkout state.

What this enables

A playful product with working account, catalogue, mapping and admin workflows. It demonstrates how a modern interactive frontend can run alongside a PHP backend without a Node runtime on the production host.

10 / Mapping & route generation

Runner Route Studio

Turning a start point and target distance into running-route options.

Built the map-based web app and PHP API, with separate routing, database and map-tile services.

SvelteKit · PHP · MariaDB · MapLibre · Valhalla · Docker

Visit Runner Route Studio

The product problem

Drawing a line on a map is not enough to create a useful running loop. The application needs to find routes near a requested distance, check that they return close to the start, compare repeated paths, and explain when the routing engine cannot produce an acceptable result.

My work

I built the SvelteKit map interface and procedural PHP API for accounts, geocoding, route generation, saved routes and exports. MapLibre renders the map, TileServer GL serves vector tiles, and Valhalla supplies route geometry and maneuver instructions. MariaDB stores account and route records.

Engineering challenges

  • Evaluate candidate routes against distance and loop-closure checks, then rank options using distance and repeated-path penalties.
  • Distinguish map coverage from available routing data and return a clear failure when no acceptable loop is found.
  • Count successful route generations against quota while leaving failed attempts and GPX exports outside that count.

What this enables

Users can compare route options, save routes with notes, review running instructions and export GPX or a written guide. The application brings geometry, third-party routing software, account permissions and infrastructure together in one product.

11 / Product catalogue & local business website

Cape River Stone

Helping customers find the right landscaping materials and make an enquiry.

Website development for a supplier serving landscapers, nurseries and residential customers in the Western Cape.

PHP · Bootstrap · Product galleries · Service content · Enquiry forms

Visit Cape River Stone

The business problem

Customers choosing stone, pebbles, gravel and paving need to see the products, understand their uses, and discuss quantities and delivery. A catalogue needs to support those decisions before an enquiry reaches the business.

My work

I developed the website with product ranges, photographs, landscaping examples and dedicated product and paving pages. How-to content explains possible applications, while telephone, email and contact-form routes connect interested customers with the supplier.

A key implementation decision

Use product images and practical descriptions to support a quote-led sales process. The site gives customers information to start the conversation, with order quantities and delivery requirements discussed directly with the business.

What this enables

A useful public catalogue for both trade and residential enquiries, showing that a focused business website can connect product discovery, practical advice and direct contact.

Internal tools & automation

Focused tools for recurring business work.

Reporting and finance applications, with project names generalised.

Monthly Reporting Automation

I built a Python and SQLite tool that turns a pair of monthly source files into a billing report. A local browser dashboard shows the input files, report preview, run history and email status.

The tool records file fingerprints, recognises previously imported file pairs, and reuses the existing import when recovering a partial run. After success, it archives both source files together.

Python · SQLite · File imports · Reporting · Browser dashboard

A repeatable monthly process

Load the source files, run the report, review it, and send it when needed. Retained run history makes previous reports accessible without rebuilding them from scratch.

Finance Operations Console

I built a PHP admin interface over an existing account and finance API. It brings customer search, account details, balances and transaction history into screens that staff can use for operational work.

The console includes filtered transaction review and controlled forms for account-funding workflows. Authentication, session refresh, CSRF checks and explicit API-error feedback support the actions behind those screens.

PHP · AdminLTE · API integration · Authentication · Financial reporting

An interface for the daily workflow

Staff can look up an account, inspect its transaction history and work through the relevant finance actions from one admin interface.

The person behind the projects

Find me on X.

Interested in PHP, API integrations, AI workflows and practical problem solving? Follow me on X and join the conversation. For a project brief, email is the best place to start.

Follow on X@erikthiart

How we work together

Understand the problem. Agree the scope. Deliver.

  1. Start with the business

    We discuss what needs to happen, who uses the system, and what is getting in the way. For an existing application, I review the relevant code and integrations.

  2. Make the work clear

    We agree the scope, priorities, budget and milestones before implementation. Dependencies and tradeoffs are made explicit.

  3. Build, verify and hand over

    I make focused changes, check the affected workflows, and explain what was delivered. Ongoing support can be arranged as a retainer or contract.

Working with a freelance developer

Questions about hiring me.

Location, project fit, existing systems and how an engagement starts.

Where are you based, and do you work across South Africa?

I am a freelance PHP developer and technical consultant based in Cape Town, South Africa. I work remotely with businesses across South Africa, including teams in Johannesburg, Pretoria and Durban.

What kind of software development can I hire you for?

I build custom PHP applications, MySQL-backed business systems, admin dashboards, customer portals, API integrations and automation. My work also includes publishing platforms, progressive web apps, mapping and routing interfaces, commerce workflows, reporting tools and AI-assisted data pipelines.

Can you take over an existing PHP or MySQL application?

Yes. I can review the relevant code, investigate failures, add features and maintain an existing system. The first step is to understand the application, its hosting, its data and the integrations it depends on, then agree a focused scope of work.

Do you build complete systems from scratch?

Yes. Examples on this page include Future Cities Africa, Geldenhuys Physiotherapy, BizLookupPro and iCatch. They range from service-business websites to publishing platforms and a directory with private owner tools and publishing integrations.

Can you build AI automation beyond a chatbot?

Yes. The BizLookupPro curation harness combines source collection, bounded AI writing tasks, input fingerprints, completion checks, controlled publication and audits. I design the surrounding software that validates, records and recovers the workflow, as well as the model interaction.

Do you work with international clients and existing development teams?

Yes. I work remotely from South Africa with international clients and can work alongside an existing team. My timezone is South African Standard Time, UTC+2. We agree communication times, responsibilities and milestones around the engagement.

Can I hire you for a project, a retainer or contract support?

Yes. I work on defined freelance projects, ongoing retainers and contract support. The right arrangement depends on whether you need a specific delivery, regular maintenance or continuing development capacity.

What do you need to scope a project?

Send a short description of the business problem, the current system if there is one, and your intended outcome. Include any deadline, budget range and third-party services involved. We can then agree what needs investigation, what will be delivered and how it will be verified.

Let’s talk about the work

What does your business need to get done?

Send me a short description of the problem, your current system, and any deadline or budget range. We can work out the right next step from there.

South African businesses, agencies and international teams are welcome. I work remotely from Cape Town and agree communication times around the project.