NK

Search

Search pages, posts, and components

Writing

Blog

Notes on engineering, design systems, and shipping performant interfaces.

Engineering10 min read

How I build blogs with MDX

The full pipeline behind this blog - frontmatter, filesystem reads, server-side Shiki highlighting, component overrides, and a table of contents parsed from the raw source.

Engineering8 min read

Rust for Beginners: Understanding Ownership

Why the borrow checker rejects your code - moves, borrows, lifetimes, and the one rule underneath all of it, explained without the mysticism.

SEO8 min read

How to Write SEO-Friendly Blog Posts

A repeatable process - pick a query you can win, match its intent, structure for scanning, and publish something that earns links rather than chasing them.

SEO7 min read

How Google Search Works

Crawling, indexing, and ranking - what happens between typing a query and seeing results, and which parts of it you can actually influence.

SEO7 min read

Technical SEO Explained

The layer that decides whether your content is ever seen - crawlability, indexing, rendering, canonicals, speed, and the failures that are completely silent.

Mobile10 min read

Can Rust and Flutter Work Together?

Yes - through FFI, and increasingly through flutter_rust_bridge. What the boundary costs, where it genuinely pays off, and when it is an expensive way to avoid writing Dart.

SEO8 min read

On-Page SEO vs Off-Page SEO

One you control completely, the other you can only earn - what each covers, why the split matters, and where to spend your effort first.

SEO8 min read

What Is SEO? A Beginner's Guide

What search engines are actually doing, the three things they judge, and why most SEO advice you have read is either outdated or someone selling something.

Mobile12 min read

Building Offline-First Flutter Applications

Treating the local database as the source of truth - write queues, sync strategies, conflict resolution, and the failure modes that only appear on a real train.

Mobile9 min read

Flutter vs React Native vs SwiftUI vs Kotlin: Which Should You Pick?

Four ways to build a mobile app, compared on what actually decides it - rendering model, team, platform fidelity, and what each one costs you later.

Mobile10 min read

Flutter Isolates Explained Through a Real Example

A 12 MB JSON import that jank the UI for two seconds - and what fixing it teaches about isolates, message passing, and when they are the wrong tool.

Mobile19 min read

Flutter State Management: Bloc vs Riverpod

A working comparison of the two serious options - the mental models they impose, the same feature built in both, and how to choose without relitigating it every sprint.

Mobile9 min read

Building a Design System for Flutter

Tokens, themes, and components that survive a rebrand - colours, typography, spacing, and the primitives every screen is built from.

Mobile15 min read

Building Scalable Flutter Apps with Clean Architecture

Layering a Flutter codebase so it survives growth - entities, use cases, repositories, typed failures, and the dependency rule that holds them together.

Mobile9 min read

How Flutter Rendering Actually Works

The three trees, why constraints go down and sizes go up, what a rebuild really costs, and how that knowledge turns performance guesswork into diagnosis.

Mobile9 min read

How Hot Reload Actually Works

Sub-second reloads are a consequence of Dart's JIT, an incremental compiler, and the fact that widgets are disposable - plus the rules that decide when it fails.

Mobile9 min read

Flutter Is Not Just a UI Framework

Its own rendering engine, its own layout model, a compiled language, and a plugin boundary - Flutter replaces more of the platform than most people realise.

Mobile11 min read

How to Build Your First Flutter App

From an empty directory to a working app - setup, the counter template decoded, state, layout, navigation, and the first mistakes worth skipping.

Mobile9 min read

Why Flutter Uses Widgets for Almost Everything

Padding, opacity, gestures, and theming are all widgets - and that uniformity is a deliberate trade, not an accident of API design.