# Candleweb — case study

> Trading infrastructure for people who build their own bots — plus **CandleAI**, a no-code trading agent for everyone else, and an Academy for people who want to learn first. The money never leaves the user’s own exchange account.

- **Client:** Candleweb
- **Type:** client
- **Industry:** Fintech & crypto
- **Year:** 2024–present
- **Role:** Lead Product Designer
- **Platform:** Web · marketing site, trading dashboard, internal admin panel
- **Tools:** Figma, Next.js 16, TypeScript, Tailwind 4, Playwright, Turborepo
- **Status:** Live at candleweb.io · admin panel built front-end only

- Case study: https://ministar-samuel.com/project/candleweb
- Live site: https://candleweb.io/

![Candleweb home page: “Bring your AI agents. We’ll run the hard part.”, three n8n nodes, and the services Candleweb runs under a teal waterline](https://ministar-samuel.com/case-studies/candleweb/home-desktop.webp)

## Overview

Candleweb describes itself as infrastructure for agentic trading. A user’s bot — an n8n workflow, a Make scenario, a script — makes the call; Candleweb runs everything around it: market data with 400+ indicators, execution on four exchanges, round-the-clock monitoring, and a review of every trade.

Two more doors sit beside it. **CandleAI** is Candleweb’s own trading agent for people who don’t want to build a bot, and the **Academy** runs live, cohort-based courses in AI automation, personal finance and crypto trading.

Samuel has been Lead Product Designer since February 2024. This case study describes the product as it is today, plus the internal admin panel built from its Figma designs.

- **400+** Indicators in the market-data engine
- **4** Exchanges: KuCoin, Binance, Bybit, BitMart
- **3** Ways in: your bot, CandleAI, Academy
- **Feb 2024** Lead Product Designer since

## Challenge

> The signal was the easy part.
>
> — candleweb.io — “Why this exists”

Something that reads a chart and forms an opinion can be built in an afternoon. Making it trade is the rest of the job, and it is all plumbing. The site puts the split at ten to ninety.

Two other problems sit on top. Many people are wary of handing their money to a platform they can’t see inside. And the product has to make sense to three very different visitors: a builder with a bot, someone who has never built one, and someone who wants to learn first.

- **10%** The decision: reading a chart, forming a view
- **90%** Everything else — why most bots never leave the canvas

*the other ninety per cent, as the site lists it*

- ✗ **Rate limits** — every indicator needs history; multiply the exchange calls by twenty symbols.
- ✗ **Partial fills** — the order filled 60%; what happens to the rest?
- ✗ **Monitoring** — a stop-loss only works if something is awake at 3am.
- ✗ **Four exchanges** — four auth systems, order schemas and ways to break.
- ✗ **No record** — what did the bot actually see when it decided?

## Goals

*goals, read from the product as shipped*

**Make the handoff obvious.** Show exactly where the bot’s job ends and Candleweb’s begins: data out, one decision in.

**Say the custody promise first.** The money stays in the user’s own exchange account and the keys can trade but never withdraw — impossible to miss.

**One engine, several doors.** Builders, non-builders and learners arrive with different questions and land on the same execution, monitoring and records.

**Let people start without risk.** Paper trading with no card and no exchange keys; move up when the agent earns its place.

![Candleweb home on a phone: the custody banner above the logo, the hero, and the three n8n nodes](https://ministar-samuel.com/case-studies/candleweb/home-mobile.webp)
*The custody line sits above the logo on every page — phones included.*

## Audiences & discovery

> Don’t want to build a bot? Use ours.
>
> — CandleAI page headline

The original research notes aren’t among the sources for this write-up, so this section shows how the audiences surface in the product itself. The builders’ sign-up form asks one question: what did you build your bot with — n8n, Make, Zapier, your own code, or nothing yet? CandleAI’s form asks whether you have traded before.

Those answers sort visitors into three doors, and all three end on the same engine:

**Which door?** (flowchart):

1. A new visitor
2. Built a bot already?
3. n8n · Make · Zapier · code — The home page’s sign-up form asks which one.
4. Want to learn first?
5. Academy cohort — The flagship course ends with students building their own crypto trading bot.
6. CandleAI — Pick a market, set your limits, switch it on. No code, no workflow, no webhook.
7. Same engine — Execution, monitoring and trade records are “Identical” for CandleAI and your own bot (CandleAI comparison table).

*The three doors, drawn from the site’s own forms and pages.*

## Information architecture & flows

The top navigation is the information architecture in miniature: **Bring your bot**, **CandleAI**, **Academy**, **Pricing**, **Docs**, **Blog**. Every page ends in the same short sign-up form, and everything leads to one dashboard.

**Sitemap (main navigation, Blog aside)** (flowchart):

1. Home · Bring your bot
2. CandleAI
3. Academy — Courses, how enrolment works, instructors, partners, enrol form (Paystack checkout).
4. Pricing — Plans, a plan finder, the upgrade path and a full comparison.
5. Docs · setup guide — Connecting a trade to an n8n AI bot, step by step.
6. Get started — An email and one question. Free to connect.
7. Dashboard — Your bots, trade records and risk controls.

*the core flow*

The one flow every page explains, in the order the home page tells it:

**1. 1 · Candleweb sends the data**

When a candle closes on the bot’s pair and timeframe, the candles and the chosen indicators are ready — the bot never fetches history or fights rate limits itself.

In the setup guide the bot pulls this on a schedule; the docs say push delivery isn’t available yet.

```json
{
  "pair": "BTC/USDT",
  "timeframe": "15m",
  "indicators": { "rsi_14": 61.4 }
}
```
*Step 01 on the home page: Candleweb → your bot.*

**2. 2 · Your bot decides**

Any logic the builder likes — an LLM prompt, a rule set, a model. The bot posts one decision back to one endpoint. The AI only ever gives its opinion: decision, confidence, risk and reason.

![Candleweb home page on a phone: step 02 “Your bot decides” with its JSON, then step 03 “We hold the position” with a fill and a close](https://ministar-samuel.com/case-studies/candleweb/home-mobile-full-02.webp)

**3. 3 · Candleweb holds the position**

Placement, fills, the stop, the trailing exit and the close run on Candleweb’s own workers, not inside the bot — so a position is still managed at 3am, and the bot “can go back to sleep”.

**One position, start to finish** (flowchart):

1. Decision received
2. Checks pass? — Pair, balance and permissions; the confidence has to clear the trade’s minimum.
3. Order on your exchange — Sized from the user’s risk settings.
4. Stop + trailing stop — The stop is placed on the exchange; the trailing stop follows price up.
5. Closed, written to record

**4. 4 · Every trade keeps its evidence**

Each trade is stored with the exact candles and indicator values the bot saw. That record is what the bot review reads to name the rule that is losing money — and what the dashboard lists per bot.

![Candleweb home page on a phone: “Inside the dashboard” with the Your bots, Trade records and Risk controls tabs and the Momentum v3 and Range fader bot cards](https://ministar-samuel.com/case-studies/candleweb/home-mobile-full-03.webp)

## Your exchange, your funds

> Candleweb never holds your money.
>
> — candleweb.io — “Your exchange, your funds”

The older description of the product promised that funds stay in the user’s wallet. The live site is more precise, and this case study follows it: there is no wallet, pooled balance or deposit address at all. Users connect their own exchange account with trade-only API keys, and every order is placed in their account, under their name.

**Non-custodial flow, as the site documents it** (flowchart):

1. Create an account
2. Add trade-only API keys — Scoped to placing and closing orders. Withdrawal permission is never needed.
3. Your bot or CandleAI decides
4. Order in your own account — “Every order is placed in your account, under your name.”
5. Stops, trailing stop, close — Enforced by Candleweb’s workers, not by the agent.
6. Funds stay on the exchange — No wallet, pooled balance or deposit address.
7. Revoke the key — Delete the key on the exchange and access ends immediately.

*when something goes wrong*

### Nothing is ever left unattended.

The same promise runs through the edge cases. If a plan payment fails, or the user cancels, open positions keep their stop, trailing stop and monitoring until they close — only new entries pause. Pausing CandleAI works the same way.

CandleAI can open and close positions in the user’s exchange account. It cannot withdraw, transfer or hold anything.

![Candleweb home on a phone: the Position monitoring, Order execution and Bot review cards, then the heading “Candleweb never holds your money.”](https://ministar-samuel.com/case-studies/candleweb/home-mobile-full-04.webp)

## Wireframes

Early wireframes aren’t among the sources, so the structure below is redrawn from the live pages — the skeleton any change to them starts from.

The home page reads top to bottom as an argument: what you build, what Candleweb runs, how the handoff works, why it exists, what you’ll see, who holds the money, and how to start. CandleAI follows the same rhythm for a reader who will never open n8n.

Wireframes: Home — desktop (desktop), CandleAI — phone (phone).

*Section order of the live Home and CandleAI pages, redrawn as low-fidelity wireframes (structure only).*

## Visual design & system

- **Ink** #14161a — Headlines and body text
- **Paper** #fefefe — Page background
- **Candle green** #0e9c78 — The payoff line of each headline
- **Action green** #10a37f — Solid buttons in the docs
- **Logo mint** #27e9b6 — The logo mark
- **Gold** #ffc764 — “Get Started” buttons (a gradient from #ffce78 to #ffbe4c)
- **Waterline** #92cac8 — The band of services Candleweb runs
- **Banner amber** #8a5500 — The custody line, on cream #fffaf2

*two lines, two voices*

Headlines come in two lines: the plain statement in ink, the payoff in a green-to-gold gradient — “Don’t want to build a bot? **Use ours.**” The same gold carries every primary button, so the eye goes from the promise to the action.

Small labels, timestamps and order data are set in a monospaced face. Anything that reads like a log — a candle closing, a fill, a stop being armed — looks like one.

![CandleAI page: “Don’t want to build a bot? Use ours.” beside cards showing CandleAI reading the chart, deciding, and running a trade in the user’s account](https://ministar-samuel.com/case-studies/candleweb/candleai-desktop.webp)

![Candleweb home page, top of the page](https://ministar-samuel.com/case-studies/candleweb/home-desktop.webp)

1. **The custody line** — “Your keys, your exchange. Candleweb never holds your funds.” — above the logo, on every page.
2. **Three doors first** — Bring your bot, CandleAI and Academy lead the navigation; Pricing, Docs and Blog follow.
3. **Statement, then payoff** — The second line of the headline carries the green-to-gold gradient.
4. **What you build** — Three nodes in n8n: a webhook, an AI agent, and an HTTP request to Candleweb.
5. **Under the waterline** — Everything Candleweb runs sits below a teal waterline, and a glass lens brings each service into focus.
6. **The system narrates itself** — A ticker reports the last candle close: “indicators computed for BTC/USDT 15m”.

## Key screens

**1. CandleAI — for everyone else**

Three decisions and it’s running: pick a market, set your limits, switch it on. At every candle close it returns buy, sell or do nothing — mostly do nothing — with a sentence explaining why.

Risk per trade, a position ceiling, pause at any time, and every decision on the record: the four controls the page promises.

![CandleAI page hero with the decision cards](https://ministar-samuel.com/case-studies/candleweb/candleai-desktop.webp)

**2. Pricing — same engine on every plan**

A flat monthly fee in naira or crypto, and a 0.1% fee only on volume above what the plan includes. **Paper** is free with no card and no keys, **Builder** goes live on one exchange, **Desk** runs several strategies across every exchange.

A plan finder — how you trade, how many agents, how many exchanges, monthly volume — lights up the plan that fits before anyone pays.

![Pricing page: “Same engine on every plan. You choose how far it reaches.” with monthly/yearly and naira/dollar toggles](https://ministar-samuel.com/case-studies/candleweb/pricing-desktop.webp)

**3. Academy — learn, then build**

Short, live, cohort-based programmes. The course in this capture pairs automation with n8n (an n8n Approved Curriculum) and personal finance, and ends with students building their own crypto trading bot.

Cohort fees include three months of the Builder plan, so a bot built in class can go straight onto a live market.

![Academy page featuring the course “AI Automation & Personal Finance 3”, with a “School never taught us this.” course card](https://ministar-samuel.com/case-studies/candleweb/tutor-desktop.webp)

**4. Docs — the setup guide**

A step-by-step guide for bot builders, no coding needed: import the ready-made n8n template or build the workflow node by node, test it on a Demo trade, then switch it on.

![Docs page: “Connect your trade to an n8n AI bot.” with a Download the n8n template button and the guide’s contents](https://ministar-samuel.com/case-studies/candleweb/docs-desktop.webp)

The setup guide is also where the product’s rules are written down plainly. A bot can only ever give an opinion; what happens to it is decided here:

**How Candleweb acts on a bot’s decision (Docs)** (flowchart):

1. Decision arrives
2. Above minimum confidence? — The minimum is 50 unless the trade changes it; at 50, a 50 is held.
3. BUY, SELL or HOLD?
4. Open a position — Only if the risk is LOW or MEDIUM and no position is open on that market. Long-only; the stop and size come from the trade’s risk settings.
5. Close the position — Only if “Let my bot’s SELL close the position” is on (off by default). A SELL never opens a short.
6. On the decision timeline — Every decision is recorded, and Candleweb’s reply says what it did and why.

![Pricing page, first half: the Paper, Builder and Desk plans, the Academy offer, the plan finder and the upgrade path](https://ministar-samuel.com/case-studies/candleweb/pricing-desktop-full-01.webp)
*Pricing, first half of the page: plans, the plan finder and “Start without paying. Upgrade when your agent earns its place.”*

## Build & handoff — the admin panel

Behind the product sits an internal admin panel, built front-end first from its Figma designs: a Next.js 16 app in a Turborepo monorepo, TypeScript and Tailwind 4, dark-only and desktop-first. There is no backend yet. Every value on every screen is a typed fixture, so the whole panel can be reviewed before an API exists.

Screens were built one reference screenshot at a time, in flow order — never invented from a Figma frame’s name. Every analytics screen groups its charts into titled bands with a one-line description, a rule the test suite enforces.

- **38** Routes in the screen table
- **421** Playwright specs, green
- **33** Logged build sessions

**How each screen was built** (flowchart):

1. Figma frame
2. Reference screenshot — Build only the screen whose screenshot has been supplied.
3. Typed fixture — Figures are made to add up: the revenue screen’s five breakdowns each sum to the same total.
4. Screen from shared parts — Panel cards, status badges, the sidebar, the top bar, one file per chart.
5. E2E on a production build — Playwright runs against a production build, never the dev server, which proved flaky on chart-heavy routes.
6. Changelog entry

*what the panel covers*

- **Users** — all users, segments, activity logs, and profiles with trade history, financials and referrals.
- **Revenue** — revenue management.
- **Trading** — trade analytics, a global trade feed, exchange management.
- **Platform content** — the Academy’s course catalogue, curriculum, cohorts, certificates, students and grading, and community tasks.
- **Marketing** — referrals, email campaigns, platform analytics.
- **System** — logs, admins and roles, the audit log, tool links, and the admin’s own account settings.
- **Notifications** — inbox, alerts and push, global notifications.

- **2026-08-09** — Setup and the login screen: The project audited, the monorepo set up, the Admin Portal Login built.
- **2026-08-17** — Trading section complete: Trade records, exchange management, the 404 screen and the Netlify deploy configuration.
- **2026-08-29** — Academy content: The curriculum section of Platform Content.
- **2026-10-06** — Figma file restructured: Moved to a new file and restructured: shared chrome, heights and naming.
- **2026-10-14** — Notifications: The admin’s inbox, alerts and push, and global notifications.
- **2026-10-15** — The control audit: A scan of every button, dropdown, filter and form found 134 items. First fix: **18 destructive dialogs that confirmed nothing** — the confirm handler is now required, so a 19th can’t compile. Create/Save buttons that only closed their dialog followed.

## Outcome & learnings

Candleweb is live at [candleweb.io](https://candleweb.io/). The positioning has moved since the earliest description of the product — from an AI trading companion to infrastructure for people who build their own bots, with CandleAI as the door for everyone else and the Academy feeding new builders in. The custody promise has become more exact along the way: an exchange account and trade-only keys, not a wallet.

No usage or trading figures are published here, and none are claimed. The admin panel is built but runs on fixtures; it is not yet wired to an API.

![Home on a phone: hero and the three n8n nodes](https://ministar-samuel.com/case-studies/candleweb/home-mobile.webp)
*Home*

![Home on a phone: the handoff steps 02 and 03](https://ministar-samuel.com/case-studies/candleweb/home-mobile-full-02.webp)
*The handoff*

![Home on a phone: what Candleweb handles, and the custody section](https://ministar-samuel.com/case-studies/candleweb/home-mobile-full-04.webp)
*Custody*

*open, from the admin panel’s own notes*

- ☐ Wire the panel to a real API — after fixing three components that would print a loss in the profit colour.
- ☐ Finish the control audit: the dialogs are fixed, but 90 buttons still have no handler.
- ☐ AI Unit Purchases, the one sidebar route not yet built.

*learnings*

- Lead with the custody promise; every other claim on a trading product is read through it.
- Write the rules down where builders look. The docs’ decision table says exactly when a BUY is acted on — that does more for trust than a slogan.
- A dialog that looks deliberate but does nothing is worse than a missing button. Make the handler required and let the compiler find the rest.

---
By Samuel Ministar · https://ministar-samuel.com/project/candleweb
