Skip to content

Instantly share code, notes, and snippets.

View denyherianto's full-sized avatar

Deny Herianto (Danny) denyherianto

View GitHub Profile
@denyherianto
denyherianto / AGENTS.md
Last active January 1, 2026 17:13
AGENTS.md — Senior Frontend Engineering Rules for AI Agents

AGENTS.md

ROLE

You are acting as a Senior Frontend Engineer.

Expectations of This Role

  • Think and act like a senior engineer responsible for long-term maintainability
  • Favor clarity, consistency, and proven patterns over novelty
  • Anticipate edge cases, scalability, and team usage
@denyherianto
denyherianto / indonesia-38-provinces.geojson
Last active December 17, 2025 15:01
Indonesia GeoJSON Maps with 38 Province - Data Peta GeoJSON untuk 38 provinsi di Indonesia
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@denyherianto
denyherianto / indonesia-38-provinces.topo.json
Last active December 17, 2025 15:01
Indonesia TopoJSON Maps with 38 Province - Data Peta TopoJSON untuk 38 provinsi di Indonesia
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@denyherianto
denyherianto / Receipt Processor.md
Created August 22, 2025 02:28
Receipt Processor using Whatsapp (WAHA), OpenAI API, and Google Sheets

An automated n8n workflow for tracking household expenses from receipts. Receipts sent via WhatsApp Group are automatically downloaded using WAHA, processed with OpenAI Vision OCR, cleaned up, and then logged directly into Google Sheets. The result: a tidy financial report without manual input.

Prerequisites:

  1. Install WAHA n8n community node: https://waha.devlike.pro/docs/integrations/n8n/

When someone sends a receipt photo in your WhatsApp group, n8n will:

  1. Verify it’s a group message and an image
@denyherianto
denyherianto / v0-prompt-seragam-ui.md
Last active September 4, 2025 03:49
Vercel v0.dev Prompt for Seragam UI

⚠️ IMPORTANT: This is a setup prompt (introductory prompt) containing all standards, design system specifications, and constraints that MUST be followed in any code generation.

🚫 You must NOT generate any UI code yet.
✅ You will only start generating code based on the next prompt, which will define what needs to be built.

Please read and internalize the entire design system and rules below before responding to future prompts.


🎨 Design System — MUST FOLLOW

- Button:
{
"component": "Button",
"description": "A versatile call-to-action component used in forms, toolbars, dialogs, and more. Supports multiple colors, sizes, variants, icons, and states.",
"props": {
"color": {
"type": "string",
"options": ["blue", "black", "white", "red"],
"default": "blue",
"description": "Theme color of the button."
@denyherianto
denyherianto / nexus-fixes.txt
Created February 20, 2025 23:09
Nexus Error Fixes
https://app.nexus.xyz/nodes
1. Install Dependencies
sudo apt update && sudo apt upgrade -y &&
sudo apt install -y tmux nano build-essential pkg-config libssl-dev git-all unzip &&
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y &&
source $HOME/.cargo/env &&
cargo --version &&
rustup target add riscv32i-unknown-none-elf &&
[aws]
symbol = " "
[battery]
full_symbol = ""
charging_symbol = ""
discharging_symbol = ""
[character]
success_symbol = "[➜](bold green) "
@denyherianto
denyherianto / install-zsh-denyherianto.md
Last active February 22, 2024 01:07
Install ZSH & Oh-My-Zsh.md

ZSH Installation

  1. Install ZSH

sudo apt install zsh

  1. Change Shell

chsh -s /usr/bin/zsh

@denyherianto
denyherianto / imageCrop.ts
Last active May 3, 2023 10:31
Crop Image using Canvas Javascript
type TCropImageParams = {
url: string
width: number
height: number
mime?: string
quality?: number
aspectRatio?: number
}
export const cropImage = async ({
url,