0001 × Woodstock App concept · October 2026 Sample data, not connected

Woodstock, drawn on one grid.

A concept for the next Woodstock app. The product stays the same: 24/5 trading, ¥0 fees, fractional shares from ¥1, AI summaries. The interface moves onto Design system 1, the grid every 0001 product is built on, with a chart library made for it.

Try it on your phone woodstock.0001.dev/app Or use the phone on this page. Every price, holding, order and news item is sample data.

1What to try

  • Scrub any chart with a finger or the pointer. The price above it follows.
  • Open a stock and choose Live: prices tick every second, and the newest one blinks.
  • Buy in yen from ¥1 with the keypad. Fees show as free, and the order stays on this page.
  • Discover shows live buy and sell ratios, news with its tickers, and movers by category.
  • Account switches English and Japanese, light and dark, and the grid itself.
Prototype language

2One grid, every pixel accounted for

Every block, row and control is a whole number of 20px squares, measured from one origin, so edges line up across a screen and between screens. Lines are one pixel and fall on the grid. Numbers sit in fixed cells with tabular figures, so a ticking price never moves the layout. The same rules hold in light, dark and Japanese.

18squares wide: one column for every iPhone from 375pt up
1pxlines, on the grid, at every zoom
0blocks off the grid in a scripted check of all five screens

3Grid chart

The website draws its charts with lightweight-charts. Grid chart keeps that API (createChart, addSeries, setData, subscribeCrosshairMove), so the website's chart code carries over, and changes how it draws:

  • Each row line is a price level. The scale picks a step of 1, 2, 2.5 or 5 × 10ⁿ so the levels land on the page grid.
  • Each pixel column holds the high and low of the prices inside it. A day of minute prices and five years of weekly ones draw with the same one-pixel line, without blur.
  • Fills are one-pixel lines two pixels apart, like the waveforms in 0001 Music.
Zoomed 4×: one column per pixel, no anti-aliasing.
import { createChart } from "@0001/grid-chart";

const chart = createChart(canvas, { extremes: true, scaleLabels: true });
const price = chart.addSeries({ kind: "baseline", baseValue: previousClose });
price.setData(points);
chart.subscribeCrosshairMove(({ point }) => showPrice(point));
MinifiedGzipped
lightweight-charts 5.2.0, on woodstock.co today196 KB61.6 KB
Grid chart core8.2 KB3.4 KB

Grid chart does less today: line, area and baseline series, sparklines, bars and ranges. Candlesticks, zoom and panes would come with the pilot below.

4Proposed stack

Web components for the web

Lit web components on Design system 1. The same stock page, chart and trade sheet run on woodstock.co (as Astro islands, like the stock pages today), in a web app, and inside MCP results. Web components are part of the browser, so nothing ties them to a framework.

A native iOS app in SwiftUI

The features that make an investing app feel alive are native: Live Activities for 24/5 order fills, price widgets on the Lock Screen, haptics while scrubbing a chart, passkeys, and the My Number Card in Apple Wallet that Woodstock already supports. SwiftUI uses the same tokens and the same 20pt grid, and Grid chart's renderer ports to a SwiftUI Canvas line for line. Ezo, our own app, already ships this way.

Android

The web app, installed from Google Play as a Trusted Web Activity, until usage justifies a native build.

Why move off Flutter

Flutter is a reasonable way to ship one app to two stores quickly. It draws every pixel with its own engine, though, so it shares no code with woodstock.co, and widgets and Live Activities still need Swift extensions bridged into it. This proposal shares code where it pays (the web, which already runs Woodstock's stock pages and MCP) and goes fully native where customers feel it, on iPhone.

Flutter app todayProposed
Shared with woodstock.coNothingComponents, chart, tokens
Widgets, Live ActivitiesSwift extensions beside the Dart appNative SwiftUI
Text and controlsDrawn by Flutter's engineThe platform's own
Design systemSeparate from the website'sDesign system 1 in CSS and Swift

5Next steps

  1. A 30-minute walkthrough of this concept with your product and app teams.
  2. A pilot on the website: Grid chart replaces lightweight-charts on the stock pages, measured on bundle size and the Lighthouse mobile score.
  3. A SwiftUI build of the portfolio, stock page and trade sheet on TestFlight, with sample data.
  4. A decision on the app with both in hand.
Prepared by 0001 for Woodstock. A design concept: every price, holding, order and news item is sample data and nothing is connected to Woodstock's systems.