Skip to content
Language EN
Request a quote
Menu

Changelog

What we shipped, and when

A dated log per module, taken from the repositories themselves.

The most useful thing a smaller supplier can show is not a feature list — it is that the list keeps growing. This page exists so you can check that yourself, including the quarters where it slows down.

How this list is kept

Entries are written from commit history and release notes, not from a content calendar. Where a date exists, it is the date the work landed. Where it does not — a WordPress plugin ships as a version, not as a day — the version number stands in its place, because a date invented to look tidier is still an invented date.

The list is not exhaustive. Bug fixes, refactors and internal tooling are left out unless they change something you would notice. What is here is what a customer would recognise as new.

Commerce

The online shop, its catalogue, its warehouse and everything that leaves the door.

  1. Intra-Community VAT: reverse charge, OSS and VIES

    Cross-border B2B sales apply reverse charge, OSS thresholds are followed per country, and a VAT number is checked against VIES before the invoice is issued rather than after an accountant notices.

  2. Goods receipt, with weighted average cost

    Stock now carries a cost, not only a count. Margin reports stop being an estimate the moment the same product arrives twice at two prices.

  3. Paying in instalments, and shipping in instalments

    Part payment and partial dispatch on the same order, each with its own document, because in B2B the two rarely happen on the same day.

  4. Locker and pick-up point delivery

    Easybox and pick-up points chosen at checkout from the carrier’s live list, with the chosen point travelling through to the label.

  5. eMAG Marketplace

    Catalogue, stock and orders synchronised with the marketplace from the same product records that feed the shop — not a second catalogue to keep in step.

  6. Gift cards, product questions, comparison, and editing an order after it is placed

    Four things buyers ask for constantly, and one — editing after placement — that support teams ask for even more often.

  7. GDPR for buyers: a copy of the data, or anonymisation

    A buyer’s request is answered from the shop admin, by a person who does not need a developer and does not need to touch the database.

  8. Several warehouses, and prices per customer group

    Stock per location, and B2B group pricing on top of the same catalogue, so a distributor and a walk-in buyer see different numbers on the same page.

  9. Payment providers and refunds through the gateway

    PayU and Twispay, payment notifications verified against the provider, and refunds issued through the gateway instead of by bank transfer and a note in a spreadsheet.

  10. Couriers: Sameday and Cargus

    Labels, tracking and status back into the order, from the systems Romanian shops actually ship with.

  11. Reviews, wishlists and back-in-stock alerts

    Product reviews with a Google review feed, plus the two smallest features that recover the most abandoned intent.

  12. Feeds: Google Merchant, Meta, Compari.ro and Price.ro

    Four channels generated from the same product row, so a price change does not need to be repeated in four places.

  13. Landing pages generated from filters

    A filter combination that people actually search for becomes an indexable page, with its own rules for what may be indexed and what may not.

  14. Catalogue import from CSV and XLSX, through a queue

    With a preview before anything is written, and a queue so a ten-thousand-row file does not depend on a browser tab staying open.

Content and websites

The CMS, the page builder and everything that reaches a public page.

  1. Automations: when X, do Y

    Rules built in the panel — when a page is published, when a form arrives, when a scan finishes — without a developer writing a job for each one.

  2. A conversational assistant in the panel

    It works over the same MCP tools an external agent would use, which is why it cannot do anything a person could not do through the interface.

  3. Translation at scale

    The backlog per language, what has gone stale since the source changed, and bulk translation — the three things that decide whether a second language survives its first month.

  4. Releases: several pages published at once

    A campaign lands as one act, and rolls back as one act, instead of eleven pages published in an order nobody agreed on.

  5. Fields and block types defined per site

    Your content model can differ from everyone else’s without becoming a fork that nobody can upgrade.

  6. Strict CSP with nonce, and GraphQL next to REST

    The security header that actually stops injected scripts, and a second read API with a capped query cost, contract-checked against REST.

  7. A/B tests on a block, with a verdict

    Two versions of the same section, measured on the public site, and a result that says which one won rather than leaving it to taste.

  8. Analytics without cookies, with Web Vitals

    Enough to see what people read and how fast the page was for them, without a consent wall in front of the measurement.

  9. Backups off the server, to any S3-compatible store

    A backup that lives on the same machine as the site is a backup for the wrong kind of accident.

  10. Site cloning, and WordPress import

    A second client in minutes rather than from scratch; and WXR, media and redirects brought over from WordPress in one pass.

  11. Visual editing, next to the real page

    Blocks edited beside the page they produce, not in a form that only resembles it.

  12. An MCP server: the CMS as a tool for an agent

    An external agent can draft, translate and prepare content through the same guarded operations a person has. It cannot publish.

  13. Approval flow, edit locking, recycle bin, restore

    The four things a team of more than two people needs before the first accident, not after it.

  14. llms.txt and Markdown mirrors of every page

    So a model that quotes your site quotes what the page says, rather than what it managed to scrape out of the layout.

CRM and sales

From the first contact to the signed contract.

  1. The agent’s “Today” screen, and prospecting cadences

    One screen with what is overdue, what is scheduled and who has not been called — and cadences that make sure a touched lead always has a next action, instead of a reminder somebody forgot to set.

  2. The lead card: a company’s whole history on one screen

    Calls, emails, offers, contracts and notes in one place, so nobody opens four tabs to answer one question.

  3. Four lead states, and a pipeline that only counts offers

    A pipeline inflated with hopes is a pipeline nobody trusts. Only what has an offer on it counts as pipeline.

  4. Communication history: every email sent stays on the company

    Including what was actually delivered and the full message, not just a line saying that something was sent.

  5. Import, duplicate detection and custom fields

    A large prospect base can be brought in without importing the same company three times under three spellings.

  6. Source attribution, capture through the API, and ROI per client

    Which channel produced a client, and what that client was worth afterwards — the two halves of the same question, finally in the same system.

Invoicing and finance

Documents, payments and what they mean for the month.

  1. Oblio: issued documents mirrored into the internal ledger

    Read-only, deliberately: the platform never writes into the accounting account, so an import can never damage the books it is reading.

  2. Payments recorded in Oblio update the invoice status here

    The question “has it been paid?” stops having two answers depending on which screen you look at.

  3. A daily digest of what falls due

    Scheduled, so the first person who learns about an overdue invoice is not the client.

  4. VAT, real costs and profitability per client

    Revenue per client was always visible. Cost per client was the half that made the number mean something.

  5. Expiry alerts for contracts and hosting, on thresholds

    At thirty days, at seven, and on the day — for the two things that expire quietly and are noticed loudly.

The platform itself

Security, languages and the parts every module stands on.

  1. Audit log, and permissions by capability

    Who changed what, and a permission model where access is granted to an ability rather than to a job title.

  2. Two-factor sign-in, an integration API, and rehearsed backups

    Backups are verified and restored on a schedule against a separate database, because most organisations discover their backups do not restore on the day they need them.

  3. Documents keep the language they were issued in

    An offer sent in German is still in German when it is reprinted a year later, whatever language the panel is set to that day.

  4. Statuses became technical keys, shown translated

    A status stored as a translated word breaks the moment somebody switches language. Stored as a key, it survives.

  5. A Romanian geographic nomenclature, with address autocomplete

    County, city and street completed from a real list, so addresses arrive in a shape that carriers accept.

Valenys Accessibility

The scanner, the widget, the client portal and the compliance documents.

  1. We ran the scanner on ourselves, and fixed what it found

    The accessibility platform had its own WCAG issues. They were remediated, and the documentation and dashboards became multilingual in the same pass — a scanner that is not accessible itself is a difficult thing to sell, and a worse thing to defend.

  2. Public documentation, a proper 404, and a partner-domain fix

    Documentation readable without an account, and a bug where a partner’s domain resolved to the wrong tenant.

  3. Baseline: audit engine, widget, client portal, partner panel

    Six phases delivered together: scanning with axe-core and a real browser, the visitor widget, the client portal with reports and badge, and the white-label panel for agencies.

Valenys Chatbot

The WordPress plugin and the licence server behind it. Versions, not dates — a plugin ships as a number.

  1. Licence enforced in the backend, not only in the interface

    An unlicensed installation stops answering at the API, not just in the admin screen — including the instant greeting path, which was the one way around it.

  2. Indexing with no page limit, on any plan

    The queue processes in batches with retries and recovers from stuck locks, so a large site on modest hosting finishes indexing instead of timing out halfway.

  3. 55 interface languages, right-to-left included

    The widget interface is translated once per language and then cached, and the bot answers in the language the visitor picked. Arabic, Hebrew, Persian and Urdu switch the widget to right-to-left.

  4. WPML and Polylang: the widget follows the page language

    Content is indexed separately per language and retrieval is routed per language, so an English page does not answer from Romanian content.

  5. Premium voice, and webhooks for captured leads

    Text-to-speech through ElevenLabs or Google Cloud, with a browser fallback; and captured contacts posted to Zapier, Make or a CRM endpoint directly.

  6. Licensing that is not tied to WordPress

    Every activated domain records its platform — WordPress, OpenCart, PrestaShop, Magento, Shopify or a custom build — so the modules that follow do not need a second licence server.

  7. Rate limits on the public endpoints, and no error disclosure

    Lead and feedback endpoints are rate-limited per IP, and production stops printing PHP warnings into public responses.

If something here is what you need, say so

Half of this list exists because a client asked for it and the request turned out to be general.