Workshop App Guide
This guide will help you get the most out of the Epic Workshop App. Whether you're just getting started or need help troubleshooting, you'll find useful information here.
๐ New to the Workshop App?
We highly recommend going through the official tutorial to learn all the features the workshop app has to offer:
npx epicshop add epicshop-tutorialThis will add the tutorial workshop to your setup so you can learn at your own pace.
Workshop Structure
Each workshop is a standalone project with a consistent structure:
- exercises/ โ Contains the "problem" and "solution" versions of each step. Treat this as a reference for after the workshop.
- playground/ โ This is where your work takes place. We recommend opening this directory as its own editor instance for efficient file searching.
The Lesson Page
When you click into a lesson, the app displays the video along with written content, code snippets, and other useful information. To the right is a pane with tabs:
- Playground โ Where you'll spend most of your time. You can interact with the app here or open it in a dedicated tab.
- Problem โ The starting point of the exercise.
- Solution โ The completed exercise state.
- Diff โ Compare your current version against the finished state. Use this if you get stuck, but try to avoid it if possible.
- Tests โ If the exercise includes tests, they'll appear here to verify your work.
File Links
At the bottom of a lesson page, the "Files" button opens a list of relevant files for the current exercise. Clicking a file opens it directly in your editor at the right location.
Key things to know:
- Files are tied to your current Playground โ make sure it's set to the lesson you're working on.
- A "+" icon next to a filename means you need to create that file. Clicking it will create and open the file.
- If you see a red "Set to Playground" link, click it to sync the playground for the current exercise.
Troubleshooting
If you're unable to open file links from the workshop app, create a .env file in the root of the workshop project and add:
EPICSHOP_EDITOR="path/to/your/editor"Examples:
- VS Code:
EPICSHOP_EDITOR=code - VS Code on Windows:
EPICSHOP_EDITOR='"C:\Program Files\Microsoft VS Code\bin\code.cmd"' - Cursor:
EPICSHOP_EDITOR=cursor
Note: If the path includes spaces, wrap it in quotes as shown in the Windows example.
For Cursor/VS Code users, you can also install the 'code' command in your PATH by opening the Command Palette (โโงP on Mac, Ctrl+Shift+P on Windows) and searching for "Install 'code' command in PATH".
Setting the Playground
If you navigate to a different exercise than what's currently loaded, a red "Set to Playground" link will appear. Clicking this syncs the playground for the appropriate exercise.
Important: Always have your Playground set to the lesson you're working on! This is not automated because you might want to refer back to previous exercises without losing your current work.
The Diff Tab
The diff tab helps you get unstuck when you're totally stuck. It shows the difference between your playground and the solution. This is especially useful for catching typos or small mistakes.
- + lines (green) show code that needs to be added
- - lines (red) show code that needs to be removed
- Unchanged lines provide context around the changes
Tip: Try to avoid using the diff tab until you've made a solid attempt at the exercise. The learning happens in the struggle!
Tests
Some exercises include tests to verify your work. If available, they appear in the Tests tab. Tests can run in two ways:
- Script-based: A button runs the test script and streams the output
- Browser-based: Test files are compiled and run directly in the browser
Look for ๐จ Alfred the Alert in test failures for helpful explanations about what went wrong.
Keyboard Shortcuts
When the workshop server is running in your terminal, you can use these keyboard shortcuts:
- u โ Check for and apply updates to the workshop
- d โ Dismiss update notifications
The server automatically restarts after updates are applied.
CLI Commands
The epicshop CLI provides useful commands for managing your workshop:
epicshop startStart the workshop (or just run npm start)
epicshop playground setSet the playground to the next incomplete step
epicshop diffShow the diff between your playground and the solution in the terminal
epicshop progressView your progress through the workshop
epicshop exercisesList all exercises with completion status
Run epicshop --help to see all available commands.
AI Assistant (MCP)
If you use an AI assistant that supports MCP (Model Context Protocol), you can install the Epic Workshop MCP server to enhance your learning experience.
What it provides
- Exercise context: Your AI can understand what you're working on and provide relevant help
- Progress tracking: Mark lessons complete directly through your AI
- Diff viewing: Ask your AI to show you what changes are needed
- File opening: Have your AI open the relevant files in your editor
- Quiz mode: Ask your AI to quiz you on workshop topics
Installation
Add the following to your AI assistant's MCP configuration (e.g., Claude Desktop):
{
"mcpServers": {
"epicshop": {
"command": "npx",
"args": ["-y", "@epic-web/workshop-mcp"]
}
}
}Make sure to run your AI assistant from within the workshop directory so the MCP server can find the right files.
Emoji Key
Each exercise has comments with helpful emoji characters:
- ๐จโ๐ผ Peter the Product Manager โ Helps you know what users want
- ๐งโโ๏ธ Kellie the Co-worker โ Your co-worker who sometimes does work ahead of your exercises
- ๐จ Kody the Koala โ Tells you when there's something specific to do
- ๐ฆบ Lily the Life Jacket โ Helps with TypeScript-specific parts
- ๐ฐ Marty the Money Bag โ Gives specific tips and sometimes code
- ๐ Nancy the Notepad โ Encourages you to take notes
- ๐ฆ Olivia the Owl โ Gives useful tidbits and best practices
- ๐ Dominic the Document โ Links to useful documentation
- ๐ฃ Barry the Bomb โ Indicates code to delete
- ๐ช Matthew the Muscle โ Indicates you're working with an exercise
- ๐ Chuck the Checkered Flag โ Indicates a final step
- ๐จ Alfred the Alert โ Shows up in test failures with explanations
Need More Help?
Visit our Support page for additional help options, including Discord access and how to report issues.