
Every screen inside the app has been redrawn on a new design system — a new sidebar and header, new cards, tables, buttons, chips and forms, and one type and colour scale across the whole product. Nothing moved and nothing was renamed: the same pages, the same numbers and the same buttons, in a cleaner frame. Alongside it, four things that were genuinely wrong are now right — a marketplace bid is a single committed offer rather than a position in an auction, a package deal finally agrees with its own components, every vendor job opens as a real page, and a brief you have already sent can still be corrected — plus a long list of smaller fixes.
The whole dashboard has been redrawn
The app has a new look. The sidebar, the header and the global search are new; so are the cards, tables, buttons, inputs, tabs, chips, headings and panels on every page behind them. One colour palette and one type scale now run across the product instead of a different treatment per module, and the collapsed sidebar keeps its logo and its toggle in the same row, so the button you just clicked no longer jumps down the screen.
This was deliberately a change of appearance only: every page, section, column, field, label, button and number is exactly where it was, and nothing about how the product works was touched.

A marketplace bid is one offer, not a position in an auction
Bidding on a listing used to behave like a live auction, and three parts of that were misleading:
- A bid is sent once and cannot be edited. Placing a second bid on a listing you have already
bid on used to quietly overwrite the first one's amount. It now tells you that you have already bid, and what happened to that bid — pending, accepted, declined, withdrawn or expired. The Edit Bid button is gone, and the panel says plainly: waiting on the seller. A bid can't be changed once it's sent.
- Withdrawing is the way out of a listing, not a way to redo your offer. The confirmation says
so before it runs, and withdrawing does not let you bid again.
- Nothing outbids anything. Placing a bid used to flip the standing highest offer from another
buyer to Outbid on the spot, telling that buyer they had lost something no seller had decided. Every bid now simply sits pending on its own until the seller answers. The only thing that ends another bid is the seller accepting one — which has always notified the others — and where the word "Outbid" used to appear, bids now read Closed.
Withdraw is also now refused on an accepted bid. It had no status check at all, so it would withdraw a bid the seller had already accepted, leaving the deal and the escrow behind it standing against a bid whose own row said it was off the table.

A package deal is now the sum of its components
A package deal had two separate delivery tracks — one for the deal as a whole, one per component — and neither wrote the other's state, so whichever one a buyer and seller used, the other stayed behind. Depending on the path, that meant a completed deal whose components were still Pending and a seller paid for work nobody had delivered, or a package delivered exactly as intended whose seller's payout was never queued and had no button anywhere to release it.
The components are now the only track. A package's deal status is re-derived every time a component moves:
- every component approved → the deal is Completed and the seller's payout is released
- any component sent back → Revision Requested, and the review clock stops
- every component delivered → Pending Review, with the 7-day review clock
- anything else → Active, which is partial delivery — something the whole-deal track had no
way to express at all
Both sides now read the same three numbers instead of one: "2 approved · 1 awaiting your review · 1 not started", over a two-segment bar, with the next action counting components — "1 of 3 components left to submit", "2 components waiting on your review". The whole-deal Approve, Request Revision and Reject buttons, and the deal-level proof panel, are gone from a package; there was never any deal-level proof on one for them to act on. The components section is now headed by the package's own name, and a component's Reject is now Request Changes — that track allows three rounds and the seller resubmits into it, exactly like every other revision loop on the platform, so a terminal word there left sellers reading a dead component.
Packages already completed the wrong way round have been repaired, and a package awaiting delivery can no longer be delivered or completed before it has been paid for.

Every vendor job opens as its own page
My Work on the vendor marketplace showed a job in a modal, so the one screen a vendor actually works from could not be linked to, bookmarked, opened in a second tab or reached from a notification. Each row now opens a real page, carrying everything the modal did — stage, client, amount, You receive, the due date with "in 9 days" / "3 days overdue", every lifecycle date, the brief, dispute and revision banners, the submission with its attachments and the revision timeline — plus Accept, Decline, Submit, Raise dispute and Message client. Back returns you to the tab you came from.
While there: the board's Delegated Marketplace Work tab and Marketplace Bids are now Campaign Work and Campaign Bids, which is what they are from a vendor's side, and the work source filter names the source — Campaign Line Item or Deal Subcontract — instead of repeating the tab's own title back at you.

A brief you have sent can still be corrected
Editing a brief used to stop the moment you sent it, so a brief sent to a creator who had not replied yet was frozen — nothing had been agreed, and you could still recall the brief outright, but not fix a typo in it. Editing now lasts exactly as long as recall does: a draft, or sent with every recipient still pending. One accept or decline closes it, because an accepted slot's terms are not yours to rewrite alone.
An edit now also reaches the work itself. Each recipient's assignment carries its own copy of the budget, deadline, deliverable type and requirements, so changing them on the brief now updates every slot that nobody has responded to, and the campaign's budget follows. Two edits are refused, with Recall named as the route, because both mean re-sending the work rather than adjusting it: adding or removing a deliverable, and moving the brief to another campaign.
Three long-standing brief bugs fell out of that work:
- A brief's deadline and compensation type could not be changed at all. The save reported
success and the next read showed the old values.
- "Sent" was never recorded , so every brief read Created where it should have said Sent.
- The edit form dropped each deliverable's identity on save, which would have severed every
recipient's delivery state from the brief the first time a sent brief was edited.
Brief cards on the list now also name their campaign, so a list of briefs across several campaigns no longer reads identically.
A date you are choosing cannot be in the past
A package's Valid From and Valid Until could be set to any day in the past, which publishes a package whose booking window closed before it existed. Every date field in the app has now been swept with one rule: a date you are choosing now has a floor of today, while a record's own stored date stays pickable, so editing something published last month isn't blocked by a date nobody is touching.
That covers package validity, listing availability, brief and per-deliverable deadlines and the extend-deadline dialog, campaign line-item due dates, vendor subcontract due dates, vendor offer "Deliver By", the advertiser's vendor brief dates, invoice due dates, creative usage-rights expiry, availability slots and pipeline target dates. Two fields got the opposite bound: a sample of published work cannot be dated in the future, and a contract's End Date cannot precede its Start Date. Date-range filters are untouched — those look backwards by definition.
One of these was quietly losing data rather than just looking wrong: a seasonal moment saved with a past date was read by nothing, so it existed and appeared nowhere.
A buyer sees the listing its seller published
The Inventory card on the marketplace and the My Listings card its seller sees describe the same listing, but the buyer's card had been trimmed until it said noticeably less — no content niches at all, only the first geo target, only the closing date, one line of description, two tags, and no listed-on date. Both cards now render the same set of facts.
The price was worse: a listing whose seller has chosen to withhold it until you ask rendered as a confident ₹0 on the browse card and in the list table. It now reads Price on request, which is what the seller's own card has said all along.

A campaign can carry its own reference material
The create wizard asked for a budget and dates and offered nowhere to say what they were for. Line items, briefs, applications and vendor pitches all carry attachments; the campaign they all hang off had none. Budget & Schedule now takes up to ten files or links — the media plan, the brand deck, or the folder where everything lives — and they can be added or removed at any time, not only while you are creating the campaign. What's attached is listed on the campaign's own page.

A creator sees the whole of their payment
A creator's deliverable page said where the money was — held in escrow, queued for transfer — and nothing about what it came to. It now shows the same full breakdown the advertiser's side has always had: the deal amount, the commission at the rate that slot was priced at, what you actually earn, the state of the transfer, the payment and payout references, and a prompt to add a payout destination when money has been released with nowhere to send it.
Also in this release
- A date range filter can be cleared. The shared date-range picker could set a range and swap
one range for another, but not take the filter off again — so a page kept a date filter you had no way to remove short of a reload. A Clear now sits beside Apply, on all 22 screens that use it.
- The brief deadline calendar names the month you are looking at. The month header lagged a
whole month behind the scroll, and the last month in the list could never be named at all.
- Creating a marketplace listing says which field is missing. Next used to fail silently on
a step five chip-groups tall, and Create Listing said only "Please fill in all required fields". Both now name the fields, one per line.
- A review tells the person it is about. Submitting a review wrote the row and notified nobody,
so the only way to find out you had been reviewed was to open Settings ▸ Reviews on the off-chance. The reviewed workspace now gets a notification carrying the rating and the words.
- An uploaded ad creative appears where you uploaded it. The upload worked; the list of files
simply lived in the other half of the panel, so nothing on screen showed the file until a refresh. The upload form now carries its own list, headed saved to this deal already — because it is, and Cancel does not undo it.
- A deal's proof panel stops appearing before the proof is sent. Attachments on that rail
upload live, so adding a screenshot to the submit form made a Published Work card appear above it showing the same screenshot a second time — announcing work as published that the advertiser had not been sent.
- A brief's recipient list stops offering a removal it cannot do. The X on a recipient was
drawn from the brief's status, so it appeared on rows the server refuses — one creator submitting does not lock the other four. It is now decided per recipient, and stays visible but disabled, with the reason in its tooltip.
- Brief card facts fit the card. Budget, deliverables, deadline and type used to break
mid-phrase and then overflow the card's own border at laptop widths. They now wrap as whole facts. The budget also read "₹ ₹0.00" on every card, and hardcoded a rupee onto workspaces billing in something else.
- Sending a brief from the Influencers page updates the Briefs list. The list cached itself for
five minutes, so a brief you had just created or sent could be missing from it entirely until a hard refresh.
- A new forward listing opens on a real availability window — now → seven days, both still
editable — and New Listing no longer saves over the listing you last edited.
- A finished campaign line item reads "completed" , which is what the deal page says about the
same work, instead of Approved.
- A modal's dimmed backdrop covers the whole screen. An undimmed 24px strip ran along the top
of the viewport, leaving the header's search bar at full brightness above a dimmed page.
- The marketing site's logo and wordmark are sharp. Every brand asset was a 1× raster served at
exactly its CSS size, so on any retina display the header lockup read as soft. The wordmark is now vector and both marks are re-cut at 4× their largest use.