Skip to content
Role
Founder / Product Designer
Team
1 person
Period
2026 – Present
Tools
Figma, Next.js, TypeScript, n8n, AI, Data

Real Estate Intelligence Platform

Reevl

Summary

A real estate terminal that reads Korean apartments like listed stocks. I designed it, built it, shipped it, and still run it – on my own.

5,000+
Monthly active users

Launched July 2026

64,817
Public pages

Standalone routes for search

2,054 / 2,380
Commits written with AI

Jul – Sep 2026

Role – research · information architecture · design system · frontend · data · operations (solo)

1 / 6
Reevl feature film (1:25) – the live service, recorded as it runs and edited in motion: home, search, screener, dock, compare, regions, Reevl AI, hubs and MCP.

Overview

Reevl is a real estate terminal for Korean apartments. It treats apartment complexes like listed stocks – each with a price chart, a change rate, and a value – so the market state is readable at a glance.

  1. 01Design

    Figma

    • 140 variables
    • 23 components
  2. 02Buildprivate

    2,380

    GitHub

    • 2,380 commits
    • Jul 1 — Sep 18
  3. 03Ship

    reevl.co.kr

    Research

    Reevl's research came less from interviews than from operating data and what users pointed out. After launch, the signals that arrived every day became the reasons for the next decision.

    • 366 commits started from a user's remark – 16% of all commits. One-line reports like "the hover effect gets cut off" (its cause changed three times) or "going back drops me on the apartment list" each became a fix.
    • Behaviour data (Microsoft Clarity) – 89% of visits came from Naver, 79% of devices were mobile. Those two numbers set the product's priorities: mobile first, Naver search first.
    • Eight data sources – MOLIT transactions, K-apt, the Korea Real Estate Board, KOSIS, the Bank of Korea, V-World, SchoolInfo, and Cheongyak Home: 45,695 apartment complexes and 11 million transactions brought into one screen's language.

    Key decisions

    Four decisions that made the product what it is – what was decided, why, and what came of it.

    1. 01Show the state of the market, not the price of a home

      Where the whole market is moving should read before any one complex's price. So the direction was a Bloomberg terminal's information density with the cleanness of Toss Securities.

      One home screen carries the market briefing, the sales and jeonse indices, and the complex rankings.Home screen

    2. 02Up is red, down is blue – on every screen, no exceptions

      It follows the convention Korean market users already read by. Green never means “up”.

      Direction colours exist only as design-system tokens (up · down), so no screen drifts.Design system

    3. 03One screen, three shells

      The same information appears as a docked panel on desktop, a full screen on phones, and standalone pages for search.

      That one structure produces 64,817 public pages.Information architecture

    4. 04Rebuild Figma from the code

      So the values designers see never drift from the values users get, the Figma library was extracted back from the production tokens.

      140 variables · 28 styles · 23 components (v1.0, 2026-09-17).Figma file

    5. 05The day twelve features shipped at once, the numbers fell – six causes found and fixed

      Right after twelve features went live on August 27, the bounce rate went from 24% to 62%, time on site from 226s to 40s, and 36 rage clicks appeared – the only day in the whole observation window with any. The problem was the screens, not the features.

      After fixing six causes: 0 rage clicks on August 29; on September 1 the bounce rate went from 70% to 29% and time on site from 36s to 115s.Usage

    6. 06Don't show forecast prices beyond two years

      One-year outlooks ranked with an information coefficient of 0.19, positive in 93% of quarters; beyond two years it was 0.01 at the complex level. A number that can't be right isn't information.

      Long-range forecasts show no prices – only the region level that held up (IC 0.16).

    7. 07A missing value is 'not applicable', not zero

      Jeju and Ulleung have no motorways. Filling their 1,047 complexes with zero would read on screen as poor transport. When the validation window moved, indicators whose sign flipped were dropped for the same reason.

      Station access is the baseline, with motorways and airports added for how people travel outside the capital; where a measure doesn't apply, it is left empty. A number that appears by chance and reads like evidence is the bigger risk.

    8. 08Give AI the unit and meaning before the value

      With the MCP server open through seven read-only tools, a model read prices stored in units of ₩10,000 as won – a 10,000× error. A person asks when something looks off; a model makes something up.

      A describe_fields tool now gives the model each field's unit and meaning before it reads any value.

    Design

    Information architecture

    Three layout shells carry the same screens: a docked panel on desktop, a full-screen view on phones, and standalone routes for search engines.

    Design system

    The Figma library was rebuilt from production code. Below is the Figma file itself; under it, the same tokens rebuilt as React components.

    Open in Figma
    Loading the Figma file
    Drag to pan, scroll to zoom — this is the live Figma file.
    140
    variables
    28
    styles
    23
    components
    37
    pages

    Figma variables and code tokens share names and values. v1.0, 2026-09-17Open in Figma

    These are not images — they are React components rebuilt from the same tokens.

    SeoulNear subwayNew buildLarge complex
    Seoul sales index1Y

    391.2 +10.9%

    • AComplex AYongsan-gu₩2.04B+20.6%
    • BComplex BGangnam-gu₩1.88B-3.1%

    Build

    Build log

    Selected milestones out of 2,380 commits. Each one is a decision that shipped.

    1. 01

      Jul 1, 2026Foundation

      Engine and frontend in one push

      Set up the data engine and a Next.js + Tailwind frontend — the skeleton of a real estate terminal.

      commit 6e14935

    2. 02

      Jul 7, 2026Brand

      Logo and identity

      Applied the wordmark, mark, and mobile logo across header and footer.

      commit a0d3448

    3. 03

      Jul 16, 2026Design system

      Pulling UI into shared components

      Built Badge, Popover, and StatRow primitives plus spacing and state tokens, so hierarchy stopped drifting between screens.

      commit acdc364

    4. 04

      Jul 19, 2026Search

      Natural language search, redesigned

      Separated names from conditions and added a concept lexicon, so every screener filter can be set in plain words.

      commit dad8b17

    5. 05

      Jul 22, 2026Measure

      GA4 and Clarity

      The point where real usage data started coming in.

      commit 334d2b2

    6. 06

      Jul 27, 2026Operate

      Deploy verification gate

      Detects missing JS chunks after each deploy and redeploys automatically.

      commit b0a958d

    7. 07

      Aug 6, 2026AI

      Reevl AI as its own app

      Browsing and asking are different mental models, so the AI moved into its own /ai shell.

      commit 07296ee

    8. 08

      Sep 11, 2026Performance

      First screen stops waiting on 7.8 MB

      Fixed endless loading on slow phones by serving a lightweight table first.

      commit db211f3

    9. 09

      Sep 17, 2026Design system

      From code back to Figma

      Rebuilt the Figma design system from code: 140 variables and 23 components extracted from production.

      commit 9d2f5a2

    Activity

    exclusiveyon-a11y / reevlPrivate
    main2,380 Commits

    수요와 공급으로 부동산을 재정의

    • TypeScript50.4%
    • Python41.5%
    • JavaScript4.5%
    • CSS2.2%
    • Shell1.4%
    AI pair programming86%

    2,054 of 2,380 commits written together with Claude Code

    2,380 contributions since Jul 1, 2026

    JulAugSep
    Mon
    Wed
    Fri
    LessMore

    Commits on Sep 17, 2026

    • docs(디자인): Figma 디자인 시스템 구축 기록 — 코드에서 추출한 140토큰·23컴포넌트

      exclusiveyon-a11y committed

      9d2f5a2
    • chore(통근): 지하철 그래프 공식 경로시간 대조 스크립트·참값 캐시(296+111쌍)

      exclusiveyon-a11y committed

      82b17e0
    • fix(통근): 신분당·수인분당·공항철도·부산·대구 등 34개 노선을 좌표 근사에서 열차 시간표 실측으로

      exclusiveyon-a11y committed

      54fab7e
    • fix(통근): 서울 버스가 대전 정류장으로 순간이동했다 — 정류장 ID가 전국 유일이 아니었다

      exclusiveyon-a11y committed

      aaf1caf

    Commits on Sep 16, 2026

    • fix(통근): 강남→서면(부산) 55분 — 동명이역이 순간이동으로 이어져 있었다 · 버스+지하철 통근 신설

      exclusiveyon-a11y committed

      585953a
    • fix(도보): '역 도보 N분'이 실제보다 중위 3분 짧았다 — 보행망 실경로 + 오르막

      exclusiveyon-a11y committed

      1feb7c8
    Snapshot as of 2026-09-18
    Stack and infrastructure

    Next.js, TypeScript, and Tailwind on the front, with TradingView Lightweight Charts for time series. Behind it, a Python data engine. Hosting runs on Cloudflare Workers with D1 and R2, migrated from Vercel on July 25.

    The same data is also exposed as a public MCP server so AI tools can query Korean apartment data directly.

    Ship · results

    Live product

    The live product at MacBook Pro 14, iPad Pro 11, and iPhone 16 Pro resolutionsreevl.co.kr

    Usage

    5,000+
    Monthly active users
    Jul 2026
    Launched
    64,817
    Public pages

    Traffic sources

    Measured in GA4 and Clarity, as of September 6, 2026. The assumption that "Korean real estate search happens on Naver" held up in numbers.

    1,122
    Visits from Naver (24× Google's 46)
    912
    Weekly users (up from 60)
    42
    Visits from AI assistants (ChatGPT)
    Sessions by channel, and search visibility

    GA4 channels: Organic Search 1,199 · Direct 656 · Organic Social 82 · Unassigned 66 · AI Assistant 42 · Referral 16.

    The sitemap lists 65,501 URLs. There was also an incident where Google's crawl dropped from 29,514 to 22 requests a day (the cause: detail pages not rendered on the server); after the fix, Google visibility is still recovering.

    AI crawlers were slowed down, not blocked. Over 23 hours GPTBot made 34,856 requests (28%) and ClaudeBot 25,161 (21%) – far more than Googlebot's 480 – but a crawl-delay instead of a block kept the chance of being cited by AI. The 42 visits from AI assistants came from that.

    Next – ON THE WAY

    Site visits start only when you arrive, yet the neighbourhoods and roads you pass on the way are already part of the area. Splitting a visit into nine steps showed that half of its 14.3 hours went to travel and sorting notes. So my graduation exhibition, “REEVL: ON THE WAY”, turns the drive into exploration: Reevl's transaction and indicator data, redesigned for the car, attaches prices to the places you pass, and asking a question changes the route rather than returning an answer. It targets Pleos Connect on AAOS, testing whether exploration works within the visual limits of driving.

    Where a person steps in

    The operation runs by itself; what needs judgement comes to a person.

    • By itself – transaction refreshes, publishing and error watching run as n8n workflows. Not a window to open every morning, but something that speaks up when it should.
    • By hand – data from unreliable sources is refreshed manually, and the screen carries the date it is good for. Saying when something is from beats showing it as if it were current.
    • Why it changed – the pipeline was green while publishing had been stopped for six weeks, and 11,891 server errors were reported as zero. Since then what is watched is the output, not the success log.

    Reflection

    A green pipeline doesn't mean the screen is right. Naver blog publishing had silently stopped for six weeks while its runs showed green, and a monitoring filter bug reported 11,891 server errors as zero. Since then twenty operational checks look at the output itself rather than success logs, and eleven build gates – including design-system conformance and a 432 KB first-screen JavaScript budget – block any deploy that fails one.

    Crawlers are users too. One SEO tool's crawler was using 90.9% of the server's CPU. Growing visibility comes with an infrastructure bill – so now the first question is whether a metric actually matters to the product.

    Still open. A 19.6% quick-back rate, Google visibility that is still recovering, and – because I built it alone – no evidence yet of how I collaborate.