Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

What is DLN?

DLN (DevinLittle.net) is a collection of applications, services, and libraries designed to provide a consistent platform for communication, file sharing, productivity, and experimentation.

It originally began as a small collection of personal tools. It eventually evolved into a shared ecosystem of reusable services and client applications. Rather than building each application independently, DLN provides common infrastructure that can be reused across multiple projects.

At a high level, DLN consists of:

  • Client applications, such as the CLI, web app, and Qt UI.
  • Backend services responsible for authentication, notifications, file sharing, End-to-End Encrypted private notes, and other platform features.
  • Shared libraries that provide common contracts, protocols, and functionality.
  • Deployment tooling used to operate and distribute the platform.

Although many components can be used independently, they are designed to work together as a cohesive system.

Goals and Design Philosophy

I’ve designed DLN around a few core principles:


Shared Infrastructure

Repository Structure

Terminology

Identity

User

User ID

Session

Session ID

Claims

Access Tokens

Refresh Tokens

Roles

Authenticated Users

Communication

Messages

Events

Payloads

Namespaces

Routing

Channels

Presence

Trust

State

Clients

Services

Authentication

Token Refresh

Notification Bootstrap

Event Delivery

Presence Tracking

Nanopass Discovery

Key Synchronization

Mesh Discovery

System Overview

Identity Architecture

Client Architecture

Notification Architecture

Service Architecture

Data Flow

Deployment Architecture

Auth Backend

Notification Backend

GradeGetter

Nanopass

Smalltalk

Service Connector

backend-common

dln-core

crypto-utils

friendly-namer

Overview

Bare Metal

Docker Compose

Kubernetes

Environment Variables

Reverse Proxies

Scaling

Workspace Layout

Building

Testing

Release Process

Glossary

FAQ