All projects

GSDAQ

Explain the Market. Don't Tip It.

An AI market guide designed to explain uncertainty—not hide it.

Role
Product Design · Engineering
Duration
2026 · App Store submission
Platform
iOS · Web · AI
Team
Independent · Design & Engineering
Users
U.S. stock investors who want context, not an order button
Focus
AI · FinTech · Mobile

I own the product concept, information architecture, interaction and visual design, native app experience, and implementation.

Visit live site
Explain the Market. Don't Tip It.

Overview

GSDAQ turns market data, portfolio context, and multiple models into an answer a person can inspect and challenge.

Independent product in active development. Version 1.0.4 is in the App Store submission cycle; the public experience is still pre-launch.

1.0.4
Submission build
2
Languages
0
Trading actions

Problem

A Confident Answer Can Still Be Wrong

Most market tools either bury people in data or collapse uncertainty into a buy/sell verdict. Generative AI adds a new risk: a fluent answer can sound more certain than the evidence.

  1. Data without a point of viewcharts show movement but not what matters next
  2. Advice without inspectabilitya verdict hides assumptions and invalidation points
  3. AI without boundariesusers may mistake generated language for personalized advice

Core decision

Explain the Market. Don't Tip It.

Every answer is structured around reasoning, evidence, risk, and what would change the conclusion. The product can help a user think; it never places a trade or pretends uncertainty is gone.

Principles

  1. Sources stay attached to the answer
  2. Constructive and caution signals appear together
  3. Each conclusion names its invalidation condition
  4. Delayed data and information-only boundaries stay visible
GSDAQ answer evidence and reasoning steps shown side by side
  1. Reasoning traceFive steps stay attached to the answer: price lookup, quality scan, news search, and a second model asked to check the call.
  2. Constructive and caution togetherThe same paragraph names what would confirm the setup (a close above the 230.47 pivot on rising volume) and what would break it (a close below 210).
  3. Invalidation you can checkThe indicators table shows the current quality score next to the threshold the answer said would invalidate it.
  4. Second opinion, shownAnother model answers the same question in view. Agreement is displayed, not assumed.

Hover or focus a number to locate it on the screen

Evolution

From a Trading Desk on a Phone to a Guide

GSDAQ began on August 26, 2026 as Gwangsu Legend Pro: the desktop dashboard of my trading engine, ported to a phone with trading removed. Dense ranking tables, six chart panels, Korean labels. It was accurate and unreadable on a small screen.

Within two days the product turned inside out. A chat-first home replaced the dashboard, which survived as Pro mode. An English-first dictionary made English the default and Korean the fallback. The name became GSDAQ. The one line that never moved is the footer promise of the first build: this app has no order API.

  1. Aug 26 · Legend Pro v0.1the engine's dashboard on mobile, trading removed
  2. Aug 27 · Chat home becomes the main surface; the dashboard becomes Pro mode
  3. Aug 27 · English-first UI with an 828-entry dictionary and a translation lint
  4. Aug 27 · Rebranded to GSDAQ; purpose strings and desktop builds in English
Gwangsu Legend Pro v0.1: a Korean ranking table with symbol, quality score and rank columns, and a footer stating the app has no order API

01 / 02 · Legend Pro v0.1

Day one: a desk, shrunk.

The first build rendered from the repository's first commit. Timeframe tabs overflow the header, the ranking table is the home screen, and the footer already says orders never pass through this app.

Keyboard: ← → to switch surfaces

Product system

One Guide Across Five Surfaces

Home starts with a question. Portfolio explains concentration and risk. Dashboard supports monitoring. Search opens a deeper chart. Settings controls language, model, privacy, and cost. Each surface answers a different level of intent without becoming a second app.

  1. Progressive depthplain-language answer first, chart tools when asked
  2. Portfolio by screenshotimport holdings without connecting a brokerage
  3. Personal but localconversations and portfolio data stay on the device by default
  4. Bilingual by systemEnglish-first with complete Korean support
GSDAQ home: an answer with indicators and follow-up questions

01 / 05 · Home

Home starts with a question.

The answer comes first in plain language, with the indicators it relied on and two follow-ups. Chart tools wait until the intent gets specific.

Keyboard: ← → to switch surfaces

Value, concentration, positions, and six-axis balance stay in one inspectable view.

Design system

Three Themes From One Token File

Structure was already shared across the app: spacing, radii, 44-point targets, the system font. Only color differed between screens, so color moved into a single token file. Every surface reads semantic tokens for ink, panel, up, down, hold, warn and glow, and a theme is one data attribute on the root element, set by the first script in the head so switching never flashes.

Neon is the default: an ink-blue ground with the logo green as the only accent and lavender reserved for hold states. Graphite is the neutral dark of the earlier home palette. Paper is light. New colors go into the token file, because a hex value written into a page is the one thing that would not change when the theme does.

  1. One token file, three palettes, zero per-page overrides
  2. Root attribute applied before first paint; the preference persists on the device
  3. Up/down and buy/sell/hold are semantic tokens, not colors
  4. Glow is a token too, so Graphite and Paper simply set it to transparent
GSDAQ home in the Neon theme: ink-blue background with green accents

01 / 03 · Neon

Neon is the default.

Ink-blue ground, one green accent, a soft glow token on live elements. Easy on the eyes with a little signal.

Keyboard: ← → to switch surfaces

Behind the app

The Engine Trades. The App Explains.

GSDAQ is the visible end of a system I have been building alongside it: Gwangsu, a Python trading engine that collects market data, ranks stocks, and executes on one leased account from a stationary Mac. Its rankings, news and macro feeds are published through Cloudflare, and a worker streams assistant answers while enforcing plan limits. The app reads all of it and can act on none of it.

Keeping order authority in exactly one place is a product decision as much as an engineering one. Orders and conditions travel only over the owner's message commands to the engine. The app never learned the order API, so no setting, plan or prompt can turn it into a trading button.

  1. EnginePython modules on cron, SQLite, a single execution lease and a duplicate-order guard
  2. Researchthree paper books and shadow variants that never touch the live account
  3. Publishinga public ranking feed, macro and news feeds shared with home-screen widgets, a chat worker with server-sent events
  4. AppCapacitor 7 shell, quotes fetched on the device, personal data kept local by default
One-way data flow. The engine is the only layer that can place an order, and it only accepts them from the owner.
The public ranking feed the app reads. Korean is the engine's working language; the app translates the data it shows.

Current state

From Prototype to Submission

The product is running across iOS and web with a production worker, device-level privacy defaults, model choice, daily free usage, and a bilingual onboarding flow. Version 1.0.4 is prepared for public release; adoption and learning outcomes come next.

iOS
Primary platform
Web
Companion access
5/day
Free answers
Next
Public launch

Reflection

Key Learnings

  1. 01

    Trust Is an Interaction Pattern

    Sources, delay labels, opposing signals, and invalidation conditions work together; a disclaimer alone does not.

  2. 02

    AI Needs a Stable Product Shape

    Consistent answer structure makes multiple models feel like one product and gives users something they can evaluate.

  3. 03

    Depth Should Be Earned

    The default path stays conversational. Charts, factors, and model controls appear when the user's intent becomes more specific.