Lay the foundation. Sole prop vs. incorporation — know your options.
Enter Station →
08
THE SPARK
Ignite your brand palette. 3 curated colour palettes with font pairings.
Enter Station →
09
THE PITCH DECK
Shape your story slide by slide. A complete deck outline built to get you funded.
Enter Station →
10
THE LAUNCH
Fire it into the world. A go-to-market checklist and strategy tailored to your business.
Enter Station →
11
THE BRANDING
Brand it in fire. Get 3 AI-generated logo concepts seared from your brand name and vibe.
Enter Station →
12
THE GRID
Map your competitive landscape. Find your white space and own it.
Enter Station →
⚠ Forge Warning
THE QUICKENING
Skip the craft. Take the shortcut.
A true smith forges each station by hand — one question, one flame, one decision at a time. That is the full Smithy experience.
But you have chosen The Quickening — six questions answered once, and the forge fires all 12 stations simultaneously. You will get results, but they will lack the depth of a full forging.
The Forge Code says:
"Do not rush the cooling. A blade shaped in haste is a blade that breaks under pressure."
Full Casting Mode
POUR THE MOLD
Six questions. Answer them honestly — then we fire all 12 stations and hand you The Final Finishing.
FIRING ALL STATIONS…
Preparing the mold…
Cast Complete
THE FINAL FINISHING
Plain Text — Select All & Copy
Click inside the box to select · or use the buttons above
Start Here
NAME YOUR NEXT BIG THING
Describe your startup, product, or idea — and get 8 original, founder-ready business names in seconds. Built for entrepreneurs who move fast.
All Styles
Modern
Bold
Playful
Elegant
Abstract
Words:
Any
1 Word
2 Words
3 Words
Include word:
Anywhere
Start
Middle
End
Try:AI hiring tool for startupsSubscription box for remote workersMarketplace for freelance designersWellness app for foundersB2B invoicing & payments SaaS
YOUR NAMES
Module 02
TAGLINE GENERATOR
Turn your brand name and vibe into punchy, memorable taglines.
Module 03
ELEVATOR PITCH
Build a crisp pitch step by step. Walk away with 3 tonal variations.
Module 04
ICP BUILDER
Define your Ideal Customer Profile. Get 2 detailed personas with psychographics, pain points, and buying triggers.
>
Build My ICP
Module 05
PRICING STRATEGY
Position and price your offer. Get a tiered pricing framework with rationale and market context.
Sole prop vs. incorporation vs. partnership — understand your options and steps to register.
🇨🇦 Canada
🇺🇸 United States
🇬🇧 United Kingdom
🇦🇺 Australia
Other
Just Starting
Early Revenue
Growing
Seeking Investment
Station 09
THE PITCH DECK
Shape your story slide by slide. Get a complete, investor-ready deck outline built around your business.
Investor Pitch
Sales Deck
Demo Day
Partnership
Pre-seed
Seed
Series A
Bootstrapped
>
Build My Deck
Station 10
THE LAUNCH
Fire it into the world. A go-to-market strategy and launch checklist tailored to your business type and stage.
All Channels
Social First
Content / SEO
Direct Outreach
Community
2 Weeks
1 Month
3 Months
>
Build Launch Plan
Station 11
THE BRANDING
Enter a word, phrase, or brand name. Get 3 distinct AI-generated logo concepts — abstract marks, wordmarks, and icons ready to remix.
Abstract Mark
Wordmark
Icon / Emblem
Monogram
Badge / Crest
Station 12
THE GRID
Map your competitive landscape. See exactly where the gaps are — and how to own the space nobody else is standing in.
Pre-launch
Early traction
Growing
Established
Price / Value
Ease of Use
Features
Trust
Speed
>
Map the Landscape
Station 08
THE SPARK
Ignite your brand palette. Describe your vibe and get 3 curated colour palettes with font pairings.
THE REFORGE
Rebuild & Reimagine
THE REFORGE
Your business exists. Something isn't working — or could work better. Let's audit what you have, find what's stale, and build a full roadmap to reimagine it.
Under 1 yr
1–3 yrs
3–5 yrs
5+ yrs
Evolve it
Bold Pivot
Full Rebrand
Not Sure
The Full Smithy Is Yours
Work Every Station
Every tool below is available to you. Use your roadmap as a guide — or explore freely. Your rebrand context is fresh, now put it to work.
01
THE NAMING FORGE
Strike a new name from raw idea.
Enter Station →
02
THE EDGE
Sharpen your new message to a point.
Enter Station →
03
THE CRUCIBLE
Distill your repositioned pitch.
Enter Station →
04
THE MOLD
Cast your new ideal customer.
Enter Station →
05
THE SCALE
Reprice for your new positioning.
Enter Station →
06
THE CLAIM
Secure your new territory online.
Enter Station →
07
THE BLUEPRINT
Does the structure still fit?
Enter Station →
08
THE SPARK
Ignite your refreshed brand palette.
Enter Station →
09
THE PITCH DECK
Build your relaunch story slide by slide.
Enter Station →
RETURN TO A SAVED SESSION
Have a session code? Pick up right where you left off.
That code doesn't look right. Double-check and try again.
YOUR SESSION IS SAVED
This code saves this station's inputs and results. Paste it back on the home screen to pick up right where you left off.
"You walked every station. You came in with nothing but an idea — you leave with a business. The name, the pitch, the customers, the price, the structure. It's all yours now."
— Smithy
Listening
SMITHY'S MOOD
VOICE ON
SPEAK ANYTIME
FORGE LOG
The forge is quiet. Start a conversation with Smithy.
Session Paused
' +
'
Your Fellow stepped away to protect your space.
' +
'';
document.body.appendChild(lock);
document.getElementById('resumeSessionBtn').addEventListener('click', function() {
_resetActivity();
});
return;
}
if (elapsed >= _WARN_MS && !_warnShown) {
// auto-save on pause warning
// FF: no consolidation function available yet
_warnShown = true;
const warn = document.createElement('div');
warn.className = 'inactivity-warning';
warn.id = 'inactivityWarning';
warn.innerHTML = '
Still there?
' +
'
Session will pause in 1 minute for privacy.
';
document.body.appendChild(warn);
}
}, 15000);
})();
// ── Smithy Memory: Load consolidated memory on forge open ──
window._smithyMemoryLoaded = false;
window._smithyMemoryContext = null;
async function _loadSmithyMemory() {
if (window._smithyMemoryLoaded) return;
if (localStorage.getItem('fellow_memory') !== 'on') return;
var token = sessionStorage.getItem('ff_token');
if (!token) return;
try {
var res = await fetch('/.netlify/functions/consolidate', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token },
body: JSON.stringify({ action: 'get_consolidated', name: window._ffUserName || 'anonymous' })
});
var data = await res.json();
if (data.ok && data.memory) {
var ctx = '';
if (data.memory.identity) ctx += '\n[SMITHY MEMORY — WHO THIS FOUNDER IS]\n' + data.memory.identity;
if (data.memory.patterns) ctx += '\n[SMITHY MEMORY — PATTERNS]\n' + data.memory.patterns;
if (data.memory.recentSessions && data.memory.recentSessions.length > 0) {
ctx += '\n[SMITHY MEMORY — RECENT SESSIONS]\n' + data.memory.recentSessions.join('\n');
}
if (data.memory.crossFellowMemory) {
ctx += '\n[CROSS-FELLOW CONTEXT — What other Fellows know about this person]\n' + data.memory.crossFellowMemory;
}
if (ctx) window._smithyMemoryContext = ctx;
window._smithyMemoryLoaded = true;
console.log('[smithy] Memory loaded:', data.memory.isolated ? 'isolated mode' : 'shared mode');
}
} catch (e) { console.warn('[smithy] Memory load failed:', e); }
}
// ── Smithy Memory: Consolidate on session end ──
window._ffConsolidateSent = false;
function _ffConsolidateSession() {
if (window._ffConsolidateSent) return;
if (localStorage.getItem('fellow_memory') !== 'on') return;
var token = sessionStorage.getItem('ff_token');
if (!token) return;
if (typeof _smitherHistory === 'undefined' || _smitherHistory.length < 4) return;
var sent = navigator.sendBeacon(
'/.netlify/functions/consolidate?token=' + encodeURIComponent(token),
new Blob([JSON.stringify({
action: 'summarize_session',
name: window._ffUserName || 'anonymous',
messages: _smitherHistory.slice(-30).map(function(m) {
return { role: m.role, content: (m.content || '').substring(0, 500) };
})
})], { type: 'application/json' })
);
if (sent) { window._ffConsolidateSent = true; console.log('[smithy] Session consolidation sent'); }
}
// ── Robust save-on-close: sendBeacon + visibilitychange + freeze ──
(function() {
let _ffSaveOnCloseSent = false;
function _ffSaveOnClose() {
if (_ffSaveOnCloseSent) return;
var token = sessionStorage.getItem('ff_token');
if (!token) return;
// Consolidate Smithy session memory
_ffConsolidateSession();
// Save Smithy conversation if it exists and has substance
if (typeof _smitherHistory !== 'undefined' && _smitherHistory.length >= 4) {
var sent = navigator.sendBeacon(
'/.netlify/functions/claude-proxy',
new Blob([JSON.stringify({
action: 'save_smithy_session',
messages: _smitherHistory.slice(-20).map(function(m) {
return { role: m.role, content: (m.content || '').substring(0, 300) };
}),
token: token
})], { type: 'application/json' })
);
if (sent) { _ffSaveOnCloseSent = true; }
}
// Stop any active audio/recording
if (typeof currentAudio !== 'undefined' && currentAudio) { currentAudio.pause(); currentAudio = null; }
if (typeof _rawAudio !== 'undefined' && _rawAudio) { _rawAudio.pause(); _rawAudio = null; }
if (typeof recognition !== 'undefined' && recognition) { try { recognition.stop(); } catch(e) {} }
if (typeof isRecording !== 'undefined') { isRecording = false; }
if (typeof _smitherSTT !== 'undefined' && _smitherSTT) { try { _smitherSTT.stop(); } catch(e) {} }
}
// Layer 1: beforeunload (desktop)
window.addEventListener('beforeunload', _ffSaveOnClose);
// Layer 2: visibilitychange (mobile, phone lock, app switch)
document.addEventListener('visibilitychange', function() {
if (document.visibilityState === 'hidden') _ffSaveOnClose();
});
// Layer 3: freeze (browser tab freeze)
if ('onfreeze' in document) {
document.addEventListener('freeze', _ffSaveOnClose);
}
})();
// ── DOWNLOAD CONVERSATION BUTTON (FF) ──
(function() {
var dlBtn = document.createElement('div');
dlBtn.className = 'fellow-dl-btn';
dlBtn.id = 'fellowDlBtn';
dlBtn.title = 'Save this conversation';
dlBtn.innerHTML = '';
dlBtn.onclick = function() { if(typeof exportSmithyChat==='function')exportSmithyChat(); };
document.body.appendChild(dlBtn);
setInterval(function() {
var msgs = typeof _smitherHistory !== 'undefined' ? _smitherHistory : [];
var forgeOpen = document.getElementById('smitherModal') && document.getElementById('smitherModal').classList.contains('open');
dlBtn.classList.toggle('visible', forgeOpen && msgs.length >= 4);
}, 2000);
})();