AMMAircraft maintenance manual · Systems

Under the cowling.

liupurnomo.com is a personal blog built in the open, as a place to write and to learn by building. This page lists what keeps it in the air.

01Systems

Cockpit display · FrontendATA 31

What readers see and touch.

Next.js 16
App Router, server rendering, ISR
React 19
UI and server components
TypeScript
Typed end to end
Tailwind CSS 4
Design tokens, light and dark mode
TanStack Query
Client data cache in IndexedDB
Framer Motion
Small animations
Flight computer · BackendATA 45

API routes running inside the same Next.js app.

Route handlers
REST API in Next.js
Prisma 7
ORM with the pg adapter
PostgreSQL
Primary database
jose
Signed, httpOnly session cookies
Google & GitHub OAuth
Sign in, no passwords stored
Yup
Request and form validation
Communications · IntegrationsATA 23

Outside systems this site talks to.

YouTube RSS
Latest videos on the homepage
drone.co.id
Live pilot flight log
Google AdSense
Advertising
pdf-lib
CV generated as PDF
qrcode
QR code generator, in the browser
Ground power · InfrastructureATA 49

Where it all runs.

Ubuntu server
Self hosted
PM2
Process manager
Cloudflare Tunnel
Delivery and protection, no open ports

02Flight history

The site started as a Blogspot blog and has been rebuilt many times since. Every release is written down in the changelog.

03Credits

Built on open source software. Thanks to the people behind Next.js, React, Prisma, PostgreSQL, Tailwind CSS, Lucide icons, and the Lora and JetBrains Mono typefaces.

04Copyright

© 2026 Liu Purnomo. Articles, photos, and original code on this site belong to Liu Purnomo unless stated otherwise. See the terms for how you may quote them.

Found a bug or have a question?[email protected]