diff --git a/web/src/tabs/MembershipTab.tsx b/web/src/tabs/MembershipTab.tsx
index 79c33d5..8c69bcc 100644
--- a/web/src/tabs/MembershipTab.tsx
+++ b/web/src/tabs/MembershipTab.tsx
@@ -1,316 +1,183 @@
-import React from 'react';
-import {
- Crown,
- Zap,
- Lock,
- CheckCircle2,
- Sparkles,
- Dna,
- ArrowUpRight,
- Fingerprint,
- Cpu,
- Target,
- Activity
-} from 'lucide-react';
-import { TIER_POLICIES } from '../lib/TierPolicy';
-
-const PlanCard: React.FC<{
- id: string;
- policy: any;
-}> = ({ id, policy }) => {
- const isElite = id === 'elite';
- const isPro = id === 'pro';
- const themeColor = isElite ? '#00ff88' : isPro ? '#3498db' : '#929292';
-
- const price = id === 'free' ? '$0' : id === 'pro' ? '$49' : '$199';
- const description = id === 'free' ? 'Perfect for learning the fundamentals of automated trading with zero risk.' :
- id === 'pro' ? 'For serious traders looking to scale their operations with more bots and flexibility.' :
- 'The full Bytelyst ecosystem with zero restrictions and maximum performance.';
-
- const specs = [
- { label: 'Latency', value: id === 'free' ? 'Standard' : id === 'pro' ? 'Priority' : 'Real-time', icon:
},
- { label: 'Capacity', value: id === 'free' ? '1 Node' : id === 'pro' ? '5 Nodes' : 'Unlimited', icon:
},
- { label: 'Access', value: id === 'free' ? 'Basic' : id === 'pro' ? 'Full' : 'Exclusive', icon:
},
- { label: 'Performance', value: id === 'free' ? 'Capped' : id === 'pro' ? 'Advanced' : 'Unlimited', icon:
}
- ];
-
- return (
-
-
-
-
-
- {isElite ? : isPro ? : }
-
-
- Tier Level
- {policy.label}
-
-
- {isElite && (
-
- Peak
-
- )}
-
-
-
-
-
{price}
- /mo
-
-
- Professional Grade DNA
-
-
-
-
- {description} Enhanced with Bytelyst's core strategy engine and isolated security nodes.
-
-
-
- {specs.map((spec, i) => (
-
-
- {spec.icon} {spec.label}
-
-
{spec.value}
-
- ))}
-
-
-
-
-
- {id === 'free' ? 'Safe Style Only' : id === 'pro' ? 'Safe & Balanced' : 'All Risk Styles Unlocked'}
-
-
-
- {id === 'free' ? '$100 Profit Limit' : id === 'pro' ? '$2,000 Profit Limit' : 'Zero Profit Restrictions'}
-
-
-
-
-
-
-
-
-
-
-
- );
-};
-
-export const MembershipTab: React.FC = () => {
- return (
-
-
-
-
-
-
-
-
-
-
-
- Membership
- Plans
-
-
- Upgrade your algorithmic edge with advanced strategies and priority execution.
-
-
-
-
-
- Tiers
- 3
-
-
- Global Preview Mode Active
-
-
-
-
-
-
- {Object.entries(TIER_POLICIES).map(([id, policy]) => (
-
- ))}
-
-
-
-
- );
-};
+import React from 'react';
+import {
+ Crown,
+ Zap,
+ Lock,
+ CheckCircle2,
+ Sparkles,
+ Fingerprint,
+ Cpu,
+ Target,
+ Activity,
+ ArrowUpRight
+} from 'lucide-react';
+import { TIER_POLICIES } from '../lib/TierPolicy';
+import { PageHeader } from '../components/ui/page-header';
+import { Card, CardContent } from '../components/ui/card';
+import { Button } from '../components/ui/button';
+
+const PlanCard: React.FC<{
+ id: string;
+ policy: any;
+}> = ({ id, policy }) => {
+ const isElite = id === 'elite';
+ const isPro = id === 'pro';
+ const themeColor = isElite ? '#00ff88' : isPro ? '#3498db' : '#929292';
+
+ const price = id === 'free' ? '$0' : id === 'pro' ? '$49' : '$199';
+ const description = id === 'free'
+ ? 'Perfect for learning the fundamentals of automated trading with zero risk.'
+ : id === 'pro'
+ ? 'For serious traders looking to scale with more bots and more flexibility.'
+ : 'The full Bytelyst ecosystem with zero restrictions and maximum performance.';
+
+ const specs = [
+ { label: 'Latency', value: id === 'free' ? 'Standard' : id === 'pro' ? 'Priority' : 'Real-time', icon:
},
+ { label: 'Capacity', value: id === 'free' ? '1 Node' : id === 'pro' ? '5 Nodes' : 'Unlimited', icon:
},
+ { label: 'Access', value: id === 'free' ? 'Basic' : id === 'pro' ? 'Full' : 'Exclusive', icon:
},
+ { label: 'Performance', value: id === 'free' ? 'Capped' : id === 'pro' ? 'Advanced' : 'Unlimited', icon:
}
+ ];
+
+ return (
+
+
+
+
+
+ {isElite ? : isPro ? : }
+
+
+
+ Tier level
+
+
+ {policy.label}
+
+
+
+ {isElite && (
+
+ Peak
+
+ )}
+
+
+
+
+
{price}
+ /mo
+
+
+
+ Professional grade DNA
+
+
+
+
+ {description}
+
+
+
+ {specs.map((spec, i) => (
+
+
+ {spec.icon} {spec.label}
+
+
{spec.value}
+
+ ))}
+
+
+
+
+
+ {id === 'free' ? 'Safe style only' : id === 'pro' ? 'Safe and balanced' : 'All risk styles unlocked'}
+
+
+
+ {id === 'free' ? '$100 profit limit' : id === 'pro' ? '$2,000 profit limit' : 'Zero profit restrictions'}
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export const MembershipTab: React.FC = () => {
+ return (
+
+
+
+
+ 3 tiers
+ Preview pricing
+ Product direction only
+
+
+
+ {Object.entries(TIER_POLICIES).map(([id, policy]) => (
+
+ ))}
+
+
+ );
+};
diff --git a/web/src/views/ResearchView.tsx b/web/src/views/ResearchView.tsx
index 83795bc..8ff6683 100644
--- a/web/src/views/ResearchView.tsx
+++ b/web/src/views/ResearchView.tsx
@@ -7,6 +7,7 @@ import { VisualRuleBuilder, type VisualRule } from '../components/strategy/Visua
import { createTradeProfile } from '../lib/profileApi';
import { BacktestRunnerPanel } from '../backtest/components/BacktestRunnerPanel';
import { PageHeader } from '../components/ui/page-header';
+import { Card, CardContent } from '../components/ui/card';
type ResearchTab = 'Strategies' | 'Visual Builder' | 'Code Editor' | 'Signals' | 'Backtesting';
@@ -105,10 +106,10 @@ export function ResearchView() {
{tab === 'Visual Builder' && (
-
+
Visual Rule Builder
-
+
Build a trading strategy by composing IF/THEN rules. Drag rows to reorder. Click "Save Strategy" to store it.
@@ -134,10 +135,10 @@ export function ResearchView() {
{tab === 'Code Editor' && (
-
+
Code Strategy Editor
-
+
Write a custom strategy function in JavaScript. Click "Run Backtest" to test it against historical data.
@@ -164,23 +165,10 @@ export function ResearchView() {
function CodeStrategyEditorFallback() {
return (
-
- Loading code strategy editor…
-
+
+
+ Loading code strategy editor…
+
+
);
}