Getting started
From first install to a live, analytics-enabled deck in under ten minutes.
Create your deck
The CLI scaffolds a new Next.js project with the SlideNerds runtime, brand config, and 20 skill files pre-installed.
slidenerds create my-talk
cd my-talk
npm install
npm run devOpen http://localhost:3000 to see your deck running. Every change hot-reloads instantly. All decks are code. See the slide definition language reference.
Slides are code
Each slide is a React component in its own file. The deck's page.tsx is a manifest that imports slides and controls their order.
// app/slides/01-title.tsx
export default function Title() {
return (
<section data-slide="">
<h1>My talk</h1>
</section>
)
}// app/page.tsx
import Title from './slides/01-title'
import Problem from './slides/02-problem'
import Solution from './slides/03-solution'
export default function Deck() {
return (
<main>
<Title />
<Problem />
<Solution />
</main>
)
}Reorder slides by moving one line in the manifest. Add a slide by creating a file and adding one import. The runtime discovers slides by their data-slide attribute in DOM order, so file structure is for human ergonomics only.
Build slides with an LLM
Open Claude Code (or any LLM with file access) in the same directory. Give it a prompt and watch it build your slides.
Example prompts
Create a 6-slide product launch deck for our Q2 release. Include a title slide, problem statement, solution overview, three feature highlights, and a call to action.
Good for structured decks. The LLM generates each slide as a section with data-slide attributes, using the brand config for colors and fonts.
Turn this markdown document into a presentation. Use the narrative-frameworks skill to structure it as a problem-solution-proof-CTA flow.
References a specific skill file. The LLM reads the skill's guidelines and applies the framework to your content.
Add a live demo slide that embeds our React pricing calculator component. Import it from ../components/PricingCalculator and make it interactive.
Slides are React components, so you can import and embed anything. Charts, demos, interactive widgets -- if it runs in React, it runs in your slide.
Create a data visualization slide showing our quarterly revenue growth. Use the data-visualization skill. Animate the bars on enter with data-step.
The data-viz skill teaches the LLM how to build charts with CSS and SVG. The data-step attribute makes elements appear progressively when you advance.
Add speaker notes to every slide explaining the key talking points and transition cues. Use data-notes attributes.
Speaker notes are stored as data-notes attributes on each slide. Press P during presentation to open the presenter view with notes, timer, and slide preview.
Navigate and present
Your deck runs in the browser with keyboard navigation built in.
| Key | Action |
|---|---|
| Arrow right / Space | Next slide or step |
| Arrow left | Previous slide |
| P | Toggle presenter mode |
| L | Toggle light table |
| F | Toggle fullscreen |
| ? | Show keyboard shortcuts |
Animate your slides
Over 100 CSS animations are built into the runtime. Add a class to any element to animate it.
Entrance animations (step-*)
Elements with data-step start hidden and animate in when revealed. Add an animation class to control how they appear.
<p data-step="" className="step-fade">Fades in</p>
<p data-step="" className="step-pop">Pops in with scale</p>
<p data-step="" className="step-slide-in-left">Slides from left</p>
<p data-step="" className="step-bounce">Bounces in</p>Available: step-fade, step-pop, step-bounce, step-elastic, step-fly-in-*, step-move-*, step-scale-*, step-spin-in, step-flip-*, step-wipe-*, step-blur-in, step-typewriter, step-letter-spread, and more. See the animation skill for the full list.
Exit animations (exit-*)
Elements with data-exit-step animate out before the slide transitions.
<p data-exit-step="" className="exit-fade">Fades out</p>
<p data-exit-step="" className="exit-zoom-out">Zooms out</p>Emphasis animations (emphasis-*)
Replay an animation on a visible element to draw attention. Triggered on second click.
<p data-step="" className="emphasis-pulse">Pulses on emphasis</p>
<p data-step="" className="emphasis-shake">Shakes on emphasis</p>Available: emphasis-pulse, emphasis-bounce, emphasis-shake, emphasis-wobble, emphasis-rubber-band, emphasis-tada, emphasis-heartbeat, emphasis-flash, emphasis-spin, emphasis-glow, and more.
Auto-build animations (auto-*)
Elements animate automatically when the slide becomes active. No click needed.
<div className="auto-fade">Fades in automatically</div>
<div className="auto-pop" style={{ animationDelay: '200ms' }}>Pops in after 200ms</div>Slide transitions (data-transition)
Set the transition between slides with the data-transition attribute on a slide.
<section data-slide="" data-transition="cube-left">
<h1>This slide transitions with a 3D cube effect</h1>
</section>Available: fade, dissolve, push-*, slide-*, cover-*, uncover-*, zoom-in, zoom-out, flip-x, flip-y, cube-left, cube-right, iris, split-horizontal, split-vertical, morph.
Create a SlideNerds account (optional)
Create a free account to save your slides, manage brand settings, and access live features like polls, Q&A, and audience reactions. Deploy your deck anywhere, then link it to SlideNerds.
slidenerds login
slidenerds link --name my-talk --url https://my-talk.vercel.appInvite your team
Share your decks, brand configurations, and analytics with teammates. Invite anyone by email from the Team page in the dashboard.
Shared decks
Teammates see each other's decks in their dashboard.
Shared brands
Brand configs are shared across the team so every deck stays on brand.
Shared analytics
View engagement data across all team decks.
Email invites
Invite teammates by email. They accept or decline from the link.
Analytics
Get per-slide analytics automatically when you link your deck to SlideNerds. Or bring your own analytics provider.
Built-in slide analytics
Per-slide dwell time, unique viewers, and engagement trends. Available in the deck analytics panel.
Bring your own analytics
Add PostHog, Google Analytics 4, Google Tag Manager, Plausible, or a custom provider with one CLI command.
slidenerds analytics --posthog phc_XXXXXXXXXX
slidenerds analytics --ga4 G-XXXXXXXXXX
slidenerds analytics --gtm GTM-XXXXXXExport to PDF or PowerPoint
Export from the deck detail page or from the CLI. PDF renders server-side at 1920x1080. PPTX generates a native PowerPoint file with editable text.
slidenerds export --pdf
slidenerds export --pptxManage brand configs
Save and reuse brand configurations across decks. Upload your logo, set colors, fonts, and spacing. Create brands from the web UI or sync from the CLI.
slidenerds brand set "Acme Corp"
slidenerds brand get "Acme Corp"
slidenerds brand listLogo upload
Upload your brand logo. It's stored in SlideNerds and downloaded into your deck when you run brand get.
Save from CLI
Run brand set to upload your current brand.config.ts (including logo) to the service.
Apply from CLI
Run brand get to download a saved brand and write it to your local brand.config.ts.
Create from web
Use the Brand page in the dashboard to create brands with color pickers, font selection, and logo upload.
Add live interaction
Add real-time audience interaction to your slides. Polls, reactions, Q&A, word clouds, and audience counts.
1. Create a live session
Go to your deck's settings page and scroll to Live sessions. Give your session a name (e.g. "Q2 All-Hands") and click Create. You'll get a session ID and code snippet.
2. Add live components to your slides
Import the component and add it to a slide. The poll auto-creates itself when the slide loads.
import { LivePoll } from '@strategicnerds/slide-nerds'
<section data-slide="">
<LivePoll
question="What is your biggest challenge?"
options={['Speed', 'Reliability', 'Cost']}
/>
</section>3. Share with your audience
Share the session URL with your audience. Either hardcode the session ID in the component, or pass it as a URL parameter:
https://my-deck.vercel.app?session=SESSION_IDThe audience opens the link, navigates to the poll slide, and votes. Results update in real time.
LivePoll
Real-time audience polls with clickable options and live bar chart results. Auto-creates the poll when the slide loads.
LiveReactions
Floating emoji reactions (thumbsup, clap, heart, fire, mind blown).
LiveQA
Question submission with answered badges. Unanswered questions surface first.
LiveWordCloud
Audience submits one word. Words display as a cloud sized by frequency.
LiveAudienceCount
Pulsing dot showing how many people are watching.
For local development, pass serviceUrl="http://localhost:3000" to each component. See the live skill for full documentation.
Share and control access
Decks are private by default. Share them with specific people or make them public.
Public sharing
Toggle a deck to public and anyone with the link can view it.
Email-restricted links
Create a share link that only works for specific email addresses.
Domain-restricted links
Allow anyone with a company email domain (e.g. @acme.com) to view.
Password-protected links
Set a password on a share link. Recipients enter it before viewing.
Expiring links
Set an expiration date on any share link.
Tags
Organize your decks with color-coded tags. Tags are personal -- only you see your tags, even on shared decks. Create and manage tags from your Profile page, then filter your dashboard by tag to find what you need fast.
Skills reference
Every deck ships with 20 skill files that teach your LLM how to use SlideNerds effectively. Reference them in your prompts to get better results.
| Skill | What it teaches |
|---|---|
| layout | Slide layout patterns and spacing |
| advanced-layouts | Multi-column, grid, and complex compositions |
| animation | 100+ CSS animations: entrance, exit, emphasis, auto-build, transitions |
| brand | Brand config usage, theming, and logo integration |
| data-visualization | Charts, graphs, and data displays |
| deck-templates | Complete deck scaffolds by type |
| diagrams | Flowcharts, architecture diagrams, timelines |
| export | PDF and PPTX export configuration |
| interactive | Interactive elements and live demos |
| narrative-frameworks | Story structures and presentation flow |
| react-component-embeds | Embedding React components in slides |
| slide-organization | Multi-file deck structure and ordering |
| slide-types | Title, content, comparison, quote slides |
| slidenerds-runtime | Runtime API and data attributes |
| speaker-notes | Adding and formatting speaker notes |
| strategic-frameworks | Business frameworks (SWOT, etc.) |
| visual-design | Color theory, typography, visual hierarchy |
| analytics | Built-in and third-party analytics setup |
| accessibility | Accessible slide design |
| live | Live polls, reactions, Q&A, word clouds, audience count |