GSDAQ
Explain the Market. Don't Tip It.
An AI market guide designed to explain uncertainty—not hide it.
- Product Design · Engineering
- 2026 · App Store submission
- iOS · Web · AI
- Independent · Design & Engineering
- U.S. stock investors who want context, not an order button
- AI · FinTech · Mobile
I own the product concept, information architecture, interaction and visual design, native app experience, and implementation.
Visit live site
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
- 2
- 0
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.
- Data without a point of view — charts show movement but not what matters next
- Advice without inspectability — a verdict hides assumptions and invalidation points
- AI without boundaries — users 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.
- Sources stay attached to the answer
- Constructive and caution signals appear together
- Each conclusion names its invalidation condition
- Delayed data and information-only boundaries stay visible

- Reasoning trace — Five steps stay attached to the answer: price lookup, quality scan, news search, and a second model asked to check the call.
- Constructive and caution together — The 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).
- Invalidation you can check — The indicators table shows the current quality score next to the threshold the answer said would invalidate it.
- Second opinion, shown — Another model answers the same question in view. Agreement is displayed, not assumed.
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.
- Aug 26 · Legend Pro v0.1 — the engine's dashboard on mobile, trading removed
- Aug 27 · Chat home becomes the main surface; the dashboard becomes Pro mode
- Aug 27 · English-first UI with an 828-entry dictionary and a translation lint
- Aug 27 · Rebranded to GSDAQ; purpose strings and desktop builds in English

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.
- Progressive depth — plain-language answer first, chart tools when asked
- Portfolio by screenshot — import holdings without connecting a brokerage
- Personal but local — conversations and portfolio data stay on the device by default
- Bilingual by system — English-first with complete Korean support

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
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.
- One token file, three palettes, zero per-page overrides
- Root attribute applied before first paint; the preference persists on the device
- Up/down and buy/sell/hold are semantic tokens, not colors
- Glow is a token too, so Graphite and Paper simply set it to transparent

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.
- Engine — Python modules on cron, SQLite, a single execution lease and a duplicate-order guard
- Research — three paper books and shadow variants that never touch the live account
- Publishing — a public ranking feed, macro and news feeds shared with home-screen widgets, a chat worker with server-sent events
- App — Capacitor 7 shell, quotes fetched on the device, personal data kept local by default
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
- Web
- 5/day
- Next
Reflection
Key Learnings
Trust Is an Interaction Pattern
Sources, delay labels, opposing signals, and invalidation conditions work together; a disclaimer alone does not.
AI Needs a Stable Product Shape
Consistent answer structure makes multiple models feel like one product and gives users something they can evaluate.
Depth Should Be Earned
The default path stays conversational. Charts, factors, and model controls appear when the user's intent becomes more specific.






