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
| Technology | Role |
|---|---|
| Go | Server language, chosen for speed and concurrency |
| PostgreSQL | Database, handles libraries with 100,000+ items |
| FFmpeg | Media processing and transcoding |
Clients
| Technology | Role |
|---|---|
| SvelteKit + TypeScript | Web interface |
| Swift / SwiftUI | Apple TV and iOS apps |
| Kotlin | Android 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.