Your privacy choices

Necessary

Remembers your theme and your choice here. Always on.

Analytics (Google Analytics 4)

Shows us which pages are used, so we can improve the site. Off until you accept.

Advertising signals

Not used on this site. The advertising signals stay denied.

IMCode
EN
Request a quote

Custom web development · Bespoke

Bespoke solutions, cut to your business

When a presentation website is not enough, we build the missing piece: an integration, a plugin, an application. Each one starts from what the client needs, like a suit cut to measure, not taken off the rack.

What bespoke web development means

We write code for your specific need: WordPress and WooCommerce plugins, integrations with ERPs, couriers and other services, APIs, product imports and web applications. IMCode packages are made in series, the same kind of site in three sizes. Bespoke solutions start from a concrete process in your business, which a ready-made plugin covers halfway or not at all.

Ready-made plugin or service

  • You adapt your process to what it can do.
  • Missing functions are solved with workarounds or one more plugin.

Bespoke solution

  • We start from your process and build only what it needs.
  • It connects directly to the systems you already use.

Library of works

Below are real works: projects for clients and a few tools we use ourselves. Each card says what had to be solved and what we built. Client names do not appear.

  • ERP and external service integrations

    Stock and price synced with the ERP

    The store had to follow the stock and price in the client’s ERP, with no manual updates.

    A PHP script runs every 5 minutes. It reads stock and price from the ERP’s web service and writes them to WooCommerce, including each variation of variable products. If the export comes back empty, the script does not set the stock to zero. The cache is cleared only for products that changed, and when the ERP fails to respond several checks in a row, an email goes out.

    PHP · SOAP · WooCommerce · cron

  • ERP and external service integrations

    Orders sent to an external API, with automatic retry

    Sending orders to an external API lived in the theme and could break with a design change.

    We moved the sending into a plugin. The form submits the order, and if the API does not respond, the plugin retries on its own every 5 minutes, up to three times. Pickup points are cached by county, and the access credentials left the code and now sit in configuration constants.

    WordPress · Contact Form 7 · REST API

  • ERP and external service integrations

    Bookings sent to an external booking engine

    A hotel site had to send the visitor to an externally hosted booking engine, with the search already filled in.

    A plugin takes over the search form and the booking buttons from the hotel plugin. It converts the dates and the number of guests to the engine’s format, then opens the booking in a new tab, in the language of the page.

    WordPress · WPML

  • ERP and external service integrations

    Localities and postal codes with courier IDs

    A Romanian checkout needs localities and postal codes that the couriers accept.

    An API with localities and postal codes. Next to each locality are the IDs used by FanCourier, Cargus and Sameday and the extra-kilometer values.

    API · data

  • Catalog, imports and feeds

    Online catalog with no public price

    A distributor wanted an online catalog, not a store, and the price was not to appear anywhere in the public output.

    A plugin removes the price from the HTML, from JSON-LD, from the REST API and from the Store API. An importer started from the command line reads the distributor’s Excel file. It can do a dry run first and can be resumed without duplicating products.

    WordPress · WooCommerce · WP-CLI

  • Catalog, imports and feeds

    Product feed monitor

    A supplier’s XML or CSV feed changes often, and the client wanted to see what changed.

    Two PHP applications compare the feed product by product at a fixed interval. They keep the history of price and stock changes, have a control panel and send an email when a change crosses a threshold.

    PHP · cron

  • Store: checkout, products, configurators

    Checkout for private persons or companies

    Romanian stores need the buyer to choose private person or company and give valid tax details.

    A WooCommerce plugin validates the CNP, CUI and IBAN. Localities come from a list by county, with a free field for addresses abroad.

    WooCommerce

  • Store: checkout, products, configurators

    New and resealed products, linked together

    The store sells the same model new and resealed, with wear grades, and wanted the two linked, not duplicated.

    A WooCommerce module links the new product to the resealed one through a shared model. The wear grade becomes a variation. The page shows the saving against the new product, and when that one goes out of stock, the canonical URL switches.

    WooCommerce · REST · Rank Math

  • Store: checkout, products, configurators

    Resealed units created from an existing product

    A store sold one-off resealed units next to the original product, hidden from the catalog, with each unit’s defects written out.

    An admin assistant creates the unit from an existing product or variation: it copies the title, description and images and links the unit to the parent product. The unit does not appear in the shop, in search or among related products. Its defects are written on the parent’s page.

    WooCommerce · WoodMart

  • Store: checkout, products, configurators

    3D configurator for custom packaging

    Customers customize boxes on the product page, then add to cart or ask for a quote.

    The 3D model shows the color, text and image on each face of the box. The price is recalculated on the server. The team gets a production panel, with an A4 sheet and a ZIP archive.

    WooCommerce · React Three Fiber

  • Platforms and sites with custom logic

    Custom framework for a site with many content types

    A professional site had 12 content types, each with its own fields, filters, import and administration.

    A plugin with an ORM, a router, a versioned schema and a filter engine, all written from scratch. The data sits in its own tables, not in posts, and the plugin exposes 52 REST endpoints.

    PHP · WordPress

  • Platforms and sites with custom logic

    Static site with its own generator

    An events service wanted a fast site, with packages that differ in what is on the menu as well as in price.

    Pages are generated from Node scripts, with no framework. The package selector is rendered on the server, and every page also has a Markdown and a JSON version. Google Analytics starts only after consent. The project has five test suites.

    Node · HTML · JSON-LD

  • Platforms and sites with custom logic

    Course plugin with Zoom sessions and payment in installments

    A course school wanted more than a list: live and video courses sold through WooCommerce, with editions per city.

    Each edition has its own dates. Zoom sessions have a personal link for each buyer, and video courses are watched from a “my courses” page. Payment can be made in installments, with a schedule and reminders, and the early bird discount is created automatically as a coupon.

    WordPress · WooCommerce · Zoom · Bunny CDN

  • Platforms and sites with custom logic

    Offers that remove themselves from the site

    A site publishes new offers every month, and the old ones had to disappear.

    Each offer has an expiry date and linked procedures. A cron job sets expired offers to draft and deletes the products created automatically for them.

    WordPress · WooCommerce · cron

  • AI tools

    Product import from batches, with AI and human approval

    A store of resealed products received CSV batches and wanted product pages in Romanian, without writing each product by hand.

    An application imports the batches and fetches the product data. In a single call, an AI model translates into Romanian and suggests the condition and a price. An operator approves each product before it reaches the store.

    Next.js · Supabase · OpenRouter · WooCommerce

  • AI tools

    Topic map for a podcast

    A podcast site imports episodes, transcripts and cover images from an RSS feed and shows them by topic.

    A plugin pulls episodes from the RSS feed on a schedule and draws a topic map from tags and transcripts. An AI assistant suggests merging duplicate topics, and a person approves them from the admin.

    WordPress · D3 · Gemini

  • Administration and maintenance

    Monitoring database size

    The database of a WooCommerce store kept growing and nobody noticed.

    A plugin checks the database size every day and emails the five largest tables. A second one stops filter counts from being written to the cache when the request comes with filter parameters.

    WordPress · mu-plugin

  • Interface and on-page effects

    Background video from Bunny Stream in Elementor

    A company site wanted a looping video in the first section, without slowing down the load.

    Only the poster shows on load, and the video starts once the page is idle. It stops when off screen and respects the reduced-motion and data-saver settings.

    Elementor · Bunny Stream

  • Administration and maintenance

    Redirects from an old sitemap

    In a migration, old URLs that no longer exist had to be sent to the new ones.

    A local tool reads the old sitemap and a CSV from Search Console, checks the response codes and matches the dead URLs against the new sitemap. It outputs a CSV for Rank Math, Yoast or Redirection.

    Node · TypeScript

  • Catalog, imports and feeds

    Feeds from several suppliers, translated with AI

    An auto parts store received products from several suppliers, in different feeds, and needed product pages in Romanian.

    One script reads each feed: a CSV in Windows-1250 and two XML files, one of which sometimes had illegal control characters. The scripts convert the text to UTF-8 and remove the characters that break the parser. A translator calls OpenAI with a glossary of automotive technical terms, so that terms like “coilover” or “front lip” get translated into Romanian instead of staying in English. If the translation of a product fails, the product is exported with the original text and retried on the next run.

    PHP · OpenAI · XML and CSV feeds

  • Catalog, imports and feeds

    Feeding table that turns into cards on a phone

    Each product’s feeding table was stored as JSON and had to show on the product page.

    A small plugin adds a “Feeding table” tab and reads the product’s JSON field. On desktop it is a full table, on a tablet it scrolls horizontally, and on a phone each row becomes a card. It works without JavaScript, with CSS only, and uses the color variables of the WoodMart theme.

    WordPress · WoodMart · CSS

  • Store: checkout, products, configurators

    Custom stock statuses: “Request a quote” and “Supplier stock”

    A store had products sold on request or from the supplier’s stock, and WooCommerce knows only three stock statuses.

    A module in the child theme adds the two statuses and treats them as “in stock”, otherwise the product would vanish from the store. “Request a quote” stops purchasing and shows a button that opens the quote form. WoodMart has the standard statuses written directly into its code, so we rewrote the product grid, the stock filter, the admin column and the estimated delivery conditions to recognize them.

    WooCommerce · WoodMart · PHP

  • Store: checkout, products, configurators

    VAT classes inferred from the product category

    A store’s ERP sends the price with VAT included, but not the rate, and food and the other products have different rates.

    A script put the reduced-rate class on the food categories and the standard class on the other products, variations included. It also defined the rate on the new class, which had none until then. Old orders were left untouched, because the invoice is issued from the ERP, and the script can be rerun for new products.

    WooCommerce · PHP

  • Store: checkout, products, configurators

    Product bundles that enter the cart as separate lines

    A store wanted “models” that group several products, and the order had to look like one with products bought separately, for invoicing, courier and feeds.

    A “model” is a presentation content type, not a product for sale. When it is added to the cart, the plugin creates a real line for each component, tied together by a shared identifier, and stock stays the one in WooCommerce. The bundle discount and the customization cost are cart fees calculated on the server, not coupons.

    WooCommerce · WoodMart · PHP

  • Store: checkout, products, configurators

    Progress bar for gifts in the cart

    A store gives gifts at cart-value thresholds, and the buyer had no way to see how much was left to add for the next one.

    A bar in the cart, in the mini-cart and at checkout shows the steps: locked, next, earned. The threshold is measured on the subtotal after coupons, without shipping, the same value the gifts plugin uses, so the bar and the gift award show the same thing. Texts are in Romanian and English.

    WooCommerce · Free Gifts for WooCommerce · WPML

  • Store: checkout, products, configurators

    AWB files per order, with protected download

    Order AWB (shipping label) files sat in an upload directory that could be browsed and had no access check.

    On first use, the plugin puts an .htaccess and an index.php in the directory that block direct access and script execution. Files download through a link with a nonce, after checking whether the requester is an administrator or the owner of the order. The order list has an “AWB files” column, and the order screen has a button that copies the link.

    WooCommerce · PHP

  • ERP and external service integrations

    Prices in two currencies, kept in step with the daily rate

    A store with WPML Multicurrency sold in dollars and Peruvian soles, and the two prices had to stay in step with the exchange rate.

    A plugin runs daily at 08:00, takes the rate from a public API and updates the prices of simple and variable products. The admin keeps the last five runs. On variable products the price in the second currency shows as a range, and an email goes out on a change of rate or price.

    WooCommerce · WPML Multicurrency · cron

  • Platforms and sites with custom logic

    Events, schedule and PDF menu on a guesthouse site

    A guesthouse with events needed event pages with details, schedule, gallery and a PDF menu, plus rooms grouped by type.

    A plugin adds the “event” type and shortcodes for details, schedule, gallery, extras and video. The PDF menu, which can be tens of MB, loads only on click. Rooms have two taxonomies, building type and room class. The events from the old site were moved, and permanent redirects keep the old URLs.

    WordPress · Elementor · Rank Math

  • Platforms and sites with custom logic

    Video courses with access through a code sent by email

    An academy wanted video courses sold through WooCommerce, which buyers who were not logged in could also open.

    Each lesson has its video on Bunny CDN. After payment, the buyer gets an email with the link to the “My courses” page. Someone who is not logged in types their email address, receives a 6-digit code valid for 10 minutes and sees, for 24 hours, the courses from the orders of that address. The administrator can also give access to a list of addresses without an order, permanently or for a number of days.

    WordPress · WooCommerce · Bunny CDN

  • Platforms and sites with custom logic

    Zoom sessions with reminders and recordings kept on the CDN

    Live courses had Zoom sessions over several days, and the links to Zoom recordings expire.

    Sessions are created through the Zoom API, with server-to-server authentication, and reminders run from a cron job. Each buyer sees only the sessions in the package they bought. The admin has a participants table with a resend button. Recordings are copied to Bunny CDN and play in a player of our own.

    WordPress · WooCommerce · Zoom API · Bunny CDN

  • Platforms and sites with custom logic

    Content type that behaves like a page in WoodMart

    A new content type, built in Elementor, was displayed like a blog post, with title, author and featured image on top, not like a page.

    The WoodMart theme has its “page” type checks written directly into the code, with no filters. We copied the page template for the new type and added the type to the theme’s metabox through Reflection, because its list is a private property. All the code sits in the child theme, with no changes to the theme files.

    WordPress · Elementor · WoodMart

  • AI tools

    Assistant that writes the content of a new course

    Every new course has many text fields to fill in: description, benefits, frequently asked questions and others.

    An admin assistant takes the title, course type, city and trainer and asks an OpenAI model to write the description, the benefits, what the student learns, the frequently asked questions and the target audience. The result lands in the course fields.

    WordPress · OpenAI

  • AI tools

    Episode covers made from speakers’ photos

    Each podcast episode needed a square cover in the same style, starting from the speaker’s photo.

    A Python script sends each photo to Gemini, with a prompt that fixes the 1:1 format, asks to keep the facial features and forbids added text, logos or objects. The result is a 1024 × 1024 PNG, and the covers are then set as the featured image of the episodes. The safety filter still rejects some photos, mostly very small ones, and those are retried with another photo of the same person.

    Python · Gemini API · WordPress

  • Administration and maintenance

    Course cancellation with an email to all buyers

    When a course is canceled, everyone who bought it has to be told.

    On the course screen, a metabox has a field for the reason and a “Send cancellation email” button. The plugin looks up the course’s completed or processing orders, removes duplicate addresses and sends the message in the WooCommerce email template, with the reason if one was filled in.

    WordPress · WooCommerce

  • Administration and maintenance

    Script for bulk shrinking of media library images

    The images in the media library of a WordPress site had to be made smaller in bulk, with no external dependencies.

    A single PHP file, protected with a key, scans the upload directory and skips WordPress thumbnails. It recompresses JPEGs and makes a WebP next to each PNG, without deleting the original. It has a dry run and works in batches, to stay within the PHP maximum execution time. A log shows how much was saved on each image.

    PHP · GD · AJAX

  • Administration and maintenance

    Attribute terms repaired in a store with 15 languages

    In a WPML store with 15 languages, some product attributes had ended up in the wrong translation group.

    We scanned the whole catalog, linked the wrong German terms to their translation group and deleted the orphan terms. The final scan gave zero orphans and zero differences from the backup. A term that looked like an orphan but had the right language was left as it was.

    WPML · WooCommerce

  • Interface and on-page effects

    Mega menu on a phone, with level-by-level drilldown

    A category mega menu, built as a shortcode, did not show on a phone, because WoodMart hides the dropdown content in the mobile panel.

    On a phone, the shortcode shows a list that drills down by levels, with a slide animation. It takes its data from the desktop panels, which are already in the page, so it does not repeat the category queries. Subcategories open as an accordion, to cut down on taps.

    WoodMart · JavaScript · WooCommerce

  • Interface and on-page effects

    Canvas animations for the hero section, pasted into Elementor

    A consulting site wanted animated backgrounds on the hero section that an editor could add without writing code.

    Three canvas animations, “Capital Flow”, “Network Connections” and “Layered Depth”. Each comes in two files: a preview page and a file to paste into an Elementor HTML widget. They use the brand palette and have four alternative palettes. A demo page shows all of them, for client approval.

    Elementor · Canvas · JavaScript

  • Interface and on-page effects

    Section background effects, controlled with CSS classes

    A company site wanted background effects on sections, applied directly from Elementor.

    A CSS file and a JS file in the child theme offer the effects as CSS classes that the editor types into Elementor: an aurora with a dot grid, a spotlight that follows the cursor, an animated gradient line and a scrolling text band.

    Elementor · CSS · JavaScript

  • Interface and on-page effects

    Offer window that closed by itself

    On a product page, the “Buy in installments” window closed by itself after about 2 seconds.

    The theme calls the close-any-popup function on every slide change, and two carousels with autoplay run on the page. We wrapped the theme function that makes the call, active only while the call lasts and only if a popup is open. This way, closing with the X, with ESC and by clicking the background still works.

    JavaScript · WoodMart

  • AI tools

    Skin questionnaire with selfie analysis and product recommendations

    A dermatological cosmetics brand wanted a guided questionnaire about skin conditions that ends with recommended products.

    A WordPress plugin with modules that can be turned on or off in the settings. It has a parent questionnaire and one for each condition, and answers pass from one questionnaire to another, with a short expiry time. The selfie analysis runs through a REST endpoint: it asks for the visitor’s consent, checks the age and the file, limits the requests and calls an AI model. A product compatibility matrix is shown through a shortcode.

    WordPress · WooCommerce · REST · AI API

  • ERP and external service integrations

    Questionnaire result sent to the CRM, only with consent

    Questionnaire results had to reach the brand’s CRM, but only for people who accept marketing.

    The contact is created in TheMarketer only after the visitor ticks the marketing consent, with double opt-in confirmation. Each questionnaire result gets a tag, and failed submissions are retried from a cron job.

    WordPress · TheMarketer API · cron

  • Platforms and sites with custom logic

    Before/after gallery with a separate upload panel

    A clinic wanted before/after case galleries that the team could upload in batches, order and correct without logging into WordPress.

    A WordPress plugin displays the gallery, with progressive loading and swipe. A separate PHP panel takes ZIPs or folders, optimizes the photos and matches them with the procedure. The team moves cases between procedures, deletes them or orders them by dragging. A re-uploaded case replaces the old set only after the new one has saved completely, and the page cache is cleared and warms itself up again.

    WordPress · Elementor · PHP

  • Catalog, imports and feeds

    PubMed export to XML for WordPress

    PubMed records had to be turned into an XML file that WordPress can import, with authors matched correctly to their affiliations.

    The parser reads seven more fields, including status, dates and ISSN. A new routine groups the author lines with the affiliation lines and splits the names. The XML generator and the mapping and preview pages use the new fields.

    PHP · XML · PubMed

What we work with

We work mostly with WordPress and WooCommerce, with plugins and integrations written from scratch. For separate applications we use PHP, Node and TypeScript, React and Next.js. AI features call the APIs of outside providers; we do not train our own models.

As with IMCode sites, AI helps with development and a person checks the result before delivery.

How a project starts

  1. 01You send a request for a quote
  2. 02You get the quote
  3. 03We build and deliver

You send a request for a quote

Tell us which process you want to cover, what you use now and where it gets stuck. A short brief is enough.

You get the quote

Bespoke development has no list price. The price and the deadline come in the quote, after we read the brief.

We build and deliver

We build the piece and connect it to your systems. A person checks the result before we hand it over.

IMCode package or bespoke solution?

Your situationWhat fits
You need a presentation website or a page for one offerIMCode packages
Your site also needs an integration, a plugin or logic you cannot find ready-madeBespoke solution
You want an automatic process between your site, ERP, courier or another serviceBespoke solution
You have a problem, but not a specificationTell us the problem and we answer which option fits

Questions about bespoke solutions

What is custom web development?

We write code made for your need, instead of starting from a template: WordPress and WooCommerce plugins, integrations, APIs, imports and web applications.

How much does a bespoke solution cost?

It has no list price. You send a request for a quote, and the price and the deadline come in the quote, after we read the brief.

How is it different from a ready-made plugin?

A ready-made plugin comes with functions designed for many users. A bespoke solution contains only what your process asks for and connects to the systems you use.

Do you use AI?

Yes, as a development tool, and a person checks the result. When the solution includes AI functions, we call the APIs of outside providers; we do not use models of our own.

Can I see the clients’ names in the library?

We do not publish client names. What we can show publicly is in the library, without names.

Next

Send a request for a quote or see the packages and pricing.

Ready to start?

Describe the site you need and we reply with a quote.