475 releases and counting

What shipped

Release by release, with docs to match on docs.ecomyard.com. Built in the open, tested on our own brand first.

Moments steps out of the rail

0.189.4 · Sep 22, 2026

  • ImprovedMoments gave up its own icon in the Studio rail. The screen still exists and the chain still runs through it (a moment hangs off a persona, an offer hangs off a moment), but a permanent slot was more weight than it carried. Old links keep working and file under ICPs.

The switch got its weight

0.189.3 · Sep 22, 2026

  • ImprovedThe Studio and Creators switch grew into the control it is: taller segments, each space wearing its own mark, the active side raised on white. It reads as the first decision of the sidebar now instead of a pair of tabs whispering under the workspace name.

The board header, calmed

0.189.2 · Sep 22, 2026

  • ImprovedThe board's header went from three rows of chips to the Shopify line: one row with the name, More actions and New creative; a numbers strip that doubles as the door to what it counts (creatives on the board, open sheet cells opening the deck, work ready to launch); and a toolbar that only holds tools: views, a search that grows, filters and the count.

One icon fewer

0.189.1 · Sep 22, 2026

  • ImprovedThe board moved to the front of the Studio rail, right after Home and the assistant: it is the screen the day runs on. Launch lost its own icon along the way, because it always was the board's last stop and already lives under Focus in that same panel.

Studio and Creators

0.189.0 · Sep 22, 2026

  • NewThe workspace now has two rooms. Studio is the content half: markets, ICPs, briefs, the board and Launch. Creators is the affiliate half, grown into a full rail of its own: Overview, Affiliates, Programs, Payouts, Content and Engage instead of one icon hiding fifteen pages. A switch at the top of the sidebar moves between them, each side opens on its own dashboard, and links that cross simply take you along.
  • ImprovedHome is Studio's start now and reads like it: briefs delivered, creatives produced, launched, and only the content work in Waiting on you. The affiliate work list, applications, deliveries and affiliates waiting to be paid, moved home to the Creators dashboard, and signing in or switching workspaces lands you in the side you last worked in. The deliveries queue is called Deliveries now, because Content already names the Studio hub one switch away. Under the hood the whole navigation became one shared config, so the sidebar, the page titles and the command palette can no longer drift apart.

The signup page moves in with you

0.188.0 · Sep 22, 2026

  • NewEvery signup page can now live on your own site. The link card in the builder carries Show embed code and Configure embed: two lines of code, an iframe and a small script that keeps it exactly as tall as the form. Configure picks what sits behind the pane: the page's own backdrop, your site showing through, or one flat color, and the choice is baked into the code you copy. The embedded page drops the big header and the photo strip, and applications land in your inbox exactly like they do from the link.
  • ImprovedOpening the door to iframes closed it everywhere else: every page outside the signup pages themselves now refuses cross-origin frames, the sign-in and account screens under them included, which keeps the dashboard, the portal and every password field out of clickjacking overlays. Inside the embed, a refused field and the confirmation both ask the brand's page to scroll them into view, because the frame itself has nothing to scroll.

Instagram walks into the portal

0.187.0 · Sep 22, 2026

  • NewThe Instagram connector is built, creator side: Connect in the portal opens Instagram's own login, and from then on their recent posts land on their file with reach and follower counts, refreshed every few hours. The brand sees them under Media on the dossier, the creator on their portal, and the activity score counts real posts now. Disconnect lives next to it; the history stays, the token goes.
  • ImprovedThe one thing it waits for is the brand's own Meta app keys; until those are set the portal card honestly says Coming soon. The docs walk through the three steps.

The day's plumbing, checked

0.186.2 · Sep 22, 2026

  • FixedA sweep over everything shipped today: the new gift tables got covering indexes on every foreign key, three write policies stopped double-checking every read, and the portal draws one clean brand-green skeleton on every navigation instead of the leftover shape of an older page.

The portal in the house style

0.186.1 · Sep 22, 2026

  • ImprovedThe portal header wears the brand green as one piece with the menu, the stat icons calmed down to the one house accent, and the referral link is now the brand's own store with the code baked in: shop.com/discount/CODE applies the discount at checkout by itself.
  • NewA brand can set a WhatsApp number under Settings, and the portal menu grows a Contact door that opens the chat where creators already live. The Connect your Instagram card is on the portal home, designed and waiting for the connector.

Creators pick their own welcome gift

0.186.0 · Sep 22, 2026

  • NewWelcome gifts became product seeding. Per tier you choose which products a creator may pick, how many, and whether the allowance renews monthly. The creator picks in their portal, fills in an address with a country picker, and the order lands in Shopify as a normal zero-priced order that ships through your usual fulfilment, tagged so it never touches the sales reports.
  • NewGift orders show up on both sides: a card in the creator's portal with the status and Track your package once it ships, and a card on your Gifting page with everything creators picked. A monthly allowance brings a one-tap Re-order that prefills last month's picks.
  • ImprovedThe creator portal grew into a real app: a hamburger opens a brand-green sidebar with Home, Analytics, Payouts, Gifts and Media, with a red badge on Gifts while one is waiting and a warning on Payouts while an address is missing. Home leads with the gift banner, the money story as a list, and a share card that switches between the code and the link with WhatsApp, X, Facebook, mail and copy under it.
  • ImprovedClaiming a gift now works like a small shop: Gift options and My order as tabs, one row per product with Add to order and View details, then the address and one Order button. Analytics draws the creator's own last thirty days, and payouts, orders and deliveries each got their own page.

Every tap in the portal answers

0.185.4 · Sep 22, 2026

  • FixedTapping the payout nudge, the avatar or the back button in the creator portal now answers instantly: the icon becomes a spinner while the page loads, and the settings page draws its own shape first instead of leaving the screen sitting still. A control that does nothing for a beat reads as broken, and on a phone that beat is real.

The portal fits in a pocket

0.185.3 · Sep 22, 2026

  • ImprovedThe creator portal now reads like an app on the phone it is opened on: one column, section labels on the page instead of a stack of framed cards, the brand's own logo in the header, the code they share on the one green card, and their numbers in a quiet grid. The avatar in the header opens their own settings page, where how they get paid now lives; the front page only nudges about it while an address is actually missing.
  • NewA creator's code is now theirs to change, right in the portal, with a live availability check while they type. The old code comes off the Shopify discount, the new one takes its place, and a notice goes to their inbox so a change they did not make cannot pass unnoticed. The safe link is a quiet row under the code, because most creators simply tell their followers the code.

The till writes the books

0.185.2 · Sep 22, 2026

  • FixedThe books now defend themselves inside the database. An affiliate's revenue, balance and payout details only move through the product's own machinery, never by hand through the API; a regular member can no longer change statuses, codes, programs or tiers; and order and payout records cannot be deleted by anyone at all. Paying out also checks at the door that an owner or admin is asking.
  • FixedThe side doors around that fence are closed too: approving an applicant now asks for an owner or admin, because approval is what writes codes and payout addresses; creating affiliates is admin work; order and payout records accept exactly the settle fields and nothing else; and programs and tiers, the source of every commission rate, sit behind the same admin door. The screens say who may pull a lever instead of failing silently.

The books guard their own grave

0.185.1 · Sep 22, 2026

  • FixedDeleting an affiliate is now refused by the database itself, not just by the page. A regular member calling the API directly can no longer delete anyone, and deleting an affiliate while order or payout history is on the books is refused at the door, because deleting the person would delete those books with them. Archiving remains the way to retire someone.
  • ImprovedThe activity chart on an affiliate's page wears the brand green, shows the day and its value as you move along the line, and fetches the freshest numbers with a loader whenever you switch metric or window. The referral and portal rows traded their heavy buttons for quiet copy and open icons.
  • FixedResending a mail to an archived affiliate is refused instead of quietly queueing a mail that would never leave, archiving skips whatever still sat in their mail queue, and a payout to an archived affiliate no longer queues a notification that could not be sent.

The affiliate page becomes a dossier

0.185.0 · Sep 22, 2026

  • NewAn affiliate's page now reads like a dossier instead of a form. The money sits at the top as four plain figures that each link to their source, the left column says who they are, what program they are on, their safe link, code, payout method and portal, and the right column says what happened: their activity charted over thirty or ninety days, one timeline holding orders, payouts, gifts and every mail, and a block ready for the content they make once Instagram is connected.
  • NewEvery mail that went to an affiliate is on their page, with the eye showing the mail exactly as it was sent. When somebody says they never got it, Resend queues a fresh copy, and the history shows it went twice.
  • NewArchiving an affiliate closes every door at once: their code stops working, waiting discount codes expire, gifts and mails stop, their portal closes, and they leave every list and leaderboard while their books stay put. Reactivating opens the same doors again. Deleting is permanent, asks for the name typed back, and is refused the moment there is order or payout history, because deleting the person would delete those books with them.
  • FixedThe home page task that says a mail failed to send could never fire: the mail table was unreadable to everyone since the day it was created. It counts for real now.

A briefing closing today says so all day

0.184.6 · Sep 22, 2026

  • FixedA briefing whose deadline was today lost its Closing soon badge at two in the morning. A deadline is a day, but it was being compared against the exact time of day, so from the small hours onwards the closing day counted as already past. It now counts whole days, which means the badge stays up for the whole of the last day, wherever the reader is.
  • FixedA briefing can no longer be stored with a negative reward or a commission above a hundred percent. Nothing in the product could write one, but nothing refused one either, and the marketplace card would have shown it as an amount.

Four places that showed the wrong thing

0.184.5 · Sep 21, 2026

  • FixedA workspace with a working Claude connection was told everywhere that it had none. Every connector reads its status from one table, and Claude is the one that writes to another: signing in leaves a grant and a token is a secret Ecomyard issues. The connections page, the sidebar and the AI itself now read the tables Claude actually uses, and a revoked or expired token correctly counts as no connection.
  • FixedThe preview of the two refund mails showed only one of the two versions that get sent. Which one an affiliate receives depends on whether that order had already been paid out, and the two say opposite things: the money comes off your balance, or it stands against your next payout. A brand could switch on a mail after reading a version half their creators never get. Both are now shown, each saying when it is sent.
  • FixedConnectors could not be attached to a question in the AI chat. The menu read its status from the static list, where nothing is ever connected, so even a linked Shopify showed Connect and clicking it left the conversation.
  • FixedThe AI told people they could connect Figma, which is listed but not built yet, so it sent them to a button that does nothing. It now only names connections that can actually be made.

The date filter counts days, not milliseconds

0.184.4 · Sep 21, 2026

  • FixedThe dashboard periods were measured in fixed twenty-four hour blocks while their edges were midnights, so in any week the clocks changed the window started an hour off. On the Monday after the October change, Last 7 days began at one in the morning and everything ordered in that first hour was missing from every figure on the page. The periods now count calendar days, so they start and end at midnight whatever the clocks did in between.
  • FixedA date in the address bar that does not exist, such as the thirtieth of February, was quietly moved to the next real day instead of being ignored, so the page showed a range nobody had picked. It now falls back to the selected period.

Two counts that had drifted apart

0.184.3 · Sep 15, 2026

  • FixedFunnel coverage on a market counted ideas nobody had shot and ads already taken down, while the same reading on each persona underneath did not. On the OMNIAIR board that was 44 against 37 for the same stage. Both now count the same thing.
  • FixedThe gift cost and unclaimed count on the gifting page were added up over a list the database quietly cuts off at a thousand rows. Both now read every row.

A removal that never happened stopped taking the file with it

0.184.2 · Sep 15, 2026

  • FixedOnly admins can change a workspace, but anyone could press Remove on the brand logo. The change was refused without a word while the file itself was deleted, so the logo went dead everywhere it is shown, the public marketplace included, and the person who pressed it was told it had worked. The file now only goes once the change actually lands.
  • FixedRegenerating a research section wiped worklist items that had already been turned into a brief. The brief was left with nothing pointing at it, the Briefed mark disappeared, and the same shoot came back on the list ready to be briefed a second time.

An offer is judged on the days it has had

0.184.1 · Sep 15, 2026

  • FixedA promotion that was still running was measured over its whole window and set against the same number of days before it, so three days of sales were divided by a month of them and every offer read as a collapse until the day it ended. It is now compared against the days it has actually had, and an offer that has not started shows no comparison at all.
  • FixedGross margin on an offer counted a cost price of zero as a cost price somebody had filled in, which overstated the margin and meant the note about partly known cost never appeared.
  • FixedThe Scheduled, Running and Ended chip counted the day in the server's timezone while the numbers beneath it counted in Amsterdam, so for the first hours of each morning they disagreed by a full day.

The gifts finish, and the mail stops at the door

0.184.0 · Sep 15, 2026

  • FixedA gift aimed at more than twenty five creators sent twenty five and stopped. The rest were meant to be picked up by a scheduled sweep, but that sweep only runs when a discount code happens to be waiting, which is a different queue entirely. A gift run now keeps going until there is nothing left to send.
  • FixedCampaign email went to creators you had set to inactive, carrying a discount code that was already pulled out of your shop. Everything else that sends already skipped them; the campaign blast did not.

Four that quietly said the wrong thing

0.183.1 · Sep 15, 2026

  • FixedEditing an offer before it had started wiped the note you wrote about how it went and your answer on running it again. Those two are the only things no order line can rebuild, and an edit that was not about them now leaves them alone.
  • FixedThe AI counter read one question higher than you had actually spent, so the box locked with "You are out of questions" while one was still left, until you reloaded the page.
  • FixedWhen the assistant declined a question, the reply you saw was not the reply that was saved: the thread kept an empty answer, and the next question was asked as if nothing had been said.
  • FixedOpening a persona from another workspace you belong to showed that persona surrounded by this workspace's numbers, so its coverage read as zero and the worklist told you to shoot work that already exists. A persona now opens in the workspace it belongs to.

The connector fence reaches the whole database

0.183.0 · Sep 15, 2026

  • FixedA Claude connector approved for one workspace is meant to be able to do exactly one thing: answer through the tools you gave it. The fence that enforces that covered the table rules but not the database functions that sit behind them, so a connector could also read its owner's own creator applications and saved briefings, and act as them: accept a team invite or create a workspace. It now stops at every door, including the one the ops dashboard is built on.

A gift waits for its audience

0.182.1 · Sep 15, 2026

  • FixedA new gift went live before the tiers you picked were attached, and a gift with no tiers means every active creator. In that gap, or for good if attaching the tiers failed, a gift meant for one tier could go to your whole roster: a draft order in your shop and a claim email each, none of it reversible. A gift now starts only once it knows who it is for.

Access ends when access ends

0.182.0 · Sep 15, 2026

  • FixedRemoving someone from a workspace did not end what their Claude connector could reach. The grant was only stopped by an admin revoking it by hand, so an ex-colleague kept reading your markets, personas, briefs and board, and kept writing if the connection allowed it. Membership is now part of the check, so access stops the moment you remove them.
  • FixedAn admin could add a second owner, and an owner is a role nobody can demote or remove. Adding a member now refuses the owner role, the same way changing and removing one always did.
  • FixedAny member could disconnect an integration and destroy its stored access token, which is exactly what the admin-only disconnect exists to prevent. Deleting a connection is now admin-only like the rest of it.
  • FixedA persona could be linked to another workspace's market, and a brief to another workspace's persona, which made that workspace's details readable from the wrong side. The database now refuses any link that crosses a workspace, whoever writes it.

Two doors the database linter found

0.181.2 · Sep 15, 2026

  • FixedThe nightly order sync could be triggered by anyone over the API. Three of the four scheduled jobs were already closed off and this one had been missed. The schedule itself is untouched.
  • ImprovedThe rule that checks the shape of signup page perks now runs with a fixed search path, like every other function in the database.

A failed payout is not a new sale

0.181.1 · Sep 15, 2026

  • FixedWhen a PayPal payout was turned down, every order in it told the creator all over again that they had just earned it, weeks after the sale and at the moment they were not paid. A reversal no longer reads as a fresh commission.
  • FixedThe creator portal printed how far someone was from the Top 3 with the number missing whenever two creators were tied or the workspace had fewer than three. It now always has a number, and in a small workspace that number is zero.

Three saves that quietly went nowhere

0.181.0 · Sep 15, 2026

  • FixedTurning off both the country restriction and the country question on a signup page in one save was always refused, and took the headline and everything else queued behind it down with it. The restriction is now lifted first, so the pair is accepted.
  • FixedA cell on the content board that the server turned down kept showing the value you typed, with no error. It now snaps back to what is actually stored, which is also what Export CSV reads.
  • FixedIf an order was updated while the nightly Shopify sync was walking through its pages, it could arrive twice in one batch and the database threw the entire batch away, including every other order in it. Duplicates are now collapsed before the write.

Totals that count everything

0.180.1 · Sep 15, 2026

  • FixedPending payout and Paid to date on the affiliate analytics page, and the per-method creator counts on payout methods, were read without paging. Past a thousand affiliates the database returns a short answer with no error, so the euro amounts would have quietly come out too low. Both now read every row.
  • FixedThe nightly Shopify sync read only the first fifty line items of an order and dropped the rest for good, so a wholesale order with more than fifty products under-reported its units, revenue and cost forever. Orders that big are now followed up until every line is in.