Back to home jacob@stephens.page
Portfolio

Real systems, real results.

Booking engines, contractor tools, payment flows, subscription infrastructure, and client sites built to last beyond launch day.

Professional Work

Production systems with operational and revenue impact.

Tourbot

The core operations platform at Educational Travel Adventures — a full-lifecycle group travel ERP handling sales pipeline and lead qualification, itinerary building, reservations, vendor management, passenger logistics, payment processing, communications, and 70+ reports across finance, sales, marketing, and operations.

Problem A 40-person travel company needed a single system to run the entire business — from lead inquiry through post-trip reporting — covering sales, finance, operations, vendor coordination, and customer-facing portals without things falling through the cracks.
What I Built A sales pipeline with lead qualification and agency management. An itinerary and quote builder with vendor pricing. Full reservation lifecycle management with passenger manifests, rooming lists, and multi-stage payment schedules. A vendor portal for self-service. A communications center with email, SMS, and document generation. Credit card processing, accounts receivable/payable, and QuickBooks integration. Customer and group leader portals. Employee tools including timeclock and expense management. Insurance and waiver workflows. 70+ reports and integrations with Google Workspace, Slack, and Twilio.
Result An operational backbone that runs every part of the business daily — sales, booking, finance, logistics, and communications — still in production after years of continuous development.
PHP MySQL JavaScript jQuery Monetra Twilio QuickBooks Operations

ETA Guides Portal

A mobile-first PWA for tour guide contractors at Educational Travel Adventures — itinerary and medical info access, document workflows, daily and summary reporting with live auto-save, expense tracking with receipt uploads, SMS messaging to travelers, calendar scheduling, and manager-side administration.

Problem Independent contractor tour guides — with no access to the main system — needed a reliable mobile interface to view trip details, access passenger medical and dietary information, file reports and expenses, and communicate with travelers while in the field.
What I Built A full PWA with offline support and service worker caching. Tentative and final itinerary views, passenger manifests, medical conditions, allergies, and dietary reports. Daily reports and post-tour summary questionnaires with live auto-save. An expense system with categorization, receipt attachments, and driver gratuity forms. Twilio-powered SMS messaging to travelers and billing contacts. A calendar with unavailability scheduling. Tour confirmation and ride-along workflows. Manager admin tools for document management and report reassignment.
Result Guides in the field can view trip details, check passenger medical needs, text travelers, file reports as they go, and submit expenses with receipts — all from their phone, online or offline. Managers can administer documents and review reports without developer involvement.
PHP MySQL Bootstrap Twilio Service Workers PWA

Tourbot Chat

An AI-powered chat system built with OpenClaw and Claude, giving managers at Educational Travel Adventures natural-language access to business intelligence and the ability to safely modify the platform themselves.

Problem Managers needed to answer complex business questions — revenue breakdowns, booking trends, vendor performance — without waiting on developer time. They also wanted to experiment with reports and workflows on their own terms, without risking the production system.
What I Built A multi-tenant infrastructure where each manager gets an isolated Tourbot instance (Docker container) with their own Claude-powered OpenClaw agent. Agents can query a nightly-synced replica of the production database, run analysis, and even modify PHP code — all sandboxed per-manager with allowlist-controlled command execution, dedicated database users, and a git-based review gate before any changes reach production.
Result Non-technical managers can independently explore business data, generate custom reports, and prototype workflow changes through conversation — while the system enforces isolation, read-only data access, and code review boundaries that keep production safe.
OpenClaw Claude Docker PHP MySQL Traefik AI Agents

Client Work

Focused builds for payments, publishing, and straightforward business visibility.

Chester County Life

A subscription payment system with Stripe integration for recurring revenue and secure transaction handling.

Problem The site needed reliable recurring billing, not just a brochure.
What I Built PCI-conscious subscription flows and payment infrastructure tied into Stripe.
Result A site that collects and manages recurring revenue, not just describes the offering.
PHP Stripe Subscriptions

Wadadli Flare Catering

A marketing site for a catering business — clear presentation, service visibility, and lead generation.

Problem The business needed a web presence that communicated the offering quickly and drove customer inquiries.
What I Built A polished service site with clear structure, strong visual presentation, and direct paths for interested customers.
Result A credible online front door and a better platform for discovery and inquiries.
Frontend Brand Presence Lead Generation

Personal Projects

A curated set of personal builds. The broader archive lives at blog.stephens.page/projects/.

Creighton Cycle Tracker

A fertility tracking PWA built around the Creighton Model — offline support, auto-computed charting, syncing, and provider sharing.

Why it matters Product thinking around a sensitive, real-world workflow where accuracy, offline access, and long-term usability are non-negotiable.
What stands out Local-first architecture, server sync, and domain-specific interface logic — not generic CRUD.
TypeScript Vite Express SQLite PWA

Macros Tracker

A self-hosted nutrition tracker built as a MyFitnessPal replacement — barcode scanning, recipe management, API-backed food search, charts, and offline support.

Why it matters Replaced a mainstream SaaS workflow with a personal tool shaped by actual daily use.
What stands out Multi-source food data integration, practical daily-use UX, exports, and a product scope driven by firsthand usage.
TypeScript Express SQLite Chart.js PWA

Magisterium MCP Server

An MCP server that gives AI assistants access to the Magisterium API, returning Church teaching with source citations.

Why it matters Bridges a meaningful content domain with emerging AI tooling in a practical, technically current way.
What stands out MCP integration, source-aware responses, and a clean bridge between authoritative data and assistant workflows.
TypeScript Node.js MCP AI Tooling

Wedding Platform

A full-stack wedding site — invite-based RSVPs, guest management, registry tracking, photo uploads, travel details, and admin tooling.

Why it matters What is usually a brochure site becomes a real application with workflows, data, and event operations behind it.
What stands out Group lookup logic, admin views, cron-backed monitoring, and an operationally complete personal project.
PHP MySQL JavaScript Operations

Artifact Manager

A custom CMS for structured publishing, user administration, and content workflows beyond a typical brochure site.

Why it matters Product thinking around content operations — not just presentation, but the admin and workflow layer behind it.
What stands out Custom CMS architecture, administrative workflows, structured content handling, and a directly transferable business use case.
PHP MySQL JavaScript CMS

Exodus 40 Lite

A PWA for a parish men's group — tracking prayer, fasting, almsgiving, and fraternity through a shared Lenten rule of life.

Why it matters Turns a niche communal practice into a usable digital workflow for a real small-group context.
What stands out Progress tracking, offline support, and a product scope built for sustained participation, not one-time visits.
PHP MySQL JavaScript PWA