shafi.
Website design / WordPress development / Team leadership
02 / Operations case studies

The work behind the outcomes.

How I connect website delivery, team development, and ongoing support.

01Vendasta / Website fulfilmentFrom website designer to leading delivery.2 → 18

The context

As the website function grew, delivery depended on more than individual design skill. The team needed consistent ways to organise work, support one another, and maintain quality across a high volume of projects.

My contribution

I was promoted from Website Designer to Team Lead, then to Website Manager, helping build the team and shape the processes behind website fulfilment. My focus was connecting people, workflow, and quality so delivery could scale.

The result

The team grew from 2 to 18 people and delivered 1,000+ websites annually. The website operation I helped lead generated approximately CAD $4M in revenue across two years, connecting stronger delivery capacity with business growth.

02Vendasta / Delivery operationsMaking website delivery more efficient.14 → 4 days

The context

Website delivery involves a stream of builds, updates, and support requests. Improving turnaround meant looking at how work moved through the team, as well as the quality of the final website.

My contribution

I worked on delivery workflows and the way web support requests were categorised. Defining request types and processing expectations helped the team approach live-project requests more consistently.

The result

Website turnaround dropped from 14 days to 4 days, a 71.4% reduction and 10 days faster per project. Leadership feedback also recognised the lasting value of the processes I helped establish for website delivery and support.

Written from my published role history, outcomes, and client feedback.

~$4MCAD revenue across two years

Approximate revenue generated by the website operation I helped lead at Vendasta. Team capacity, consistent delivery, and quality all contributed to that scale.

10 daysFaster website turnaround

Turnaround dropped from 14 days to 4: a verified 71.4% reduction, alongside growing the website team from 2 to 18.

1,000+Websites delivered a year

Delivered under my leadership, with consistent quality checks and launch readiness across the team.

03 / Project case studies

Real businesses. Hands-on website work.

A closer look at selected projects across local services, home elevators, and healthcare. Design, delivery, and the support that comes after launch.

01All The Fixings / Ongoing website supportStaying involved after launch.Build → support

The context

A local handyman business needed a website and a dependable partner to support it as the business developed. The work extended beyond the initial design and launch.

My contribution

I handled the website from design through WordPress launch, followed by ongoing support and SEO services. I continued that relationship remotely after moving to Ontario.

The result

The client's recommendation highlights responsive support, practical problem-solving, and a website that became a useful marketing tool. The value was a continuing relationship and dependable website ownership.

02Nibav Home Lifts / Home elevatorsMaking a specialist product easier to explore.Website design

The project

A website design project for a home elevator brand, included in my selected portfolio.

My focus

Website design and the presentation of a specialist product offering.

Design priorities

Clear product information, a readable page hierarchy, and a consistent brand experience across screen sizes.

03Smile Dental Group / HealthcareA clear digital front door for dental care.Website design

The project

A website project for a dental care provider, bringing healthcare information into a visitor-friendly web experience.

My focus

Website design with an emphasis on presenting services clearly.

Design priorities

Approachable layouts, readable service information, and a clear route through the practice's website.

04Cochrane Plaza Dental / HealthcareHelping patients find their way.Website design

The project

A website project for a community dental practice, featured in my original portfolio.

My focus

Designing a web presence around the practice and its services.

Design priorities

Simple navigation, responsive layouts, and practice information that is easy to scan.

04 / Builds & automation

I manage the delivery. I build it too.

Seven working demos with fictional brands: WordPress plugins, a child theme and AI automations. Each opens with a live demo, the full source, the problem it solves and what the same job costs with an off-the-shelf tool.

Fictional brands, modelled on problems I have handled on client websites; client names stay confidential. “Saved” figures are estimates from public USD list prices, November 2026.

05 / Web & product design

Designed screen by screen. Reasoned line by line.

A redesign case study for a big public website, a client business portal, a mobile app and an online store. Each one opens with the thinking behind it and the full set of screens.

The toronto.ca concept is unsolicited and not affiliated with the City of Toronto. Tandem and Rove Supply Co. are fictional brands with sample data. The portal is a working demo I designed for a client, shown with sample data.

06 / My tech stack

The tools behind the work.

For building websites, understanding performance, organising delivery, and keeping support moving. Items outlined in red were added through the builds above.

Platforms

Building
WordPressShopifyBigCommerceEcwidWixWebflow

Builders & front end

Building
DiviElementorWPBakeryHTML5CSS3JavaScriptPHPSCSSWordPress REST APIWP-CLI

Delivery & support

Leading
JiraZendeskSlackNotionBasecamp

Analytics & SEO

Both
Google AnalyticsSearch ConsoleSemrushSchema.org / JSON-LD

Automation & AI

Building
ZapierClaude APICodexNetlify Functions
07 / My approach

A clear plan. A reliable operation.

I connect daily website requests to the bigger picture: what matters, who owns it, and what needs to happen next. Each step has a leadership side and a hands-on side.

01

Bring order to the work.

Clarify requests, establish priorities, and turn business needs into work a web team can act on. Keep scope, ownership, and expectations visible.

Leading

Request types, priorities and owners agreed before work starts.

Building

Intake forms that capture the right details, and triage that runs the DNS and SSL checks first.

INTAKE · PRIORITISATION · OWNERSHIP
02

Protect quality through delivery.

Stay close to the build: content, responsive layouts, functionality, and launch readiness. Help the team resolve issues and deliver consistently.

Leading

Shared QA checklists and launch-readiness reviews for the whole team.

Building

Child themes and hooks instead of edited core files, plus accessibility and structured data checks before launch.

DELIVERY · QA · LAUNCH READINESS
03

Keep the website moving forward.

Manage updates, troubleshoot problems, and improve the process behind repeat requests. A successful launch is the start of ongoing website ownership.

Leading

Support queues sorted by impact, with clear notes and follow-through.

Building

Automations for the repeat work: alt text, lead routing and ticket triage.

MAINTENANCE · SUPPORT · CONTINUOUS IMPROVEMENT
08 / In their words

Good work. Lasting relationships.

Recommendations from two directors, an HR manager, a content lead, a client and an operations manager. Their key words are highlighted.

6
recommendations
3
organisations
2
directors at Vendasta
1
client CEO I still support
Without hesitation, I would recommend Shafi to lead any web team.
Mark BarreraDirector, Managed Services · VendastaSenior leader
RecommendInspiredProactivePatientIn-depth knowledgeResponsiveCommittedSeamlessCommendable
What stood out most was Shafi’s proactive approach: he anticipated issues and implemented smart solutions ahead of time. He collaborated seamlessly across teams, translating requirements into clear, user-friendly web experiences.
Tibin ThomasDirector · Vendasta
Problem solvingTeamwork
His positive attitude not only made the work environment enjoyable but also inspired his colleagues to give their best.
Leela PrincyHR Manager · Vendasta
LeadershipTeamwork
He’s patient in helping others and has in-depth knowledge of performance and revenue metrics.
Anandhi MoorthyContent Manager · Vendasta
ExpertiseTeamwork
Despite the distance, his responsiveness and commitment have remained unwavering.
Troy Theodore WruckCEO · All The Fixings
Client careReliability
His ability to balance academics and work was commendable.
Arun PROperations Manager · Pluto Education
Reliability

Read the full recommendations on LinkedIn ↗

09 / A little about me

Hands-on experience. Operational perspective.

I understand the build. I organise the delivery. I help the team succeed.

I'm Shafi, a website manager, designer, editor, and WordPress developer based in Toronto. My background spans WordPress development and editing, SEO, fulfilment, team leadership, and technical support. I'm comfortable discussing the details with a developer and the priorities with a stakeholder.

I've helped scale a web team from 2 to 18 people and managed the delivery of more than 1,000 websites a year. I bring that operational perspective to everyday work: clearer requests, thoughtful QA, reliable support, better handoffs, and automations for the work that repeats.

My full story on LinkedIn ↗

Shafi.

What I bring to the room
Website operations & quality

Coordinating responsive website builds, content updates, quality checks, and launch readiness, backed by hands-on WordPress experience.

Website support & maintenance

WordPress updates, plugin conflicts, caching, responsive issues, and hosting, DNS, or SSL triage, with clear notes and follow-through.

Team & project leadership

Work allocation, delivery processes, team guidance, and quality assurance that help people produce consistent work at scale.

WordPress development & automation

Custom plugins and child themes using hooks and filters, REST API work, SCSS and JavaScript front ends, and AI automations, built with AI coding tools and tested before launch.

Website design, editing & SEO

Content and design updates, on-page and technical SEO, structured data, analytics, and performance coordination that keep the website aligned with business priorities.

2025 – Present / VendastaWeb Support SpecialistWordPress support, content updates, troubleshooting, and clear documentation for ongoing website requests.
IndependentWebsite Designer & DeveloperFrom early ideas to launch and ongoing support, plus SEO.
2020 – 2023 / VendastaWebsite Designer → Team Lead → Website ManagerPromoted from designer to team lead and website manager. Helped grow a 2-person team to 18, deliver 1,000+ websites annually, and support approximately CAD $4M in website revenue across two years.
2019 – 2020 / Nibav IT SolutionsWordPress DeveloperBuilding and maintaining WordPress websites, turning wireframes into responsive web experiences.
2018 – 2019 / TechgrapherOperations ManagerConnecting operations, marketing, and customer support.
Certified in

Atlassian Agile Project Management

Digital Marketing · SEO Foundations

10 / Your next chapter

A website to manage? A team to move forward? Something to build?

Let's talk about website operations, a delivery challenge, a WordPress build, or a role where hands-on web experience and team leadership can make a difference.

STRAIGHT TO SHAFI shafi97.ca@gmail.com
LinkedIn ↗
+1 226 977 9874

ON THE DESK / FOCUS MODE A little rhythm. A lot of focus.

What I listen to while I design, build, troubleshoot, and keep website work moving.

Open in Spotify ↗
What brings you here?
0 / 4,000 · at least 20 characters

MY CORNER OF THE WORLDToronto
01 of 07 · Northline Service Requests
northlinefield.ca/request-service
24/7 line · 1-800-555-0142

Request service

Tell us what needs attention. Urgent requests are routed to the on-call supervisor.

wp-admin › Service Requests

TitlePriorityEmailDate
Plant 2, Hamilton: R. OseiHighr.osei@example.comSample
North Yard: M. TremblayLowm.tremblay@example.comSample

Send one, or submit it empty to see validation. In WordPress the form posts to admin-post.php and saves an nl_request post; here the row stays in your browser.

Problem

Requests came in by phone and a generic email. Site names and urgency were often missing, urgent jobs sat behind routine ones, and nobody could see a full list of what had been asked for.

Solution

A form that asks for the right details every time, saves each request as a private post, lists them in wp-admin by priority, and emails the team. A filter adds fields and an action hands requests to a CRM.

Why it's needed

Field teams can't act on "something is broken, call me." Required fields and a priority choice mean the dispatcher knows where and how fast before calling back, and the record stays with the business, not one person's inbox.

Is there something on the market?

  • Gravity Forms Basic$59 / yr1 site
  • Gravity Forms Pro$159 / yr3 sites
  • Gravity Forms Elite$259 / yrUnlimited sites
$477Saved in licence fees (estimate)Gravity Forms Pro for 3 company sites over 3 years

When to buy instead: if staff need to build lots of different forms themselves, a form builder is worth paying for. This plugin suits one or two forms that rarely change.

USD list prices, Nov 2026: Capterra, Gravity Forms pricing

02 of 07 · Ridgeway Work Orders
ridgewaymaintenance.ca/planner/this-week
Ridgeway Planner Week 46 · sample data

Drag a card to another day, or use its "Move to" menu. The hours bar turns amber, then red, as a day passes 16 crew hours. Inside WordPress the same script reads and saves through /wp-json/ridgeway/v1/work-orders.

Problem

The week was planned on a whiteboard. Overbooked days only showed up mid-week, emergencies waited in a pile nobody was watching, and the plan wasn't visible to anyone off site.

Solution

Work orders live in WordPress. The board shows each day's booked hours against crew capacity, counts emergencies still in the backlog, and saves each move through the REST API.

Why it's needed

Overloading a day means jobs slip and overtime climbs. Seeing the load before Monday lets a planner move routine work and keep space for breakdowns.

Is there something on the market?

  • MaintainX Essential$25 / user / moFull CMMS with mobile app
  • MaintainX Premium$75 / user / moHigher tier
$1,500Saved per year (estimate)5 planners on MaintainX Essential × $25 × 12 months

When to buy instead: a full CMMS also handles technicians' mobile work, preventive schedules and parts. This board only covers weekly planning for a team that already keeps work orders on its site. For a whole maintenance department, buy the CMMS.

USD list prices, Nov 2026: Toolradar, MaintainX pricing

03 of 07 · Schema Kit
wp-admin/options-general.php?page=schema-kit
Schema Kit

Search preview

Checks

    JSON-LD output

    Edit any field and the graph, checks and preview update as you type. Try a phone number without +1 or a title over 60 characters. The business shown is example data.

    Problem

    Many small business sites have no structured data at all, or two plugins printing different versions of it. Search engines then can't read the business name, address, phone and hours reliably.

    Solution

    One plugin owns the graph. Staff fill a settings screen, the plugin prints a single JSON-LD block, and checks flag weak titles, descriptions and badly formatted phone numbers or postal codes.

    Why it's needed

    Correct business details help search engines match the site to local searches. A single source also stops the duplicate or conflicting markup that creeps in when themes and plugins each add their own.

    Is there something on the market?

    • Schema Pro, annual$79 / yr$69 first year, renews at full price
    • Schema Pro, lifetime$249 once$229 on offer
    $237Saved in licence fees (estimate)Schema Pro annual plan at full price over 3 years

    When to buy instead: paid schema plugins cover dozens of types (recipes, events, courses) with field mapping. If a site needs many types, buy. For one local business graph, this is smaller and easier to audit.

    USD list prices, Nov 2026: Schema Pro pricing page

    04 of 07 · Harbour & Pine
    Preview at
    harbourandpine.ca/menu
    Port Stanley · Lake Erie

    Lake fish, wood fire and a long table.

    Seasonal plates from Ontario farms and the morning catch. Open Wednesday to Sunday from 5 pm.

    Hours
    Wed to Sun, 5 pm to 10 pm
    Address
    12 Main St, Port Stanley
    Reservations
    519-555-0110

    Tonight's menu

    • Smoked whitefish dip

      $16

      Rye crisps, pickled shallot, dill oil

      Local catch
    • Charred leeks

      $14

      Hazelnut romesco, aged gouda

      Vegetarian
    • Lake Erie perch

      $32

      Brown butter, capers, new potatoes

      Local catch
    • Wood-fired half chicken

      $29

      Maple glaze, roasted roots, jus

      House favourite
    • Butter tart, made properly

      $11

      Raisins on request, crème fraîche

      Vegetarian
    • Wild blueberry crumble

      $12

      Oat streusel, vanilla ice cream

      Seasonal

    Before you visit

    Do you take walk-ins?

    Yes, the bar and patio are kept for walk-ins every night.

    Can you handle allergies?

    Tell us when you book and the kitchen will plan around it.

    Is there parking?

    Free lot behind the building, plus street parking on Main.

    Harbour & Pine

    Fictional demo brand

    Visit

    12 Main St, Port Stanley, ON

    Hours

    Wed to Sun, 5 pm to 10 pm

    Switch the width to see the navigation collapse into a menu button and the dishes drop to one column. The layout responds to the frame itself through container queries.

    Problem

    The menu was a block of text edited in a page builder, changes to the parent theme were wiped out on every update, and the site loaded a third-party menu widget plus scripts it never used.

    Solution

    A child theme holds every change. Dishes are their own post type with a course filter, scripts load deferred, unused scripts are removed, and the layout is built in SCSS with container queries.

    Why it's needed

    Most restaurant visitors are on a phone looking for the menu and hours. Menu items saved as real content are faster to load, easier for staff to update and readable by search engines.

    Is there something on the market?

    • Elfsight Restaurant Menu, Basic$5 / moBilled yearly, 5,000 views a month
    • Elfsight Restaurant Menu, Pro$10 / moBilled yearly, 50,000 views a month
    $180Saved in widget fees (estimate)Elfsight Basic plan over 3 years

    The bigger win: no outside widget script on every page, and the menu lives in WordPress where search engines can read it. A widget is fine for a site with no developer to maintain it.

    USD list prices, Nov 2026: Elfsight pricing page

    05 of 07 · Deskmate
    deskmate.internal/queue
    Deskmate Replay of a sample run

    Open tickets

    Pick a ticket and run the agent. The steps replay a scripted sample run so the page needs no API key; the real script in agent.mjs makes these calls live.

    Problem

    Web support queues fill with the same questions: site down after a domain move, "not secure" warnings, email gone after a migration. The first ten minutes of each ticket are spent running the same lookups by hand.

    Solution

    The agent runs those lookups the moment a ticket arrives, matches the result to a runbook entry and drafts a plain-language reply with the evidence attached. A person checks it and sends.

    Why it's needed

    A site-down ticket that waits behind content edits costs the customer sales. Sorting by real impact, with checks already done, gets urgent issues to the right person faster.

    Is there something on the market?

    • Intercom Fin AI Agent$0.99 / resolutionAnswers customers directly in chat and email
    $2,376Saved per year at list price (estimate)200 resolutions a month × $0.99 × 12. Deskmate pays only model usage.

    Not a straight swap: Fin replies to customers on its own; Deskmate is internal and a person sends every reply. Teams that want hands-off customer answers should look at Fin.

    USD list price, Nov 2026: Intercom help centre, Fin pricing

    06 of 07 · AltPilot
    wp-admin/upload.php?altpilot=review

    Media Library · Alt text review

    0 of 4 have alt text

    Run it, then edit or approve each suggestion. Results here are pre-written for the sample images; the plugin gets them from the model and saves to _wp_attachment_image_alt.

    Problem

    Sites collect hundreds of images with empty alt text. Screen reader users hear file names, image search has nothing to read, and writing them all by hand is the job everyone puts off.

    Solution

    Every new upload gets a draft description within seconds, written for the page it sits on. Editors see what was written by AI and approve or fix it. One command clears the old backlog.

    Why it's needed

    Alt text is a basic accessibility requirement under standards like WCAG, which Ontario's AODA points to for many organisations' websites. It also gives search engines words to match images to.

    Is there something on the market?

    • AltText.ai Bronze$5 / mo100 images a month
    • AltText.ai Silver$19 / mo500 images a month
    • AltText.ai Gold$59 / mo2,000 images a month
    $119Saved in the first year (estimate)One Gold month ($59) for a 2,000-image backlog plus 12 months of Bronze ($60)

    Honest view: the saving is modest, and model usage still costs a little. The real value is control: your prompt, your page context and a review step built into WordPress.

    USD list prices, Nov 2026: AltText.ai pricing page

    07 of 07 · LeadFlow
    POST maplecomfort.ca/api/lead
    Try:
    1 · Read the message
    status
    waiting
    2 · Decide the route
    Emergency: Slack #dispatch + HubSpot
    Normal: HubSpot + Slack #new-leads
    Spam: logged, nothing sent
    3 · What the team sees
    Nothing yet.

    Type your own message or pick a sample. In this demo a keyword fallback reads the message in your browser; the deployed function uses the model for step 1 and the same decideRoute() rules for step 2.

    Problem

    Website leads land in a shared inbox. A "no heat, kids at home" message can sit for hours next to spam and quote requests, and someone retypes every lead into the CRM.

    Solution

    Each message is read the moment it is sent. Emergencies ping dispatch in Slack, every real lead becomes a HubSpot contact with a one-line summary, and spam goes nowhere.

    Why it's needed

    For home services, the first company to call back usually gets the job. Routing by urgency and skipping manual data entry gives the team back time and gets emergencies answered first.

    Is there something on the market?

    • Zapier Professional$19.99 / moBilled yearly, 750 tasks a month
    • Zapier Team$69 / moBilled yearly, team plan
    $240Saved per year (estimate)Zapier Professional: 750 tasks covers about 250 leads a month at 3 tasks each (AI step, HubSpot, Slack)

    When to buy instead: Zapier lets non-developers change the steps themselves. This function needs a developer to edit, but runs on hosting the site already has and keeps lead data in fewer places.

    USD list prices, Nov 2026: Zapier pricing guide

    Design · Redesign case study
    Unsolicited concept · not affiliated with the City of Toronto

    A task-first toronto.ca: put the task first, then the photo

    Most people open the City's website to do one thing: pay a ticket, find their garbage day, book a swim, report a pothole. I reviewed the homepage as it stood on 10 November 2026 and redesigned it around those jobs, with one service page template the whole site can reuse.

    None of this is about effort. The City runs more services than most cities, and every team needs a place on the front page. That is exactly why the page needs a clear order.

    My role
    Site review, information architecture, UX and UI design
    Delivered
    Case study, desktop homepage, service page template, both on mobile
    Built with
    Design canvas, browser checks of the live page, AI for research support

    What I found

    My reasons

    The case study

    Case study opening: title, the homepage counted in numbers, and the four findings pinned on a wireframe
    The audit: counted on the live page, then pinned to a wireframe
    Three example visits and five design decisions, each linked to a finding
    Example visits and five decisions, each tied to a finding

    The screens

    Concept homepage: navy search hero, service alert bar, eight top task cards, a Near you panel, topics and news
    New homepage, desktop. Sample alert and address results are labelled as samples.
    Concept service page for paying a parking ticket with an at-a-glance box, Pay now button and numbered steps
    Service page template, using "Pay a parking ticket" as the example.
    Homepage and service page on a phone
    Both screens on mobile: tasks become a list with 60 px rows, and the main button goes full width.

    How I would know it worked

    Top-task success rate in moderated tests before and after, searches that end with no click, the "Did this page help?" yes rate, and 311 calls for answers already on the site. Rolled out in small steps: find the top tasks, prototype and test, launch the homepage and the 20 most used service pages, then move the rest onto the template.

    Design · Client work
    Saskatoon Cabinets · working demo, sample data

    A business portal that shows the owner what needs doing today

    I designed and built this clickable portal for a custom cabinetry business I support. The idea: new leads, estimates waiting on customers, site visits and unpaid invoices on one screen, sorted by what needs action first, on a phone or a laptop.

    My role
    UX, UI design and the working front end
    Screens
    Sign in, home dashboard, leads and jobs board, calendar, invoices, website stats, settings
    Built with
    Design canvas, HTML, CSS and JavaScript, built with AI assistance

    Design decisions

    Portal home: new leads, estimates waiting, pending payment and paid totals, a needs-attention list and upcoming site visits
    Home dashboard
    Leads and jobs board with New, Contacted, Scheduled and Invoiced columns
    Leads and jobs board
    Month calendar with site visits and follow-up calls listed beside it
    Calendar
    Invoices screen with drafts, pending, not paid and paid totals and invoice cards
    Invoices
    Design · Mobile app UI
    Fictional brand · sample data

    Find a group ride at your pace, and nobody gets dropped

    A mobile app concept for local cycling clubs. The common problem with group rides is pace: new riders join a ride that is too fast, fall behind and do not come back. Tandem filters rides by pace and tells the leader when the group needs to regroup.

    My role
    Brand, UX flow and UI design
    Delivered
    Brand board and a 5-screen clickable prototype
    Built with
    Design canvas, Sora and Inter type

    Design decisions

    Tandem brand board with logo, lime and coral colours, type and pace tags
    Brand board
    Five screens: welcome, rides near you, ride detail, live ride with a regroup alert, and ride summary
    Welcome, rides near you, ride detail, live ride and summary
    Design · E-commerce
    Fictional brand · sample catalogue

    An outdoor store built around the facts people compare

    People buying a tent compare three things: how much it weighs, how many it sleeps and how cold it gets. Rove Supply Co. puts those facts on every card and at the top of every product page, so shoppers can decide without opening ten tabs.

    My role
    Brand, UX and UI design for the full shopping flow
    Screens
    Home, product listing with filters, product page, checkout, mobile product page
    Built with
    Design canvas, Archivo and Inter type

    Design decisions

    Rove Supply Co. homepage with a bold headline, tent illustration, shop by trip tiles and best sellers
    Homepage
    Tent listing page with filters for sleeps, season and weight
    Product listing
    Product page for the Pinecrest 2 tent with colour options, key facts and add to cart
    Product page
    Checkout with contact, delivery and payment steps and an order summary
    Checkout, with an inline postal code error
    Product page on a phone with a sticky add to cart bar
    Product page on mobile
    shafi.
    Get in touch ↗