Positioning
Almaeng is built around a simple question: not which supplement looks better, but which one delivers better ingredients for the price.
The product combines label interpretation, ingredient-level comparison, and price intelligence into one workflow for Korean supplement buyers.
Problem
Supplement shopping is usually driven by brand reputation, packaging, and marketing copy. That makes it hard to compare products by
ingredient density, duplicated intake risk, and real unit economics. A lower list price does not necessarily mean better value.
- → Users need ingredient-level comparison, not just product-level browsing
- → A single bottle price hides the actual cost per tablet and per active ingredient
- → Multi-supplement routines increase the chance of overlapping or excessive intake
- → Public regulatory and product data is fragmented and inconvenient to review
What I Built
Almaeng structures supplement data around ingredients first. Product information is normalized, enriched, and then surfaced through
searchable views that help users judge practical value rather than branding alone.
- → Search and comparison flow combining market listing data with official product information
- → Ingredient-focused product analysis instead of simple title or brand comparison
- → Unit pricing views to compare cost per serving and cost per meaningful ingredient amount
- → Overlap alert concept for detecting duplicated ingredients across multiple supplements
- → AI-assisted interpretation layer for supplement label understanding and user guidance
What I Did
- → Defined the product framing around ingredients-first supplement evaluation
- → Designed the data model for supplements, ingredients, and price snapshots
- → Implemented the backend-driven search and comparison flow
- → Built the deployment path on a self-managed stack with Coolify and Hetzner
Architecture
Server-rendered with Django + HTMX. Product logic, search, and comparison flows stay on the server — no React SPA.
PostgreSQL stores all normalized data; Gemini Flash + Pydantic AI turn supplement labels into structured, safe-to-store output.
System Flow
↓ HTTP request
Django + HTMX
DAEMON-ONE · search, compare, analysis views · SSR ↓ query
PostgreSQL
supplements · ingredients · price_snapshots · pgvector AI Label Analysis
Supplement Label
raw text input ↓
Gemini Flash
extract ingredients · amounts · units · risk flags ↓ structured output
Pydantic AI
schema validation · safe to store ↓
PostgreSQL
normalized ingredient data Infrastructure
- → Hetzner-hosted deployment managed through Coolify
- → Docker-based application delivery with controlled self-hosting
- → Cloudflare for DNS, TLS, and edge-level traffic handling
- → Build path optimized for fast solo iteration and low operational overhead
Technical Notes
System Notes
- Server-rendered flow with Django Ninja, HTMX, and Alpine.js to keep the interaction model simple and backend-driven.
- PostgreSQL stores normalized product, ingredient, and comparison data while pgvector leaves room for semantic lookup features.
- Gemini Flash and Pydantic AI are used for AI-assisted label interpretation and safer structured output.
Data Model Snapshot
supplements
- id
- brand
- product_name
- serving_size
ingredients
- id
- name
- daily_value_ref
supplement_ingredients
- supplement_id
- ingredient_id
- amount
- unit
price_snapshots
- supplement_id
- retailer
- price
- captured_at