o
I'm Josh Ade, lead developer of Built For Small Business, a production Laravel SaaS serving UK SMEs. I build and maintain full-stack applications, from architecture and databases to payments, APIs, background jobs and deployment.
22+ invoices created · Stable uptime (Better Stack)
Xero costs £15/month minimum. Small businesses were either overpaying or running on spreadsheets.
BFSB is permanently free at its core, compliance built in, not bolted on.
I own all technical decisions — architecture, database design, third-party integrations, deployment, and ongoing feature development.
This is not a freelance project or a tutorial app. It's a live, paying product I am responsible for end to end.
Real decisions from a production codebase — not textbook examples.
TaxYearService with scopeForTaxYear Fiscal-year-aware reporting scoped across invoices and expenses, handled cleanly within a single UK-focused codebase
Corrected API version compatibility for refunds. Implemented live Stripe status checks in
canCancelPlan() rather than trusting local DB state. Payment intents tracked
separately from subscriptions.
CSV/XLSX expense imports validate mime type and magic bytes before queued processing. Prevents spoofed file uploads. Jobs handle large imports without blocking the request cycle.
Browsershot/Puppeteer PDFs embed fonts as base64 at render time. Eliminates inconsistent output across environments where font paths resolve differently in headless Chrome.
Cache::remember across expensive dashboard aggregates. Kept the dashboard fast
without introducing a dedicated data layer or denormalised tables.
Plan tier gating via a discovery modal pattern — free users see Pro features in the UI but hit a comparison paywall on use. Keeps the free tier genuinely useful while driving upgrade intent.
A lightweight Laravel package for monitoring 404 errors, identifying broken URLs and tracking Googlebot activity.
A lightweight 404 monitoring dashboard for Laravel. Track missing pages, identify broken internal links, and see which URLs Googlebot is hitting all without touching a log file.
The Googlebot tracking was the specific trigger: standard Laravel logs give you no visibility into patterns of 404 errors. A single broken internal link generating 200 hits looks identical to 200 one-off bot probes until you see the data in a dashboard.
Tools I use in production, not just tutorials.