- Push your code to GitHub
- Enable GitHub Pages in repository settings
The project includes a GitHub Actions workflow for automatic deployment.
- Go to your GitHub repository
- Click Settings > Pages
- Under Build and deployment:
- Source: GitHub Actions
- Push to
mainbranch - deployment happens automatically
The workflow file is at .github/workflows/deploy.yml
- On every push to
main, the app builds and deploys - Build takes ~2-3 minutes
- Site available at:
https://data-8.github.io/table-function-visualizer/
If you prefer manual deployment:
# Navigate to web app
cd apps/web
# Install dependencies
npm install
# Build for production
npm run build
# Deploy (requires gh-pages package)
npm install -g gh-pages
gh-pages -d distThe vite.config.ts is configured with:
- Base path:
/table-function-visualizer/(production) - Base path:
/(development)
If your repository has a different name, update the base path in vite.config.ts:
base: process.env.NODE_ENV === 'production' ? '/your-repo-name/' : '/'After deployment:
- Visit:
https://data-8.github.io/table-function-visualizer/ - Test all features:
- Examples gallery loads
- Code execution works
- Pyodide initializes
- Service worker caches assets
- Export and share work
- Check base path in
vite.config.tsmatches repository name - Verify GitHub Pages is enabled
- Check browser console for errors
- Ensure base path is correct
- Verify all assets are in
dist/folder - Check network tab in browser DevTools
- Pyodide loads from CDN - check internet connection
- Wait for initialization (5-10 seconds first time)
- Check browser console for errors
- Service workers require HTTPS (GitHub Pages provides this)
- Clear browser cache and reload
- Check Application > Service Workers in DevTools
To use a custom domain:
- Add
CNAMEfile toapps/web/public/with your domain - Configure DNS records with your domain provider
- Enable "Enforce HTTPS" in repository settings
The production build:
- Minifies JavaScript and CSS
- Removes source maps
- Optimizes assets
- Typical size: ~2-3 MB (including Monaco Editor)
Note: Pyodide (~20 MB) loads from CDN, not bundled.
The GitHub Actions workflow automatically:
- Checks out code
- Sets up Node.js
- Installs dependencies
- Builds the app
- Deploys to GitHub Pages
To disable automatic deployment:
- Delete
.github/workflows/deploy.yml - Or disable Actions in repository settings
No environment variables needed - everything is configured for GitHub Pages by default.
After deployment, monitor:
- GitHub Actions tab for build status
- Browser console for runtime errors
- Network tab for asset loading
To rollback to a previous version:
- Go to Actions tab
- Find successful previous deployment
- Re-run that workflow
Or manually:
git checkout <previous-commit>
cd apps/web
npm run build
gh-pages -d distBefore deploying:
- All features tested locally
- No console errors
- Examples work correctly
- Service worker registered
- Permalinks working
- Export functionality works
- Documentation up to date
- README reflects current features