internal · refreshed roughly fortnightly

what's next.

last updatedSun 26 Apr 2026 next updateMon 11 May 2026 ownerSteve Hough confidencenarrows by horizon

Our working roadmap, kept honest. Things close to now are specific and dated. Things further out are named but fuzzy — and that's the point: pretending to certainty would be worse than the fog.

how to read it
  • nowshipped recently, or in flight this month
  • nextcommitted for this quarter, named, roughly dated
  • laterthis year, named, fuzzy on when
  • consideringon the table, not committed — open to argument
  • parkedexplicitly not doing, with the reason
just shipped last 14 days
Sun 26 Apr
User Admin shared patterns elevated — page-head, filter-bar, legend-strip and avatar move out of admin.css into the system.
portal
Fri 24 Apr
User Admin page architecture corrective — six rounds of feedback baked in across the five admin screens.
portal
Wed 22 Apr
User Admin roles, pages and audit on the design system, plus the PageHeader migration across every admin screen.
portal
Tue 22 Apr
Wave 1 redesign — Home, Projects list, Project detail, Opportunity detail and Company Info on the new tier system.
portal
Mon 21 Apr
Top chrome ribbon swap — single ribbon with menu takeover, ⌘K palette and avatar across every page.
portal
Sun 20 Apr
User Admin list and detail on the design system — first foothold of the completion cluster.
portal
streams
portal sped operations brand & marketing culture & people
horizon 01

now.

This month. In flight. Movement week to week.

portal

Roadmap page on the portal

This page. Lifts the markdown roadmap onto the design system so the team can see where the portal is going, and the open questions get a public surface.

80% · in PR reviewtarget Mon 27 Apr
owner Stevedev Claude Code
Aprin flight
in flight
portal

Brief C — clean slate and staff invites

Wipe the test rows, invite the first wave of staff for real, exercise the audit log under live activity. Gets the portal genuinely live for the team.

15% · brief draftedtarget early May
owner Steve
Aprin flight
in flight
portal

CLAUDE.md refresh

Bring the technical reference up to date after Phase 2b-pre B and Stage 1. So Claude Code sessions start with the current shape of the portal, not last month's.

50% · brief shipping; awaiting apply passtarget this week
owner Stevedev Claude Code
Aprin flight
in flight
portal

Steve and Josh — staff role grant

Give the admins the staff bundle alongside their admin roles, so admin permissions don't have to mirror every staff permission. One-line migration.

owner Steve
Aprthis week
scheduled
portal

Margin-impact tool — permission fix

Re-gate from finance.view_detailed to finance.view_topline. The tool is educational, not private finance — over-gating defeats the point. One click in pages admin.

owner Steve
Aprthis week
scheduled
horizon 02

next.

This quarter. Committed. Named owners, loose dates.

portal

Stage 2 — portal → CurrentRMS push

When an admin invites a freelancer, the portal also creates the CRMS member and stores the returned id. Closes the source-of-truth loop. Identity edits push too; failures surface for retry.

owner Stevedev Claude Code
Maymid
committed
portal

Phase 2c — RLS policies across every table

Defence in depth. Today access control is enforced at the Edge Function layer; Postgres RLS adds a second floor. Twenty tables, one at a time, smoke-tested as we go.

owner Steve
May–Juncumulative
committed
portal

Defensive DB housekeeping

Unique index on lower(email), drop the legacy cf_email column, retire the old {role}_visible booleans, fix the portal_users.role drift. Tech debt that will rot otherwise.

owner Steve
Mayopportunistic
committed
operations

Storage manager (replaces Stillage)

Stillages, crates, loose items — one tool, one shape. Item type, "what's in it", "where's it going" with a managed location list. Matches how Andy and Joe actually work.

owner Andywith Joe
Maylate
committed
portal

Company info page

One reference page for registration, VAT, EORI, bank details (per currency), wifi, software licences, T&Cs PDF. Replaces the Teams wiki nobody can find.

owner Stevewith Vikki
Maytbc
committed
portal

Projects dashboard tune-up

Phase filtering on the dashboard, plus a headline summary — "X in Discovery, Y in Development, Z in Pre-production". Lets Woody and the PMs see the pipeline at a glance.

owner Woody
Mayquick
committed
portal

Label maker — creator pill and modified date

Small pill on each label set showing who made it and when it last moved. Easy way to find "the one Jake did" or "the latest version".

owner Jake
Mayquick
committed
portal

Apple Sign-In

Fourth auth method alongside Microsoft, Google and magic link. Cheap to add via Supabase. Same rules as Google — does not auto-provision.

owner Steve
Juntbc
committed
horizon 03

later.

This year. Named, fuzzy, will shift as we learn.

portal

Updates page (replaces homepage What's New)

One feed for "what's new at Zeal" — the existing portal feed plus the Teams News & Updates channel, in chronological order. Fragmentation gone.

probable owner Sian
Q3tbc
named
portal

Notify button on projects

Project page action that emails everyone associated — crew, PMs, optionally the client — with a custom message and a Dropbox link. Replaces the manual email scramble.

probable owner Woody
Q3tbc
named
operations

RAMS builder

Pick from a managed risk-assessment library, fill in project-specific bits, produce a branded PDF pack. Same render pattern as Label Maker.

probable owner Andy
Q3summer
named
portal

Crew sheet generator

Auto-populated contact sheets per project from job assignments and portal profiles. Branded PDF, sent or downloaded. Depends on Phase 3 profile data being real.

probable owner Woody
Q4tbc
fuzzy
portal

Phase 3 — freelancer self-service profile

Nineteen profile fields go from placeholder to real. Users edit their own; admins see others; updates push to CRMS. Replaces the Typeform → Monday onboarding mess.

probable owner Steve
Q4after Stage 2
fuzzy
portal

Financial dashboard

Income, gross and net margin, debtors, creditors, DSCR. Pulled from Xero — monthly approved snapshots for authority, optional live for the curious. Visible to all staff.

probable owner Vikkiwith Steve
Q3tbc
named
operations

Operations dashboard

"What's happening today?" — subhires in and out, transport movements, overdue collections and returns. Replaces the patchwork of Monday boards Andy keeps in his head.

probable owner Andy
Q3tbc
named
operations

Warehouse dashboard

Quarantine items, planned servicing, due PAT and LOLER tests — surfaced in the portal so Joe doesn't have to context-switch into CRMS to see them.

probable owner Joe
Q3tbc
named
portal

CRM dashboard

Client list with relationship strength, account-manager ownership, last contact, upcoming renewals. Supports the "touch base every 6 months" goal in the 2026 strategy.

probable owner Steve
Q4tbc
fuzzy
operations

Subhire return alerts

Catch overdue subhire returns automatically — email, Teams ping or portal banner. Stops paying for kit longer than we use it.

probable owner Andy
Q3tbc
named
portal

Studio booking → Monday tasks

When a studio booking has unconfirmed hardware, drop a task on the ops Monday board automatically. Removes "did anyone see this?" entirely.

probable owner Andy
Q3tbc
named
portal

Additional label types

Soca, network, dolly, truss. Each follows the same recipe — renderer, endpoint, row schema, asset category. The pattern is in place from PAL and fixture.

probable owner Jake
Q3tbc
named
portal

Calendar — who's in, who's out

Filterable company calendar — people, jobs, leave, birthdays. Pulls from CRMS for jobs and (probably) BambooHR for absence. Replaces three places we currently look.

probable owner Vikki
Q4tbc
fuzzy
horizon 04

considering.

On the table. Not committed. Open to argument — drop a note to Steve if you have one.

portal

AI assistant — "Ask Zeal"

Always-accessible chat that answers "where do I find…" and "how do we do…" against the OS and playbooks. Surfaces links, doesn't replace pages.

why we're unsureA bad assistant is worse than none. Worth doing properly or not at all — wait until the documentation is reasonably complete.
considering
portal

Delete the six legacy HTML pages

Six pages still live on the pre-rebuild class system. Deleting them unlocks another portal.css shrink — about forty rule blocks of dead weight.

why consideringFive are 301-redirected already, one is orphaned. Housekeeping — slot into a quiet session.
considering
culture

People / HR section

Handbook, grievance, disciplinary, holiday — somewhere consistent. Three options: custom HTML, deeper BambooHR integration, or different HR software entirely.

why we're unsureNeeds scoping with Vikki — and a decision on BambooHR's future at Zeal. Not actionable until that's done.
considering
portal

Recurring data-cleanup cadence

Sarah's wave is the first. Drift is ongoing — emails change, CRMS goes stale, orphans accumulate. Need a cadence, an owner, and possibly a "data health" view.

until thenHandle ad-hoc. Revisit after Brief C is bedded in and the real shape of the drift is visible.
considering
horizon 05

parked.

Explicitly not doing. Written down so the next person doesn't re-propose it cold.

portal

Replacing CurrentRMS

The portal-as-source-of-truth pivot was a deliberate move toward CRMS-replaceable, but the migration cost outweighs the benefit today. Status quo holds.

reason parkedNo business case. Revisit only if CRMS becomes a bottleneck — pricing, feature gap, or reliability.
parked