Bifröst Development Services

We build software that actually works.

If there's something at your business that someone keeps having to do by hand — emails, orders, stock, reports, juggling between systems — we'll build the software that handles it. We build it, ship it, and stick around to keep it running.

AI automationConnecting business systemsDrop-ship retailer integrationsInternal web toolsAutomated reportingBackground servicesCustom platformsReliable hostingDesktop tools for staff

Selected work

Things we've built that quietly run themselves.

A selection of recent work. Each one started life as a manual process, a missing system, or a daily chore someone wished they didn't have to do. They're all in production today and looking after themselves.

AI doing the routine stuff

AI Email Assistant

Routine customer and supplier emails get answered automatically.

Order status, stock queries, invoice copies, tracking updates — the things people ask every day. The assistant reads each email, finds the answer in the business systems, and writes back. Anything it isn't sure about gets left for a person.

n8nOllamaAnthropic Claude (vision)TypeScriptExcelJS

Selling through major retailers

Most of the big UK retailers want suppliers to plug into their own portal or EDI system. Each one is different, and most of the work is fiddly little rules nobody writes down. We've built the full loop — orders in, stock out, despatch confirmations, invoicing — for several of them.

Argos

Argos orders flow into the business automatically.

New orders are picked up from Argos every 15 minutes and turned into sales orders in the business systems. Stock levels go back to Argos on their own cycle, and despatch confirmations are filed as orders go out the door. Nobody has to log in to the supplier portal.

BunTypeScriptSFTP/SSH2DockerNodemailer

Dunelm

Dunelm orders land in the business systems automatically.

Dunelm's supplier portal is checked continuously. New orders are matched against the right products, the right carriers, and accepted back to Dunelm — without anyone needing to look at the portal.

TypeScriptNode.jsDocker

Robert Dyas

Robert Dyas orders, despatch, and invoicing — all hands-off.

New orders come in, get matched against stock, and either go straight to fulfilment, get backordered with a promised date, or get cancelled based on supply ETA. The system also handles despatch confirmations and invoicing back to Robert Dyas.

Node.jsDockerNodemailer

Next

Next orders are picked up and acknowledged in under two minutes.

Stock levels go to Next four times a day. New orders coming back the other way are picked up within two minutes and acknowledged immediately, with despatch confirmations following as goods leave the warehouse.

Node.jsDockerExpress

Daily ERP chores, done automatically

Every business has a list of tasks that someone has to remember to do — clean up a record, balance a workload, run a report. Boring, repetitive, and the kind of thing that gets forgotten on busy days. These small services do those jobs in the background and stop being thought about.

Stock Allocation

New orders become pick-ready automatically.

Used to be a daily 'remember to run the allocation job' problem. Now new orders become available to pick the moment stock is available — no one has to remember anything.

Node.jsTypeScriptDocker

Scrap Bin Cleaner

Discontinued products stop cluttering up reports.

Old, discontinued product lines accumulate small amounts of phantom stock over time, which polluted reports and search results. A nightly job clears them out.

Node.jsDocker

Pick Rule Reset

Pick tasks stay matched to who's actually working.

If a picker leaves early or switches roles mid-shift, their pick assignments would stay stuck to them and gum up the warehouse. A reset job four times a day re-balances assignments so the right work goes to the right people.

Node.jsDocker

Container Tracking

Live shipment status, visible inside the business systems.

The buying team can see exactly where overseas shipments are — current location, ETA, customs status, event history — without leaving the business systems. Used to mean tabbing through carrier websites; now it's just there.

Node.jsTypeScriptDocker

Currency Rate Sync

Exchange rates update themselves every morning.

Trading in EUR and USD used to mean someone looking up the day's rate and typing it in. Now the rate updates itself, on whatever cadence the rate provider publishes.

Node.jsDocker

Due-In Report

Tomorrow's arrivals, in your inbox at 9 a.m.

A formatted Excel of upcoming product arrivals — grouped by container and promised delivery date — lands in the relevant inboxes every weekday at 09:00. No one has to log in and run an export.

Node.jsTypeScriptDockerSheetJS

Delivery Status Sync

Customer service sees the same delivery status the customer sees.

Every active courier consignment is checked on a regular cycle, with delivery updates written straight into the business systems. Orders get marked as delivered the moment the courier confirms — so customer-services staff don't have to switch between the system and the courier site to answer a simple question.

Node.jsTypeScriptDocker

Warehouse tools

Picker Sign-In

Warehouse staff get pick tasks only when they're on shift.

When a picker signs in at the warehouse kiosk, the system instantly knows they're available. When they sign out, their tasks stop being assigned. A nightly job signs out anyone who forgot.

TypeScriptExpressDocker

Attendance & Punctuality Reports

Weekly and monthly attendance reports, sent automatically.

Mondays and the first of each month, a formatted Excel attendance report lands in management's inbox. Total hours, missed sign-ins, late arrivals, and exception highlighting for staff who are consistently late.

TypeScriptExpressExcelJSNodemailerDocker

Customer-facing platforms

Trade Customer Portal

Trade customers serve themselves instead of calling staff.

Trade customers used to ring in for the same things every day: order status, invoice copies, address changes. The portal lets them do all that themselves and place new orders, with the data kept in sync with the business systems.

Next.jsTypeScriptPostgreSQLPrismaRedisTailwind CSSVercel

Product Image Manager

Thousands of product images, finally organised.

Product images had spread across folders and SharePoint with no clear ownership. Sending the right images to an agency took half a day, and nobody could confidently say which file belonged to which variant. The tool fixed that.

Next.jsTypeScriptAzure Blob StoragePrismaMySQLDocker

The bit underneath

The unglamorous services that make everything else work — the parts you don't notice until they break.

Image Resize Service

Image resizing handled in the background.

Every product image needs to exist at several sizes for different channels. This service handles all of that in bulk or on demand, with output going straight to cloud storage. It reports its own status so we know it's running.

Node.jsExpressAzure Blob StorageDocker

Smart Cache Layer

Faster, gentler access to the underlying business systems.

Lots of services were asking the same questions of the main business system all day, slowing it down. This sits in front of it, remembers recent answers, and retries automatically if something fails. Took a meaningful chunk of load off everything underneath.

Node.jsExpressRedisDocker

Outage Detection

Outages get noticed in seconds, not hours.

Every running service checks in with our monitoring. If one goes quiet for more than a minute, an incident opens automatically on the public status page — and clears itself when the service comes back. Staff don't have to notice or remember to update anything.

Node.jsExpressStatuspage.io APIElectronDocker

Reporting

Reporting Library

Hundreds of business reports, ready to run.

A library of pre-written reports the business actually uses — revenue by week and month, royalties by brand and quarter, stock and despatch reports for every retail channel, warehouse productivity, and a set of alert queries that flag when something interesting has happened.

Microsoft SQL Server (T-SQL)

Smaller Integrations & Staff Tools

Everything else that didn't justify its own page.

The bucket for things that didn't justify their own service: EDI order downloads, Amazon order sync, a B2B website integration, and a handful of small desktop tools for staff who need quick read access to business data without learning a whole new system.

Node.jsPuppeteerAmazon SP-APIElectron

What we build

The shapes of project we take on, with examples of what they look like in practice.

CapabilityExamples from this portfolio
AI doing routine workReading and answering emails, extracting data from PDFs, classifying or routing messages, summarising long content.
Connecting business systemsTwo-way sync between your main business system and anything else — websites, retailers, carriers, marketplaces, internal tools.
Drop-ship retailer integrationsArgos, Dunelm, Next, Robert Dyas, and others. Orders in, stock and despatch out, invoices handled.
Web toolsCustomer-facing portals, staff dashboards, internal management tools.
Background jobsThe chores someone has to remember to do. Reports, syncs, cleanups, reminders.
Automated reportingReports that turn up where they're needed, on schedule, without anyone running them.
The bit underneathHosting, monitoring, alerting, status pages — the stuff that keeps everything else running.
Desktop toolsLightweight applications for staff who need quick read access to business data.

How we work

Our approach

Nothing radical. These are the few things we do on every project that mean the systems we build still work a year later.

We build it to keep running.

Production systems break in interesting ways. We design for that — fallbacks, retries, things that recover on their own. The goal is software you can stop thinking about.

We watch it for you.

Every system we ship checks in with our monitoring. If it goes quiet, we know about it before you do — not after someone notices a report didn't arrive.

We don't add systems you have to keep in sync.

Where your business already has a source of truth — your main business system, accounting, CRM — we hook into it. We don't build parallel databases you'll have to reconcile.

Your data stays with you.

When we use AI on business-sensitive data, the models run on your own infrastructure. The data doesn't leave the building, doesn't go to a third-party cloud, and doesn't end up in someone's training set.

You own everything we build.

The code, the documentation, the deployment scripts — it's yours from day one. We don't hold work hostage, sit on credentials, or charge to hand over source. If you ever want to bring it in-house or move to a different vendor, you can. We'd rather earn the work than lock you in.

We keep you in the loop.

Building software is a back-and-forth, not a black box. We send regular updates on what we're working on and what's about to change, ask before making decisions that affect how you use the software, and don't go quiet for weeks and then surface with a big invoice.

Got something in mind?

Drop us a line. We'll have a look and tell you honestly whether it's something we can help with, what it'd take, and roughly what it'd cost. No sales call required.

hello@bifrost.gg · discord.bifrost.gg · Bifrost Development Ltd, registered in the UK