Product & engineering · Scope of work

This isn't a deck. It's a build.

Business analysis is complete. The architecture is designed, the stack is chosen, the integrations are mapped, the estimate is signed off and the delivery partner is engaged. What the $5M seed funds is execution against a specification that already exists — not the discovery phase that usually eats the first six months of a round.

6Requirements workshops completed
4,396Engineering hours estimated, bottom-up
10Person delivery team, defined by role
8–9Months from kick-off to product release
Business analysis · CompleteArchitecture · DesignedStack · SelectedIntegrations · MappedEstimate · Bottom-up, 4,396 hrsWireframes · DeliveredVision & scope · Signed offWhite-label · ROXOFF + NHSFMBusiness analysis · CompleteArchitecture · DesignedStack · SelectedIntegrations · MappedEstimate · Bottom-up, 4,396 hrsWireframes · DeliveredVision & scope · Signed offWhite-label · ROXOFF + NHSFM
01 — What gets built

Five deliverables. One platform.

The system is deliberately built as a white-label core with per-station customisation on top. That single decision is what makes a new station — owned or enterprise — a configuration exercise rather than a new product.

01

The white-label listener app

One mobile codebase, customised per station. ROXOFF and NHSFM are the first two skins. Playback, onboarding, in-app purchases and subscriptions, promo and referral codes, hidden-channel unlock codes, social sign-in and DRM-protected streaming, all configurable per app at the administrator level.

Platform · iOS + Android
Skins · ROXOFF, NHSFM
DRM · Yes
Status · Specified
02

The music producer web app

Where an artist uploads. Catalogue management, metadata, rights confirmation, submission against station briefs, an in-browser player to check their own masters, and the dashboard that shows where their music played and what it earned.

Stack · React + NestJS
Player · In-app
Analytics · Per play
Status · Specified
03

The administrator console

The operator's cockpit. Per-app settings at the individual station level, catalogue and scheduling control, statistics dashboards, promo-code management, subscription oversight through RevenueCat and detailed logging across the estate.

Stack · React + NestJS
Scope · Multi-station
Logging · Detailed
Status · Specified
04

The scheduler — where the machine lives

The part that turns a pile of uploaded audio into a station. Audio file processing and playlist generation, transcoding to adaptive streaming segments, and the scheduling logic that assembles a continuous, brief-compliant broadcast per channel and per zone.

Engine · FFmpeg on EC2
Output · HLS segments
Storage · S3
Status · Specified
05

Public website & documentation

The marketing site and landing pages, plus the full project specification, development documentation and unit test coverage — the artefacts that make the business sellable rather than dependent on the people who built it.

Site · HTML5 / CSS3
Docs · Full spec
Tests · Unit coverage
Status · Scoped

02 — Already delivered

The expensive part is behind us.

Most seed rounds spend their first two quarters discovering what to build. Ours starts with a completed business-analysis phase: six requirements workshops, a full feature list, functional maps for every user type, a vision and scope document, wireframes with user stories for every key screen, a technical research phase to select the architecture, a mapped integration list and a bottom-up estimate.

Workshops6 completed
Feature listDelivered
Functional mapsPer user type
Vision & scopeSigned off
WireframesKey screens
EstimateBottom-up
DESIGN PRINCIPLE

Nine non-functional requirements, agreed up front

Performance, scalability, software compatibility, usability, speed, data integrity, security, modularity and maintainability were set as architectural constraints before a line of code was designed — not retro-fitted after the first load test.

WHY IT MATTERS

Modularity is the commercial strategy

The white-label decision is not a technical preference. It is the reason the eleventh enterprise client costs a fraction of the first, and the reason a new owned station is a configuration exercise rather than a new build.


03 — Architecture

Built to stream, not to store.

A containerised API behind a load balancer and auto-scaling group, a dedicated processing tier that turns uploaded masters into adaptive streaming segments, and object storage doing the heavy lifting. Standard, boring, proven infrastructure — which is exactly what you want underneath a product that has to play uninterrupted audio into an operating theatre.

TierComponentWhat it does
EdgeCloudFrontCDN in front of the back-office web apps and static assets, so the console is fast from any territory.
APILoad balancer → auto-scaling → ECS (NestJS)The containerised application layer. Scales horizontally with listener load rather than being provisioned for peak.
ProcessingMusic scheduler — FFmpeg on EC2Audio file processing and playlist generation. Transcodes uploaded masters and assembles the continuous broadcast per channel.
StorageS3Master audio files and generated playlist segments (m3u8 / ts), served for adaptive streaming.
DataAmazon RDS — PostgreSQLCatalogue, rights, users, placements, per-play attribution and the revenue split ledger.
Cache & queueElastiCache — RedisSession and catalogue caching, plus the job queue driving the scheduler and payout runs.
ObservabilityCloudWatch · SentryLogs and metrics across the estate, with application-level error tracking and performance tracing.
TransactionalSESMail delivery for statements, receipts, onboarding and station notifications.
The stack
Mobile — recommendedFlutter (Dart), single codebase
Mobile — alternativeNative Swift + Kotlin
Web appsReact.js · Redux
BackendNode.js · NestJS
DataPostgreSQL · Redis
Public siteHTML5 · CSS3
HostingAmazon Web Services
Integrations, already selected
Playbackjust_audio + audio_service — background playback and lock-screen control
DRMPallyCon DRM SDK + better_player — protects commissioned catalogue from extraction
SubscriptionsRevenueCat · in_app_purchase — sessions, passes and recurring tiers across both stores
AuthGoogle, Apple, Meta and X social sign-in
AnalyticsFirebase — mobile behaviour and funnel
MonitoringSentry — troubleshooting and performance optimisation
App architectureBloc (state) · Dio (network)
Why DRM matters more here than for a normal streaming app. Our catalogue is commissioned and exclusive — it is the thing enterprise clients are actually paying for. Protecting it is protecting the asset that makes an annual licence worth signing, which is why DRM is in the core spec rather than a later hardening phase.

04 — Quality

Fourteen test disciplines. Because a theatre can't buffer.

The QA plan is heavier than a consumer music app would justify, deliberately. NHSFM has to run in clinical environments and enterprise clients audit us, so recovery, compatibility and acceptance testing are contractual obligations rather than nice-to-haves.

FUNCTIONAL

Does it work?

System, smoke, beta and exploratory testing, run against the specified test cases at the end of every two-week sprint with a new version launched each time.

NON-FUNCTIONAL

Does it hold up?

Performance, load, scalability, security and usability testing — the five that decide whether the platform survives a festival weekend or a hospital estate rollout.

STRUCTURAL

Does it stay working?

Regression, installation, compatibility and recovery testing across the device and OS matrix, plus requirement documentation testing so the spec and the build stay in sync.

COMMERCIAL

Can we sign it off?

Acceptance and maintenance testing, with unit test coverage as a funded line item rather than something the team squeezes in between features.

Delivery method. Agile with a two-week sprint cadence and a waterfall spine for the fixed-scope elements, daily stand-ups, regular demos, Jira for management, Bitbucket for source, and a shared Slack channel including the client. A new tested version ships at the end of every sprint.

05 — Budget & timeline

The whole platform costs five percent of the round.

This is the number that should reassure an investor. The full system build — mobile apps, both web applications, the backend, the scheduler, the public site, documentation and unit tests — comes in around a quarter of a million euros. The remaining ninety-five percent of the raise goes into the things that actually compound: catalogue, A&R, enterprise sales and the October 2027 launch.

WorkstreamFlutter — hoursFlutter — budgetNative — hoursNative — budget
Mobile application1,194€57,3121,555€74,640
Web app — admins & producers861€41,328861€41,328
Backend API1,626€78,0481,626€78,048
Public website163€7,824163€7,824
BA documentation324€15,552324€15,552
DevOps support228€10,944228€10,944
Core scope4,396€211,0084,757€227,712
Project documentation240€11,520240€11,520
Unit test coverage485€23,280485€23,280
With optional items5,121€245,8085,482€263,136
€245,808

Recommended: Flutter, full scope

Single codebase, 5,121 hours, including project documentation and unit test coverage. Roughly €17,300 cheaper than native and materially cheaper to maintain across two platforms thereafter.

c.5%

Of the $5M seed

At current rates that full build is around $265K — about five percent of the round. The platform is not where the money goes, and it should not be.

10

People on the delivery team

1 project manager, 1 business analyst, 2 mobile developers, 1 frontend, 2 backend, 2 QA engineers and 1 DevOps engineer.

Re-based delivery schedule

The original vendor schedule was written against a 2024 start. Re-based against the seed closing on 31 January 2027 and the global launch in October 2027, the nine-month plan lands like this — with beta in month eight, deliberately ahead of the DJ Awards.

MonthFebMarAprMayJunJulAugSepOct
Business analysis■■■■■■■■■ continuous
Design■■
Backend■■■■■■■■
Frontend■■■■■■■
Mobile■■■■■■
QA■■■■■■■
MilestoneBetaLaunch
Three things to settle with the delivery partner before signing.
 
1. The timeline is the wrong way round. The proposal puts native at eight months and Flutter at nine. A single Flutter codebase should normally be the faster option, not the slower one. Challenge it — on the current numbers, native technically fits the October launch window better, which inverts the recommendation.
 
2. There is a €624 discrepancy in the vendor's own figures. The budget table shows native core scope at €227,712; the comparison slide shows €228,336. Small, but worth resolving before it turns into a change request.
 
3. Eight months is zero-float against a fixed date. The DJ Awards will not move. Either start the build before the round closes with bridge funding, or contract to a September beta and hold October as contingency.

Running costs, at scale

ServiceCostBasis
AWS + S3$500 – $15,000+ / monthScales with users; upper figure is at around 100,000 users
FirebaseFreeSpark plan covers up to 50,000 monthly active users
RevenueCatFree → 1% of tracked revenueFree to $2.5K monthly tracked revenue, then 1%; Scale plan from $1,700/month billed annually
Sentry$30 – $100+ / monthSeats and event volume

Effort, budget and infrastructure figures are taken from the engineering scope of work prepared by the delivery partner. Third-party pricing is indicative and subject to those vendors' current published terms.


06 — What this means for the round

Most seed rounds buy a hypothesis. This one buys a schedule.

The technical risk in an early-stage platform business is almost always concentrated in the first six months: what exactly are we building, will the architecture hold, and how long will it take. All three of those questions have already been answered here, in writing, by a delivery partner who has done the analysis phase and priced the build bottom-up.

DE-RISKED

Scope

Feature list, functional maps and wireframes complete. We are not going to discover the product in month four.

DE-RISKED

Cost

Bottom-up estimate at 5,121 hours with the optional items included. The build is a known number, not a range.

DE-RISKED

Capacity

A ten-person team defined by role and available, alongside the FonoTec engineering hires in Berlin who take ownership after release.