All projects

CASEPublication · SEO & GEO

A personal site that ranks

liupurnomo.com is where I write about drones, aviation rules and software. It is a full publication: categories, tutorials, events, books, comments on highlighted text, newsletters and an AI-assisted editor. Its articles rank on the first page of Google and are cited as sources in Google’s AI Overviews.

Role
Author, designer and full stack engineer
Period
2011 - now
Platform
Web
liupurnomo.com home page
Home: an editorial serif headline, a compass that frames the author, and three clear paths into the writing.
Page 1
on Google for competitive drone searches such as “flight controller drone”
AI Overview
cited as a source in Google’s AI answers, e.g. for “DJI Matrice 5T”
1 app
site, CMS and API in a single Next.js codebase, no separate backend server
10 versions
since 2011: from Blogspot and WordPress to a Next.js app with its own CMS and API

01The problem

Writing that gets found

A blog that nobody finds is a diary. I wanted my writing on drones and regulation to reach pilots and companies through search, and to be the source AI assistants quote, not just a link shared once on social media.

That meant treating the site as a product: fast pages, rich structured data, a clean information architecture, and an editor that makes publishing well-structured articles quick.

It has grown with me since 2011: a Blogspot blog that turned to drones in 2014, moved to its own domain on WordPress in 2016, was rebuilt in Next.js in 2020, gained an LMS and a separate Express backend in 2025, and in version 10 (2026) became a blog again, with the API folded back into Next.js and an aviation-inspired design.

02Product

What I built

  1. 01 · Publication

    Categories, series, tags and tutorials with a mega menu that previews the newest articles in each section.

  2. 02 · Reading experience

    Serif typography, a table of contents with flight-plan styling, reactions, bookmarks and share actions.

  3. 03 · Inline comments

    Readers highlight a sentence to react, comment or share it, like annotations in a printed book.

  4. 04 · AI-assisted editor

    Draft from a source URL, describe media with AI, and pull a matching Pexels photo into the media library, with the author always editing the result.

  5. 05 · Partnership page

    Rate card and formats for banners, sponsored articles and drone reviews, with a direct WhatsApp channel.

  6. 06 · Tools & data

    GSD calculator, QR generator, events and a live flight-log map pulled from drone.co.id.

03Results · SEO & GEO

On page one, and in the answer

Search has two front doors now: the classic results and the AI answer above them. Articles on liupurnomo.com show up in both, ranking on the first page and being cited by Google’s AI Overview as a source.

That comes from the basics done thoroughly: clear headings that answer one question each, FAQ and HowTo markup, author and organization data, breadcrumbs, and pages that load fast.

liupurnomo.com cited in Google AI Overview
Google AI Overview for “dji matrice 5t”, citing liupurnomo.com.

Hard parts

What made it difficult

  • Folding a backend into the frontend

    The API used to run as a separate Express server. I ported its routes into Next.js behind a single dispatcher, so the site, CMS and API now deploy as one app.

  • Rich features without a slow page

    Comments, reactions and menus load around static article pages, with data cached in the browser so return visits are instant.

  • Structured data that stays correct

    Article, FAQ, HowTo, Event, Book and Person markup is generated from the content, so it never drifts from what readers see.

Outcome

Who it helps

  • For readers

    Clear, well-sourced articles on drones and regulation in Indonesian, easy to find and pleasant to read.

  • For partners

    An audience reached through search, with transparent formats for sponsorship.

  • For me

    A home for my writing, books and projects that keeps bringing in work and invitations.

04Skills · What it took

The craft behind it

SEO & GEO

Found by search and by AI

  • JSON-LD for Article, NewsArticle, BlogPosting, FAQPage, HowTo, Event, Book, Person, Organization and BreadcrumbList.
  • Information architecture with categories, series and internal links; sitemaps split by content type.
  • Content written to answer one question per heading, which is what both rankings and AI citations reward.

Design

Editorial, with personality

  • Lora serif headlines with red italics, monospace aviation labels, and a compass motif that ties the brand to flying.
  • Light and dark themes designed together, and a mega menu that shows content, not just links.

Engineering

One app, no extra server

  • Next.js 16 with the React Compiler, Prisma 7 on PostgreSQL, JWT auth with jose, and TanStack Query with a persisted cache.
  • API routes ported from Express into a catch-all dispatcher; PDFs, QR codes, email and readable-article extraction on the server.
  • Next.js
  • React Compiler
  • TypeScript
  • Tailwind CSS
  • Prisma
  • PostgreSQL
  • TanStack Query
  • jose
  • Nodemailer
  • PM2

05Screens

A closer look

Google page one result
Page one on Google for “flight controller drone”.
Dark theme
The same home page in the dark theme.
Latest articles
Latest notes: one feature and a numbered list, magazine style.
Mega menu
Mega menu with categories, counts, newest articles and popular topics.
Inline comments
Highlight a sentence to react, comment or share it.
Partnership page
Partnership page with sponsorship formats and a rate card request.

Next case study

Djati

Mining management system for a contractor’s head office and pit sites