AllFrontierGlobal · business library
Business library › Vibe coding

Vibe coding

TL;DR “Vibe coding” is a relatively new and fluid term — it doesn’t yet have a single formal definition — but it’s emerging across several creative and tech cont

Updated Jul 2026Bloom UnderstandDigComp Problem solvingType ConceptDepth In-depthDifficulty AdvancedRead ~17 minBloom AnalyzeConcepts 8 linkedCluster Cluster VMode Chat-ready
Chat with AI about this
Master itDiscoverUnderstandApplyAnalyzeEvaluateCreateTeach— climb from reading to teaching using the actions above

“Vibe coding” is a relatively new and fluid term — it doesn’t yet have a single formal definition — but it’s emerging across several creative and tech contexts. Here are the main interpretations depending on where it’s used:


? 1. Creative Coding with Emotional or Aesthetic Intent118 words

? 1. Creative Coding with Emotional or Aesthetic Intent

In art, music, or design communities (especially generative art and AI scenes), vibe coding means coding based on feel rather than strict logic.
It’s about:

  • Letting intuition, mood, and aesthetic “vibes” drive your code.
  • Focusing on flow and expression, not perfection.
  • Writing code that produces art, visuals, or sounds that evoke a specific emotion or atmosphere.

? Think of it as:

“Coding to express a vibe rather than solve a problem.”

For example:

  • In music, a coder might tweak synth parameters or generative beat rules until it “feels right.”
  • In visuals, it could mean adjusting noise functions, color palettes, and motion flows by intuition until the piece feels balanced or alive.

⚙️ 2. Intuitive Development Workflow (UX + AI)86 words

⚙️ 2. Intuitive Development Workflow (UX + AI)

In software and UX, vibe coding can describe a human-AI hybrid approach to building apps or experiences through natural language and “vibe prompts” — not rigid syntax.

This might involve:

  • Describing what you want an app to feel like (“a calm, meditative journaling vibe with flowing transitions”) and having an AI co-generate code/UI accordingly.
  • Tools like Cursor, Replit AI, or GPT-driven IDEs are edging toward this — turning “vibe-level” direction into functional code.

So it’s coding by describing energy, mood, and aesthetics — not just features.


? 3. Musical or Sonic Context74 words

? 3. Musical or Sonic Context

In music production (especially in electronic, metal, or lo-fi circles), “vibe coding” can refer to:

  • Creating soundscapes or riffs by feel, layering tones, loops, or MIDI effects intuitively.
  • Using DAW automation, effects chains, or algorithmic patterns to match a vibe (e.g., dark cinematic, euphoric trance, dystopian glitch).

For example, a producer might say:

“I was vibe-coding that drop — just letting the bass modulate itself till it hit that grimy sweet spot.”


? 4. Philosophical or Cultural Sense41 words

? 4. Philosophical or Cultural Sense

Finally, “vibe coding” can also mean decoding or expressing the vibe of a culture, mood, or aesthetic — essentially translating emotion into a system (visual, sonic, or digital).
It’s part of a larger movement toward “emotional computing” and “affective design.”


? TL;DR — The Essence:65 words

? TL;DR — The Essence:

Vibe coding = Using intuition, mood, and emotional feedback as your primary guide while coding or creating, instead of relying purely on analytical logic.

To undertake vibe coding successfully, you have to learn to balance intuitive flow with technical awareness — to make the code an extension of your emotional or aesthetic state.

Here’s a complete breakdown of how to do it right ?


⚡️ 1. Set a Clear Emotional or Aesthetic Intention68 words

⚡️ 1. Set a Clear Emotional or Aesthetic Intention

Before writing a line of code, ask:

  • What vibe am I expressing?
    → Calm? Chaotic? Eerie? Transcendent? Groovy? Sacred?
  • What’s the energy flow — rising, pulsing, still, decaying, transforming?
  • If this were a color, a sound, or a feeling — what would it be?

? Example:

“I want this generative piece to feel like late-night neon rain — solitude with motion.”

That sentence becomes your emotional design doc.


? 2. Enter Flow State (Don’t Overthink Early)77 words

? 2. Enter Flow State (Don’t Overthink Early)

Vibe coding depends on flow — a state where intuition drives decisions faster than conscious logic.

Tips:

  • Start with minimal structure: one loop, one function, one visual/audio seed.
  • Don’t stop to debug or optimize — feel it first, fix later.
  • Use tools that let you see/hear results immediately (p5.js, Tone.js, TouchDesigner, Hydra, Max/MSP, Unreal Blueprints, etc.).
  • Turn off distractions, even your analytical voice.

? It’s like jamming: code, see what it does, riff off that reaction.


? 3. Prototype Rapidly and Emotionally50 words

? 3. Prototype Rapidly and Emotionally

Treat your code like clay — constantly reshape it based on vibe feedback.

  • Use randomness, noise, or parameter mapping to generate surprises.
  • When something feels right, freeze it — snapshot that version.
  • When something feels “off,” pivot, don’t patch.

? Emotional feedback is your debugging signal.


? 4. Translate Feelings into Parameters53 words

? 4. Translate Feelings into Parameters

This is the secret move of great vibe coders.

Convert your emotional sense into controllable variables:

FeelingCode Parameter
CalmLow frequency noise, slow LFO, muted palette
AnxietyHigh jitter, unpredictable modulation
DreamySoft gradients, delayed reverbs, fading feedback
AggressiveSharp envelopes, contrast, distortion

You’re not coding numbers — you’re coding affect.


? 5. Iterate Like a Musician53 words

? 5. Iterate Like a Musician

Once your first prototype exists:

  • Play it, feel it, tweak the tempo, tone, rhythm, or balance.
  • Let repetition refine your sense of flow.
  • Learn to “listen” to your code’s behavior as though it’s an instrument.

? Every iteration should push it closer to your core vibe — not necessarily to perfection.


? 6. Keep Structure Light, Modularity High49 words

? 6. Keep Structure Light, Modularity High

Vibe coding thrives on freedom, but it can devolve into chaos if not managed.

  • Write small, reusable functions (each representing a “vibe cell”).
  • Comment in emotional shorthand (e.g. // dreamy fade zone or // chaos burst begins).
  • When you refactor, protect the “vibe logic” before optimizing performance.

? 7. Collaborate or Cross-Pollinate39 words

? 7. Collaborate or Cross-Pollinate

Great vibes evolve from contrast. Try:

  • Sharing the code with someone who brings a different aesthetic energy.
  • Feeding data from one art form (sound, visuals, motion) into another.
  • Syncing to live inputs — music, sensors, or generative AI text.

? 8. Capture the Vibe, Don’t Chase It39 words

? 8. Capture the Vibe, Don’t Chase It

The most subtle art of vibe coding:

When it feels right — stop.

Don’t polish the soul out of it.
Save the imperfect version that still feels alive.

You’re not building software; you’re sculpting an emotion with logic.


✨ Core Principle103 words

✨ Core Principle

Vibe coding = coding from your nervous system, not just your brain.
You’re translating feeling → form → feedback → flow.


Here are some of the best-in-class tools (frameworks, environments, libraries, and platforms) across skill levels that work extremely well for vibe coding / generative / expressive coding. Each tool has different strengths (real-time visuals, music, interactivity, node-based, textual, etc.), so you can pick based on what “vibe” you want to express and your comfort with code.

I’ll group them by beginner → intermediate → advanced / hybrid (code + visual) so you can pick what fits your level and grow.


? Beginner / Entry Level Tools155 words

? Beginner / Entry Level Tools

These are great when you’re just starting — they reduce friction so you can focus on feeling, not fighting syntax.

ToolWhy it’s good for vibe codingWhat you can doNotes / tips
p5.jsVery beginner-friendly, instant visual feedback, active community. p5js.org+2p5js.org+22D / 3D sketches, animations, interaction, generative visuals in browserWorks directly in the browser, so you see results live — ideal for iterating by feel.
ProcessingThe “classic” creative coding environment, simple and expressive. AIArtists.org+2Hacker News+2Graphics, generative art, interactive visuals, data-driven artHas Java, Python (processing.py), and JavaScript modes.
RiTa / rita.jsFor generative text, poetry, language-driven art. WikipediaCombine with p5.js or Processing to integrate textual logicUse it when your “vibe” involves words, sound, grammar, narrative.
Canvas-sketch (JavaScript)A minimal creative-coding scaffolding to manage canvas, time, utilitiesGood for generative prints, web artOften cited by the creative coding community as an alternative to p5.js. Reddit

? Intermediate / More Expressive Tools147 words

? Intermediate / More Expressive Tools

Once you have more confidence, these tools let you push more complexity, performance, or multi-modal vibes.

ToolStrength for vibe codingUse casesTips / caveats
TouchDesignerNode-based, real-time, strong for visuals + interactivity. WikipediaInteractive installations, live visuals, VJ setsBecause it's node-based, you can combine logic visually + code.
openFrameworks / CinderMore performance, more control (in C++). AIArtists.orgComplex generative visuals, custom shaders, high performanceSteeper learning curve, but a powerful tool once mastered.
Houdini (procedural / procedural generation)Superb for 3D, particle systems, procedural motion, simulations. Wikipedia3D generative art, motion graphics, procedural animationUse SOPs, nodes, and scripts to build evolving visual systems.
GenFlowA newer framework aiming for a modular, accessible generative art system with node editing + natural language assistance. arXivEasier creation of complex generative visuals with less coding overheadGreat bridge between visual and code-first workflows.

? Advanced / Hybrid / Experimental Tools & Concepts173 words

? Advanced / Hybrid / Experimental Tools & Concepts

These are for when you want to push the frontier of vibe coding — combining AI, semantic prompts, hybrid interfaces, etc.

Tool / ConceptWhy it’s interestingWhat you can experiment with
SpellburstA node-based interface that lets you mix semantic prompts + code, bridging the gap between natural language and code. arXivYou can “vibe-prompt” parts of your creative system and also see/edit the generated code — great for exploratory coding.
ComfyUIThough more in the AI / generative image domain, it's node-based and modular. WikipediaUse it for image generation, combine with visual logic for layered aesthetic effects.
Custom shader tools / GLSL / WebGLTo control every pixel or effect in your visual output — often used in advanced generative artWrite your own fragment / vertex shaders, combine with p5.js, TouchDesigner, etc.
AI “vibe assistance” layers / prompt-to-code integrationsUse GPTs or image diffusion models to generate code fragments, color palettes, motion rulesFor example, ask “create a shader that feels like drifting smoke” and refine the code output

? Tool Selection Tips & Workflow Advice212 words

? Tool Selection Tips & Workflow Advice

  • Start with feedback loops: Tools that let you see or hear changes immediately (in real time) are gold for vibe coding. Edit → see/feel change → edit again.
  • Don’t pick based on prestige, pick for your vibe: If your aesthetic is 2D vector flow, p5.js might beat Houdini for you. If you want big 3D transformations, go for Houdini or TouchDesigner.
  • Layer your toolchain: Use multiple tools together. For example: generate geometry in Houdini, export to TouchDesigner for live manipulations, output visuals to a web page using p5.js.
  • Use node + code hybrid tools: Tools like TouchDesigner or Spellburst let you mix visual patching with code — this helps you experiment quickly without losing control.
  • Build your library of “vibe snippets”: small code modules or visual patches that produce certain emotional textures (e.g. noise flutter, wave shimmer, glitch bursts). Reuse and remix.
  • Study peer art / frameworks: Explore generative art communities (e.g. fxhash, OpenProcessing), see how others manage vibe with code. Hacker News threads frequently mention Processing and p5.js as starting points. Hacker News+1

Here’s a compact, battle-tested playbook for ideating an app from scratch using vibe coding. It’s practical, step-by-step, and tool-forward so you can move from a feeling to a clickable prototype quickly.

1) One-sentence goal (start here)28 words

1) One-sentence goal (start here)

Write a single sentence that captures the vibe + purpose.
Example: “A calm daily reflection app that feels like late-night neon rain — slow, intimate, minimal interruptions.”

2) Vibe Brief (template — fill this out)64 words

2) Vibe Brief (template — fill this out)

  • Vibe word(s): (e.g., tranquil / gritty / euphoric / raw)
  • Target user: (who feels this vibe? age, context, emotional state)
  • Core need: (what problem or desire does vibe solve?)
  • One-line value prop: (why they’ll open it daily)
  • Sensory cues: (colors, textures, sound, motion)
  • Primary context of use: (commute / night / studio / party)
  • Must-have feature: (1 thing that captures the vibe)
3) Quick 30-minute ideation ritual (convert feeling → features)39 words

3) Quick 30-minute ideation ritual (convert feeling → features)

  1. Set timer 10 min: free-write scenarios where the user would open the app. Don’t edit.
  2. 10 min: turn scenarios into micro-features (each scenario → 2 features).
  3. 10 min: pick the top 3 features that most directly deliver the vibe.
4) Build a Vibe Board (moodboard + behavior)50 words

4) Build a Vibe Board (moodboard + behavior)

Purpose: make the intangible concrete. Capture:

  • color swatches, sample micro-interactions (e.g., slow fade vs snap), sounds (short descriptions), words/phrases that describe the emotional tone.
    Tools: Miro / FigJam / Canva / Notion (use an image + short clips + single-sentence notes).
    Action: export as PNG and pin to your project.
5) Map the Core Loop (the smallest repeatable experience)55 words

5) Map the Core Loop (the smallest repeatable experience)

Every app’s life comes from its core loop — what the user does repeatedly.

  • Example for reflective app: Open → single prompt → 90-sec voice/text reply → optional save / share → soft affirmation animation → closed.
    Write it as: Trigger → Action → Feedback → Reward (how the vibe is delivered at each step).
6) Low-fi to Clickable Prototype (fast, feel-driven)85 words

6) Low-fi to Clickable Prototype (fast, feel-driven)

Workflow:

  • Paper sketch (5–10 minutes) for 3 screens.
  • Low-fi prototype in Figma or Framer (drag-and-drop).
  • Add micro-interactions that sell the vibe: slow easing, particle motion, ambient background audio, subtle haptics spec.
    Tools by level:
  • Beginner: Figma (templates), Marvel, FigJam for flows.
  • Intermediate: Framer (for motion + interaction), ProtoPie (complex interactions).
  • No-code app builder (if you want real device testing fast): FlutterFlow, Adalo, Bravo Studio.
  • For generative elements (visuals/sound): Lottie for vector motion, Tone.js for in-app soundscapes, small WebGL/GLSL snippets for backgrounds (can embed as WebView).
7) Vibe-first UX copy & microcopy33 words

7) Vibe-first UX copy & microcopy

Write microcopy that supports the mood: single-sentence prompts, soft CTAs (e.g., “breathe in → jot”), micro-animations timed to text. Test several tone variants (clinical, whimsical, poetic) and choose the one that feels right.

8) Quick user feedback loop (do not over-engineer)38 words

8) Quick user feedback loop (do not over-engineer)

Do 3 rapid tests:

  • 3 friends or 3 target users. Show moodboard + click prototype.
  • Ask: “How did that make you feel? Where did the vibe break?”
    Collect only emotional cues and 1 concrete usability issue each. Iterate.
9) Freeze the MVP (what to build first)34 words

9) Freeze the MVP (what to build first)

Pick the smallest set of features that deliver the vibe and the core loop. Ship that. Example MVP: onboarding (vibe setup), core loop, save/undo, basic settings (audio off/on). No login if not needed.

10) Tech + tooling checklist (start → ship)90 words

10) Tech + tooling checklist (start → ship)

  • Project board: Notion / Trello / Linear → store Vibe Brief + tasks.
  • Design & prototype: Figma → Framer for motion (or Framer for both design + dev handoff).
  • Generative visuals/sound (if needed): Lottie + small web canvas (p5.js / Tone.js).
  • Rapid build: FlutterFlow / React Native (Expo) for cross-platform.
  • Backend (if persistence): Supabase or Firebase for simple auth + storage.
  • Analytics (vibe metrics): Mixpanel / Amplitude; track emotional retention signals (session length during calm moments, repeat opens per user).
  • User feedback: Hotjar / Typeform in-app short prompts.
11) Prompts & examples to use with GPT (accelerate ideation)73 words

11) Prompts & examples to use with GPT (accelerate ideation)

Use these to transform vibe → features or microcopy:

  • “You’re designing a mobile app with this vibe: [paste Vibe Brief]. List 6 micro-features that deliver that feeling in under 10 words each.”
  • “Write 6 onboarding microcopy lines (max 8 words) that match the vibe: [one-line goal].”
  • “Suggest 4 motion ideas for transitions consistent with this vibe (short descriptions).”
  • “Design a 3-screen core flow (screen name + one sentence of content + expected micro-interaction).”
12) Example tiny plan (so you can copy/paste)47 words

12) Example tiny plan (so you can copy/paste)

Vibe: late-night neon rain — solitude + motion
MVP features: daily prompt, 90-sec voice note, ambient background, slow particle rain background, one-tap save, daily streak (gentle)
Prototype tools: FigJam moodboard → Figma 3 screens → Framer for motion → FlutterFlow to ship POC → Supabase for storage.

13) Vibe metrics (what to measure)47 words

13) Vibe metrics (what to measure)

  • Immediate: Session length (are they lingering?), time on prompt, conversion of prompt → save.
  • Emotional proxies: repeat opens at specific times of day, ratio of voice vs text replies, NPS-style single question about feeling.
  • Drop points: where the vibe breaks (too busy, too noisy, too aggressive).
14) Short checklist to finish ideation88 words

14) Short checklist to finish ideation

  •  Completed Vibe Brief
  •  1 Vibe Board (colors + one sound)
  •  Core loop written + 3 wireframes
  •  Clickable prototype with one micro-interaction
  •  3 user feedback sessions (emotional + 1 usability note each)
  •  MVP feature list + tech stack decision

? “How do I take an app ideated through vibe coding and make it feasible for a global launch, using advanced but easy-to-use tools?”

That means: scalable architecture, multilingual UX, cross-platform deployment, analytics, localization, and continuous vibe integrity — without losing the creative edge.

Here’s the complete roadmap ?


? PHASE 1 — Global-Ready Architecture (No-Code + Low-Code + AI Assisted)16 words

? PHASE 1 — Global-Ready Architecture (No-Code + Low-Code + AI Assisted)

You want a stack that scales like a tech startup but feels like an artist’s sketchpad.

? Core App Builders (Front-End)126 words

? Core App Builders (Front-End)

1. Framer (for web apps / landing pages)

  • Natural-language site building with vibe-based visual control.
  • Auto-optimizes for mobile + SEO.
  • Integrates with Supabase or Firebase for data.
    ? Use for: global website presence, teaser apps, prelaunch funnels.

2. FlutterFlow (for mobile apps — Android + iOS)

  • No-code builder for Flutter framework (Google’s cross-platform).
  • Output is production Flutter code, editable by developers.
  • Advanced: integrates with Firebase, Supabase, OpenAI APIs, Stripe, Google Translate, etc.
    ? Use for: global MVP → scalable production app.

3. WeWeb (for progressive web apps, SaaS-like tools)

  • Great for connecting front-end to any backend (Airtable, Supabase, APIs).
  • Beautiful UI animations and responsive design out of the box.
    ? Use for: “web-first” vibe apps that later go mobile via PWA.

☁️ PHASE 2 — Scalable Backend & Global Infrastructure110 words

☁️ PHASE 2 — Scalable Backend & Global Infrastructure

You need reliability + speed + simplicity. Don’t reinvent — compose.

ToolFunctionWhy it fits vibe coding
SupabaseAuth + Database + File StorageOpen-source Firebase; Postgres-based; has REST + GraphQL APIs. Easy to scale, supports row-level security.
FirebaseRealtime backendExtremely easy setup, perfect for MVPs; has built-in analytics and multilingual support.
Cloudflare Workers / PagesGlobal CDN and edge functionsAuto-distributes your app across the globe → low latency everywhere.
VercelOne-click deploy for Next.js, Svelte, ReactPerfect for vibe-coded web apps; integrates with Framer, Next.js, etc.

? Combine Example:
FlutterFlow (front-end) → Supabase (backend) → Cloudflare CDN → Vercel marketing site → GPT-powered microfeatures via API.


? PHASE 3 — Globalization & Localization99 words

? PHASE 3 — Globalization & Localization

To make vibe universal, adapt emotion → language → culture.

AspectToolsDetails
Automatic translationLokalise / POEditor / WeglotManage in-app text translations (syncs with code).
Dynamic localizationGoogle ML Kit / DeepL APIAuto-detect user language, load localized content.
Cultural testingPlaybookUX / Maze / DscoutRun user tests in different countries — test emotional tone, not just text.
Fonts & TypographyInter, Noto Sans, ManropeUnicode-complete, culturally neutral, aesthetic.

? Tip: Always test your vibe color palette under different cultural interpretations (e.g., white = purity in the West, mourning in some Asian contexts).


? PHASE 4 — AI-Driven Personalization (Optional but Powerful)71 words

? PHASE 4 — AI-Driven Personalization (Optional but Powerful)

Let the vibe adapt to each user in real time.

UseTools
Mood-based personalizationOpenAI GPT API / Claude / Vertex AI
Dynamic themingFlutterFlow + OpenAI functions
Voice interaction / ambient journalingAssemblyAI / Whisper / Speechly
Emotion analyticsHume AI / Affectiva / Beyond Verbal APIs

? Vibe Principle: Let AI augment feeling, not override it — auto-adjust content rhythm, color tone, or sound based on emotional feedback.


? PHASE 5 — Cross-Platform Launch Stack97 words

? PHASE 5 — Cross-Platform Launch Stack

Goal: one pipeline → deploy web + mobile + desktop.

LayerToolPurpose
BuildFlutterFlow (outputs Flutter)Android, iOS, Web, Desktop
WebVercel or NetlifyGlobal web deploy
Mobile Store PublishFastlane + CodemagicAutomate build, sign, and publish to Google Play / App Store
AnalyticsMixpanel / Amplitude / Firebase AnalyticsTrack engagement & retention
NotificationsOneSignal / Firebase Cloud MessagingGlobal push notifications
PaymentsStripe / Paddle / LemonSqueezyInternational billing + currency auto-conversion

? Bonus: integrate Feature.fm or Appsflyer for smart linking, attribution, and retargeting if the app connects with music or content ecosystems.


? PHASE 6 — Global Launch & Vibe Preservation Loop59 words

? PHASE 6 — Global Launch & Vibe Preservation Loop

StageActionTool
Pre-launchCollect early signups, run geo testsFramer + ConvertKit
Soft Launch3 countries (low marketing spend)Google Play Console staged rollout
Vibe ValidationRun emotional resonance surveysTypeform + Mixpanel cohorts
IterateAdjust microcopy / animations per cultureFigma Variants + LottieFiles
Global LaunchScale marketing + translationsFirebase Remote Config + App Store localizations

? RECOMMENDED ADVANCED–EASY TOOLCHAIN SUMMARY101 words

? RECOMMENDED ADVANCED–EASY TOOLCHAIN SUMMARY

LayerBest-in-Class ToolWhy It’s Ideal for Vibe Coders
Front-EndFlutterFlow / FramerVisual, fast, expressive — intuitive yet production-grade
BackendSupabasePowerful, SQL-based, global scaling, simple UI
DeploymentVercel + CloudflareAutomatic global CDN distribution
LocalizationWeglot / LokalisePlug-and-play translation + cultural adaptation
AI / PersonalizationOpenAI API + Hume AIAdjust UX tone to user emotion
Testing / FeedbackMaze + PlaybookUXEmotional + usability testing across geos
AnalyticsMixpanel + FirebaseDeep funnel + retention analytics
MarketingFeature.fm + Appsflyer + Meta AdsUnified creative campaign automation
DesignFigma + Lottie + NotionCollaborative, aesthetic, and global-ready

✨ Key Philosophy for Global Feasibility44 words

✨ Key Philosophy for Global Feasibility

“Scale the system, not the soul.”

  1. Automate deployment, analytics, translations.
  2. Keep vibe creation manual — design, motion, copy, mood.
  3. Let AI handle localization, testing, optimization — not feeling.
  4. Build your team around vibe integrity roles: UX poet, vibe tester, motion feeler, AI tuner.

Chat with AI about this

Prompt pack

AI intelligence briefing

A live synthesis of the freshest signals on Vibe coding — what matters now, the trend, and a recommendation.

Live intelligence

Skills & careers — ESCO occupations & skills
Standards — IETF / RFC documents
Latest research — open scholarly works
Books — titles on this topic
In context — encyclopaedic summary
Wikidata entity — identify the concept (→ sameAs)
Papers (Semantic Scholar) — recent scholarship
Code — GitHub repositories
Discussion — Hacker News threads

Concept map

Agile Business S…Guitar Theory - …Guitar Theory - …Guitar Theory - …Business LexiconBusiness Departm…Vibe coding

Click a node to open it · explore the full knowledge graph →

See also

Take Vibe coding further

Amit Jain — 25+ years across brand strategy, global marketing, AI & education. Individual, corporate & custom programmes, certificate on completion.

Write to Amit

A question, a correction, or something you'd like covered. It goes straight to his inbox — no list, no newsletter.