Quick Start Guide
This guide walks you through building and serving your first pre-rendered Angular application with Scully. In just a few minutes, you’ll see your Angular app transformed into lightning-fast static pages.Prerequisites
Before starting, ensure you have:
- Completed the Installation steps
- An Angular project with at least one route configured
- Node.js 12 or higher installed
Step-by-Step Guide
Step 1: Build Your Angular Application
Before Scully can pre-render your app, you need to build it:dist/ directory.
For production builds, use
ng build --configuration production to enable optimizations like minification and tree-shaking.Step 2: Run Scully
Now run Scully to pre-render your application:What’s happening? Scully is:
- Loading your Scully configuration
- Discovering all routes in your Angular app
- Launching a headless browser to render each route
- Saving the rendered HTML to static files
Step 3: View the Static Files
Scully generates static HTML files in the./dist/static directory:
index.html file for each route in your application. If your app has 10 routes, you’ll find 10 HTML files.
Step 4: Serve Your Static Site
Scully includes a built-in server to preview your pre-rendered site:Angular Build
http://localhost:4200Your standard Angular build (from
ng build)Static Build
http://localhost:1668Your Scully pre-rendered static site
Step 5: Compare Performance
Open both URLs in your browser and compare:Test Angular Build
Visit http://localhost:4200 and watch the network tab. You’ll see the full Angular app download and bootstrap.
Test Static Build
Visit http://localhost:1668 and watch the network tab. The page appears instantly with pre-rendered content.
Success! You’ve successfully pre-rendered your Angular application with Scully.
Understanding the Output
Static Files
Each route in your app becomes a static HTML file:index.html example
Routes Configuration
Scully also generates ascully-routes.json file containing all discovered routes:
scully-routes.json
Common Workflows
Development Workflow
During development, rebuild your app and re-run Scully when you make changes:Production Workflow
For production builds:dist/static folder contains everything you need to deploy - just upload it to any static hosting provider.
Deployment
Deploy your static site to any hosting provider that serves static files:Netlify
Vercel
AWS S3
GitHub Pages
Handling Route Parameters
If your app has routes with parameters (like/blog/:slug or /user/:id), Scully needs additional configuration.
Configure parameterized routes in your scully.config.ts:
scully.config.ts
Learn more about configuring routes with parameters in the Route Configuration guide.
Troubleshooting
Scully finds 0 routes
Scully finds 0 routes
Problem: Scully can’t discover any routes in your app.Solutions:
- Verify your Angular app has routes configured
- Check that you ran
ng buildbeforenpx scully - Ensure your router module is properly imported
- Try adding routes manually via
extraRoutesin the config
Blank pages in static output
Blank pages in static output
Problem: Static HTML files are empty or missing content.Solutions:
- Check browser console for JavaScript errors
- Verify all async data loads complete before rendering
- Use
scully-routesservice to detect when Scully is running - Increase render timeout in Scully config
Routes with parameters are skipped
Routes with parameters are skipped
Problem: Parameterized routes show “No configuration found” warning.Solutions:
- Add route configuration to the
routesobject in your Scully config - Use the
jsonplugin for API-based routes - Use the
contentFolderplugin for file-based routes (like blogs) - See Route Configuration for examples
Scully hangs during rendering
Scully hangs during rendering
Problem: Scully gets stuck and never completes.Solutions:
- Check for infinite loops or long-running timers in your components
- Use
manualIdleCheckfor routes that need manual completion signals - Increase the
puppeteerLaunchOptions.timeoutvalue - Check for console errors in the rendered pages
Next Steps
Now that you’ve built your first static Angular app with Scully, explore these topics:Create a Blog
Learn how to add a blog to your site with Markdown support
Plugin System
Extend Scully with custom plugins for advanced functionality
Configuration
Explore all configuration options for fine-tuning Scully
Best Practices
Learn tips and best practices for testing and optimization
Get Help
Need assistance? The Scully community is here to help:- Gitter Channel - Chat with the team
- GitHub Issues - Report bugs or request features
- Office Hours - Join every Tuesday at noon MDT
Congratulations! You’ve successfully created your first pre-rendered Angular application with Scully. Your app now loads instantly and is fully SEO-optimized.

