• Home
  • About
  • Projects
  • Blog
  • Gallery
  • Home
  • About
  • Projects
  • Blog
  • Gallery
Loading content. Please wait.

Got something in mind?
Let’s talk.

hello@heinz.id

Explore

  • Home
  • About
  • Projects
  • Writing
  • Gallery

Elsewhere

  • GitHub
  • Instagram
  • X

Ahmad Haizul Amany

Back to top
Heinz

© 2026 Heinz. All rights reserved.

Explore the work

I’m Heinz. I build web apps.

A full stack developer based in Central Java, Indonesia. Here you’ll find my projects and the decisions behind them.

Selected projects

Projects I’ve built

All projects
Imposia

Imposia

A web application for preparing photo print orders, from uploading and editing images to arranging sheets, reviewing prices, and checking out. Includes an order dashboard, live status tracking, and photo retention management.

next.jstypescriptshadcn/ui+77 more technologies
View project
Storylio

Storylio

Storylio is my personal portfolio and CMS for projects, writing, and photography. Built with Next.js and PostgreSQL, it brings content editing, media management, and publishing controls into a private dashboard.

next.jsreacttypescript+66 more technologies
View project
Digital Wedding Invitation

Digital Wedding Invitation

A digital wedding invitation that brings event details, a photo gallery, directions, and guest responses into one mobile-friendly experience. A private dashboard helps the hosts manage invitations, RSVPs, and guestbook messages.

next.jstypescriptdrizzle orm+33 more technologies
View project

How I work

A look at the process behind each project.

  1. 01

    Understand the task

    I follow what someone needs to do and where they might get stuck. That gives me a useful starting point for the interface and the data it needs.

  2. 02

    Build something I can question

    I get a small version working, then try it with real content. Seeing it in use helps me spot assumptions that looked reasonable in the first sketch.

  3. 03

    Revisit the rough edges

    I check narrow screens, failed requests, and unfinished edits. I adjust the details that make the application harder to use or leave someone unsure about what just happened.

My usual stack

For the interface and the systems behind it.

  • Next.js
  • TypeScript
  • Tailwind CSS
  • PostgreSQL
  • Drizzle ORM
  • Sentry
Technology group 1 of 2

Writing

All writing
Article cover unavailable
5 min read

What the October 2026 Next.js Security Update Actually Affects

The October 14 Next.js update fixes three issues with different exposure conditions. Here is how Cache Components, image processing, and Server Actions fit into the picture.

Read article
Storylio, Revisited: Making the CMS Easier to Use
6 min read

Storylio, Revisited: Making the CMS Easier to Use

The first version let me publish without touching the codebase. The next round of work focused on crowded mobile layouts, editing behavior, and save messages that did not always tell the whole story.

Read article
Building Storylio: A Personal Portfolio with Its Own CMS
3 min read

Building Storylio: A Personal Portfolio with Its Own CMS

I wanted to update my own portfolio the same way I'd update any CMS-backed site — no code pushes for content, a real dashboard, something I actually built myself. This is how that went.

Read article
Loading content. Please wait.

Notes from building

All notes

A test should fail for the intended reason

An authorization test can pass even after authorization is removed if another validation rule rejects the same input.

October 30, 2026

A smaller screen needs a different arrangement

A dashboard row can fit on a small screen and still be difficult to use. The content sometimes needs a different arrangement.

October 30, 2026

An interface that gives the work some room

A quiet interface still needs clear actions and useful feedback. Restraint works when it makes the task easier to follow.

October 30, 2026