Hublumen is live·3-day free trial

Everything we've shipped.

Hublumen ships continuously. Every change lands here — added, fixed or changed — with the date it went out.

v0.4.2
added

Contact page

A contact form that reaches the team without a sign-in, on its own route rather than a link off to the marketing site. Messages land in the same queue as support requests.

fixed

Dark mode across the whole app

The theme is now applied before the page paints, survives a refresh, and reaches every public page rather than only the navigation bar.

fixed

Pricing shows the real plans

The plans page quoted a tier list that had been retired. It now reads from the plan catalogue directly, so what you see is the row your card is charged from.

changed

Audience tabs on the home page

The "for agencies / for teams / for freelancers" tabs work now, and rewrite the summary for whoever picked one.

v0.4.1
changed

A shorter navigation bar

Six top-level links became three, with everything else grouped into one menu. The old bar offered Pricing and Roadmap twice — once flat and once inside the menu.

added

Documentation in the toolbar

The docs are one click from anywhere in the workspace, next to the deployment badge.

fixed

The roadmap banner points at the roadmap

It went to a static page rather than the live one inside the dashboard.

v0.4.0
added

Your profile, once, for every product

One profile shared across Hublumen, Baselumen, Kitlumen and Stacklumen instead of four that drift apart.

changed

Clients no longer need a portal first

You can add a client and set their portal up afterwards, rather than the other way round.

fixed

One documentation page, not two

Two copies of the docs were being served at different addresses, and only one of them was public.

v0.3.9
added

The rail says whose workspace it is

Your agency's own logo and name now sit in the rail, read from the database rather than from the sign-in provider, so which tenant you are working in is legible at a glance.

v0.3.8
added

Clients, as a section of the dashboard

The shared Clients screen arrived with a rail row that reaches it — one row per client, expanding into what each of the four products holds for them.

fixed

Client routes are scoped to your own tenant

The client endpoints were reachable without a workspace check. They now resolve against the caller's tenant, and the paid sections of the dashboard gate themselves.

v0.3.7
changed

Hublumen Premium is $99.99

The premium tier was seeded at a figure that broke the pattern every other plan uses and did not match what the card is charged. Corrected to the catalogue price.

changed

Hublumen requires a Hublumen plan

Entitlement is read from the workspace rather than from your personal account metadata, so a plan bought by an owner works for the whole roster.

fixed

The agency rail can scroll

A long rail was clipped at the bottom of the viewport with no way to reach the rows below the fold.

v0.3.6
added

Plans granted by hand, and comped tiers

A plan can be granted from the dashboard and lands in the same entitlements table a real subscription writes to — and a real subscription can now land on top of a comp without either disappearing.

added

Separate frame and canvas themes

The chrome and the working surface are themed independently, and the choice is applied before the page paints on the screens that own their own document head.

v0.3.5
added

Documentation, the welcome tour and Discord

The shared suite documentation shipped, alongside a first-run tour, mandatory account setup and a community link that sits beside the roadmap rather than under Support.

changed

The trial is three days, and you are told before it starts

The trial length was cut and moved into the copy people read on the way in, with the real end date rather than a duration.

added

A support form for people who cannot sign in

Public, needing no account, and it sends the page you were on and the error the app reported along with your message.

v0.3.4
added

Mockups, Domains, Logins and Client setup

Mockups are grouped by the part of the project they belong to rather than listed flat. Domains detects a registrar from the nameservers and lets you correct the guess permanently. Logins is present and deliberately not yet accepting credentials until the encryption is right.

fixed

A client is a client, not a tenant

Creating a client used to create a second tenant, which is how a client could end up looking like another agency. Client setup now edits the client, finishing the intake form opens the portal, and an agency can create a portal at all — which nothing could do.

changed

Your plan and Client billing are two screens

What your agency pays us and what your agency charges its clients are separate records with different shapes, and are no longer conflated.

fixed

Three support tables were readable by anyone

Closed, along with a portal that resolved membership against the wrong column.

v0.3.3
added

The shared suite screens

Agency, People, Billing, Profile, Account, Roadmap, Feature requests and Community became one implementation shared with the other three products, mounted in this rail.

added

The canvas toolbar

Search, recommended actions, cross-suite signals, the product switcher, support and refresh — on both admin shells and the portal.

changed

The platform console moved to Stacklumen

A console that administers every agency does not belong inside the client portal product. Hublumen links out to it instead.

added

The Stripe webhook this app never had

Subscription state had no way to reach the database. It does now.

v0.3.2
added

Overview becomes a real dashboard

A portfolio instrument with health scoring, a heatmap and a cross-portal timeline, on one composable canvas — and renamed from Overview to Dashboard, because that is what it is.

changed

Fabricated metric charts removed

Several charts were drawing numbers nothing measured. They are gone rather than made plausible; the working-screen type scale and honest loading states replaced them.

changed

One shell across all three surfaces

The agency dashboard, the platform screens and the client portal share one shell, one rail that collapses properly, and one white canvas.

fixed

The post-login redirect loop

Accounts with no profile bounced between the dashboard and sign-in. A profile is also re-linked when the sign-in subject changes under a verified address.

v0.3.1
changed

Identity moves to Clerk, with organisations as the tenancy layer

Invitations, sessions and the agency tenancy all moved. Existing organisations are adopted in the backfill rather than duplicated, and auth now travels in the session cookie instead of a bearer token the client had to attach to every call.

changed

The app adopts the Stacklumen branding system

Serif and mono retired, the accent rebranded, the navbar aligned with the marketing bar, and a "A Stacklumen Product" badge on every page.

fixed

Route guards, contained crashes, and no leaking by default

Company reads are scoped by tenant, routes are guarded rather than trusted, and a crash in one panel no longer takes the screen with it.

v0.3.0
added

Public beta

Client portals, project tracking, file delivery, approvals and Stripe billing, open to agencies without an invitation.

v0.2.2
added

Proper tenancy: agencies are their own record

Signing up provisions a real agency and an agency owner, rather than inferring one from a member's role. Platform staff can classify agencies by tier, enter an agency workspace to help, and delete portals.

changed

Settings persist to the database

Several settings were held in browser storage only, so they did not survive a different device — or a different browser on the same one.

v0.2.1
added

The agency workspace

A sidebar-navigated console for agency owners: a command palette, an action inbox, portal health badges, a People view, a profile editor, and a multi-tenant billing screen covering every portal.

added

Messaging

Realtime threads with reactions and file attachments, and a categorised sidebar. Later retired in favour of the shared support surface.

fixed

Row-level-security recursion and duplicate React

Two classes of failure that presented as 500s and endless dependency reloads, traced and fixed at the root rather than worked around.

v0.2.0
changed

Rebranded to Hublumen

New name, new logo, dark mode, and an editorial design system applied across the documentation and legal pages.

v0.1.0
added

First build

The client portal, its navigation and the onboarding flow — the beginning of everything above.