Work in Progress: These docs are incomplete and may contain inaccuracies. Norri is not yet available for download.

Development Approach

Clean room development

Norri is built from scratch. All code is original, written from general programming knowledge and publicly available specifications. We don’t copy from, reference, or derive from other media server codebases.

This matters for a few reasons. It gives us complete legal clarity with no licensing ambiguity. It means we’re free to make different architectural choices without inheriting someone else’s technical debt. And it gives us full control over the codebase and its direction.

In practice, our developers read public specs and API documentation, design solutions from first principles, and don’t look at the source code of similar projects. Significant design decisions get documented with their rationale.

Technology stack

Server

TechnologyRole
GoServer language, chosen for speed and concurrency
PostgreSQLDatabase, handles libraries with 100,000+ items
FFmpegMedia processing and transcoding

Clients

TechnologyRole
SvelteKit + TypeScriptWeb interface
Swift / SwiftUIApple TV and iOS apps
KotlinAndroid TV and mobile apps

Quality and testing

We run unit and integration tests across the codebase, with end-to-end testing for critical workflows like library scanning and playback. Database operations are benchmarked to make sure performance holds as libraries grow.

Security is built in from the start rather than bolted on. There’s no telemetry or data collection, dependencies are kept up to date, and the server is designed for 100,000+ item libraries without cutting corners.

Contributing

Norri isn’t open source (more on that in Open vs Closed Source), but we still want to hear from you. Bug reports, feature requests, and documentation improvements are all welcome at hello@norri.tv.