Focused online courses for creators and teams—minimal, actionable, and built to ship.
Learn what matters, skip the noise, and apply frameworks you can use today. Each course is structured for clarity:
short lessons, practical checklists, and progress you can measure.
Designed for: individual creators, product teams, and founders
Short lessonsClear outcomesTemplates & checklistsPractice-first
Minimal time, maximal impact
Each lesson is built around one outcome. You’ll know what to do next and why it matters.
Practice-first structure
Exercises, checklists, and templates help you apply the material immediately—no “watch and forget”.
SEO-friendly, clear curriculum
Topics are organized by outcomes: productivity, design, development, data, and leadership.
Built for modern teams
Use the same playbook across roles: shared definitions, faster handoffs, fewer misunderstandings.
Start with a clean, high-signal learning path
Want a quick sample of the teaching style? Open the preview, then request a personalized recommendation based on your role and goals.
Module
Control your workflow
A minimal system for planning, prioritizing, and shipping—without burnout or endless tool-hopping.
Module
Design for clarity
Create interfaces and docs that reduce ambiguity, speed decisions, and help teams execute.
Module
Build with confidence
Developer-friendly foundations: clean architecture, reusable patterns, and quality loops that stick.
Next cohort window
Limited-time window simulation: the timer updates live in your browser (no network calls).
00d
00h
00m
00s
Entry point
Course catalog
Productivity • Design • Dev • Data • Leadership
Explore focused courses, each designed around a measurable skill outcome. Find your next module and start building momentum.
See how the learning system works: outcomes, structure, practice loops, and how to keep progress visible without extra tools.
Want the structure first? Open the overview modal.
Support
Help choosing the right course
Phone: +1 (415) 907-2836
Tell us your role and constraints (time per week, team size, delivery cadence). We’ll recommend a path and a realistic plan.
Send a request—validated and stored locally for your convenience.
We use essential cookies to remember theme and consent preferences. Optional analytics can help improve course pages. You can change your mind anytime.
`;
const footerFallback = `
`;
async function injectComponent(path, mount, fallbackHtml){
try{
const res = await fetch(path, {cache:'no-store'});
if(!res.ok) throw new Error('HTTP '+res.status);
const html = await res.text();
mount.innerHTML = html;
}catch(e){
mount.innerHTML = fallbackHtml;
}
}
injectComponent('./header.html', headerMount, headerFallback);
injectComponent('./footer.html', footerMount, footerFallback);
const yearEl = () => $('#dcc_year');
const yearInt = new Date().getFullYear();
const mo = $('#dcc_modal');
const mt = $('#dcc_modal_title');
const mb = $('#dcc_modal_body');
const closeBtn = $('#dcc_modal_close');
function setTheme(next){
const root = d.documentElement;
if(next === 'dark'){ root.classList.add('dark'); }
else { root.classList.remove('dark'); }
try{ localStorage.setItem('dcc_theme', next); }catch(e){}
const label = $('#dcc_theme_label');
if(label) label.textContent = root.classList.contains('dark') ? 'Dark' : 'Light';
}
function getTheme(){
const root = d.documentElement;
return root.classList.contains('dark') ? 'dark' : 'light';
}
function toggleTheme(){
setTheme(getTheme()==='dark' ? 'light' : 'dark');
}
function safeShowModal(){
if(!mo) return;
if(typeof mo.showModal === 'function'){
if(!mo.open) mo.showModal();
}else{
mo.setAttribute('open','');
}
}
function safeCloseModal(){
if(!mo) return;
if(typeof mo.close === 'function'){
if(mo.open) mo.close();
}else{
mo.removeAttribute('open');
}
}
function renderModal(title, html){
mt.textContent = title;
mb.innerHTML = html;
safeShowModal();
setTimeout(() => {
const first = mb.querySelector('input,button,textarea,select,a');
if(first) first.focus();
}, 30);
}
function esc(s){
return String(s).replace(/[&<>"']/g, c => ({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
}
function validateEmail(v){
const x = String(v||'').trim();
if(x.length > 254) return false;
return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(x);
}
function validateName(v){
const x = String(v||'').trim();
return x.length >= 2 && x.length <= 60;
}
function validateMsg(v){
const x = String(v||'').trim();
return x.length >= 10 && x.length <= 1200;
}
function validatePhone(v){
const x = String(v||'').trim();
return /^\+1 \(\d{3}\) \d{3}-\d{4}$/.test(x) || /^\+\d{1,3}[\s-]?\(?\d{2,4}\)?[\s-]?\d{3,4}[\s-]?\d{3,4}$/.test(x);
}
function openContact(prefillRole){
const saved = (function(){
try{ return JSON.parse(localStorage.getItem('dcc_contact_draft')||'{}') }catch(e){ return {} }
})();
const role = String(prefillRole||saved.role||'').trim();
const name = String(saved.name||'').trim();
const email = String(saved.email||'').trim();
const phone = String(saved.phone||'').trim();
const msg = String(saved.msg||'').trim();
const html = `
`;
renderModal('Contact & recommendations', html);
const form = $('#dcc_contact_form', mb);
const saveBtn = $('#dcc_save_draft', mb);
const ok = $('#dcc_success', mb);
const err = $('#dcc_error', mb);
function setBox(el, show, text){
el.style.display = show ? 'block' : 'none';
el.textContent = text || '';
}
function collect(){
const data = {
name: $('#dcc_name', mb).value.trim(),
role: $('#dcc_role2', mb).value.trim(),
email: $('#dcc_email', mb).value.trim(),
phone: $('#dcc_phone', mb).value.trim(),
msg: $('#dcc_msg', mb).value.trim()
};
return data;
}
function persistDraft(data){
try{
localStorage.setItem('dcc_contact_draft', JSON.stringify(data));
localStorage.setItem('dcc_contact_draft_ts', String(Date.now()));
}catch(e){}
}
saveBtn.addEventListener('click', function(){
const data = collect();
persistDraft(data);
setBox(err,false,'');
setBox(ok,true,'Draft saved locally.');
});
form.addEventListener('input', function(){
const data = collect();
persistDraft(data);
});
form.addEventListener('submit', function(ev){
ev.preventDefault();
const data = collect();
setBox(ok,false,'');
setBox(err,false,'');
const problems = [];
if(!validateName(data.name)) problems.push('Name must be 2–60 characters.');
if(!validateEmail(data.email)) problems.push('Please enter a valid email address.');
if(data.phone && !validatePhone(data.phone)) problems.push('Phone format looks invalid. Try: +1 (415) 907-2836');
if(!validateMsg(data.msg)) problems.push('Message must be 10–1200 characters.');
if(problems.length){
setBox(err,true,problems.join(' '));
return;
}
const inbox = (function(){
try{ return JSON.parse(localStorage.getItem('dcc_inbox')||'[]') }catch(e){ return [] }
})();
inbox.unshift({id:'dcc_'+Math.random().toString(16).slice(2), ts:Date.now(), ...data, page:'index'});
try{ localStorage.setItem('dcc_inbox', JSON.stringify(inbox.slice(0,50))); }catch(e){}
try{
localStorage.removeItem('dcc_contact_draft');
localStorage.removeItem('dcc_contact_draft_ts');
}catch(e){}
setBox(ok,true,'Request saved locally. We will contact you at the email provided (demo behavior). You can now close this window.');
setBox(err,false,'');
form.reset();
});
}
function openPreview(){
const html = `
Preview
A lesson built around one outcome
You’ll get: a short concept, a checklist, and an exercise that fits in a realistic timebox.
Example checklist
Define the outcome in one sentence
Pick a “done” metric you can check in 5 minutes
Timebox the first iteration (25–45 minutes)
Write a small review note: what to keep, what to change
Want a tailored path? Provide your role, then open recommendations.
`;
renderModal('Course preview', html);
$('#dcc_preview_close', mb).addEventListener('click', safeCloseModal);
$('#dcc_preview_reco', mb).addEventListener('click', function(){
safeCloseModal();
const role = ($('#dcc_role') && $('#dcc_role').value || '').trim();
openContact(role);
});
}
function openSections(){
const html = `
Core sections you’ll see across courses
A consistent structure makes it easier to return, review, and keep progress visible. You can reuse the same workflow across topics.
01
Outcome
A clear target with a “done” condition. Not theory—what changes after you finish.
02
Concept
A compact explanation, designed to be re-read quickly during real work.
03
Checklist
Steps you can follow under time pressure—high signal, no fluff.
04
Practice loop
A small exercise with review prompts so the skill sticks.