FlorisBoard Documentation - Deployment Guide
🚀 Quick Start
Your FlorisBoard documentation is ready to deploy! Follow these steps to publish it to GitHub Pages.
Prerequisites
✅ All prerequisites are already met:
- Documentation structure created
- Docusaurus configured
- GitHub Actions workflow set up
- Build tested successfully
Step 1: Commit and Push Changes
# Navigate to your repository
cd /Users/bramburn/dev/florisboard
# Check status
git status
# Add all documentation files
git add docs/ .github/workflows/docs.yml DOCUMENTATION_SUMMARY.md DOCUMENTATION_DEPLOYMENT_GUIDE.md
# Commit changes
git commit -m "Add comprehensive FlorisBoard documentation with Docusaurus
- Created 27 documentation pages covering architecture, technical details, and integration
- Set up Docusaurus with GitHub Pages deployment
- Added GitHub Actions workflow for automatic deployment
- Completed 6 comprehensive pages with detailed content
- Created 21 placeholder pages with structured content
- Configured sidebars and navigation
- Tested build successfully"
# Push to GitHub
git push origin main
Step 2: Enable GitHub Pages
Option A: Via GitHub Web Interface
-
Go to your repository:
https://github.com/bramburn/florisboard
-
Click on Settings tab
-
Scroll down to Pages section in the left sidebar
-
Under Build and deployment:
- Source: Select "GitHub Actions"
- This will use the workflow we created in
.github/workflows/docs.yml
-
Click Save
-
Wait for the deployment (usually 2-5 minutes)
-
Your documentation will be available at:
https://bramburn.github.io/florisboard/
Option B: Via GitHub CLI (if installed)
# Enable GitHub Pages with GitHub Actions source
gh repo edit --enable-pages --pages-branch gh-pages
# Check workflow status
gh workflow view "Deploy Documentation"
# Watch the workflow run
gh run watch
Step 3: Verify Deployment
Check Workflow Status
- Go to Actions tab in your repository
- Look for "Deploy Documentation" workflow
- Click on the latest run
- Verify all steps completed successfully:
- ✅ Checkout
- ✅ Setup Node.js
- ✅ Install dependencies
- ✅ Build documentation
- ✅ Upload artifact
- ✅ Deploy to GitHub Pages
Access Your Documentation
Once deployed, visit:
https://bramburn.github.io/florisboard/
You should see:
- Welcome page with FlorisBoard introduction
- Navigation sidebar with all sections
- Architecture, Technical, Integration sections
- Search functionality (built-in)
- Dark/light mode toggle
Step 4: Test the Documentation
Local Testing (Before Deployment)
# Navigate to docs directory
cd docs
# Install dependencies (if not already done)
npm install
# Start development server
npm run start
# This will open http://localhost:3000/florisboard/
Production Build Testing
# Build for production
npm run build
# Serve the build locally
npm run serve
# This will open http://localhost:3000/florisboard/
Troubleshooting
Issue: Workflow Fails
Solution: Check the Actions tab for error messages
Common issues:
- Node.js version mismatch (we use Node 20)
- Missing dependencies (run
npm install
locally first) - Broken links (Docusaurus will fail on broken internal links)
Issue: 404 Page Not Found
Solution: Verify GitHub Pages settings
- Check that Pages is enabled
- Verify source is set to "GitHub Actions"
- Wait a few minutes for DNS propagation
- Clear browser cache
Issue: Styles Not Loading
Solution: Check base URL configuration
Verify in docs/docusaurus.config.js
:
url: 'https://bramburn.github.io',
baseUrl: '/florisboard/',
Issue: Build Fails Locally
Solution: Clear cache and rebuild
cd docs
npm run clear
rm -rf node_modules package-lock.json
npm install
npm run build
Updating Documentation
Making Changes
- Edit markdown files in
docs/docs/
- Test locally:
npm run start
- Commit and push changes
- GitHub Actions will automatically rebuild and deploy
Adding New Pages
-
Create new markdown file:
touch docs/docs/section/new-page.md
-
Add content with frontmatter:
---
sidebar_position: 5
---
# New Page Title
Content here... -
Update
docs/sidebars.js
if needed -
Test build:
npm run build
-
Commit and push
Completing Placeholder Pages
Priority Order
Complete pages in this order for maximum impact:
- State Management - Critical for understanding reactive architecture
- Layout System - Core to keyboard functionality
- Touch & Gestures - Essential for input handling
- IME APIs - Foundation for Android integration
- Prediction Engine - Key feature documentation
- Build From Scratch - High-value tutorial
Content Development Process
For each placeholder page:
-
Research:
# Use codebase retrieval to find relevant code
# Example: Search for "state management" in the codebase -
Outline:
- Introduction
- Key concepts
- Implementation details
- Code examples
- Best practices
- Related topics
-
Write:
- Use existing completed pages as templates
- Include real code from FlorisBoard
- Add diagrams for complex concepts
- Cross-reference related pages
-
Review:
- Test code examples
- Verify technical accuracy
- Check links
- Build locally
-
Deploy:
- Commit changes
- Push to GitHub
- Verify deployment
Advanced Configuration
Adding Search (Algolia)
-
Apply for Algolia DocSearch: https://docsearch.algolia.com/apply/
-
Once approved, update
docs/docusaurus.config.js
:themeConfig: {
algolia: {
appId: 'YOUR_APP_ID',
apiKey: 'YOUR_API_KEY',
indexName: 'florisboard',
},
}
Adding Analytics
Update docs/docusaurus.config.js
:
themeConfig: {
gtag: {
trackingID: 'G-XXXXXXXXXX',
},
}
Custom Domain
-
Add CNAME file to
docs/static/
:echo "docs.florisboard.dev" > docs/static/CNAME
-
Configure DNS:
- Add CNAME record pointing to
bramburn.github.io
- Add CNAME record pointing to
-
Update
docs/docusaurus.config.js
:url: 'https://docs.florisboard.dev',
baseUrl: '/',
Maintenance
Regular Updates
- Update dependencies:
npm update
- Check for Docusaurus updates:
npm outdated
- Review and update content quarterly
- Fix broken links and outdated information
Monitoring
- Check GitHub Actions for failed builds
- Monitor GitHub Pages status
- Review user feedback and issues
- Track documentation usage (with analytics)
Resources
Documentation
Support
Next Steps
- ✅ Deploy: Follow Step 1-3 above to deploy your documentation
- 📝 Complete: Fill in placeholder pages with detailed content
- 🎨 Enhance: Add screenshots, diagrams, and visual assets
- 🔍 Optimize: Set up search and analytics
- 📢 Promote: Share your documentation with the community
Success Checklist
- Changes committed and pushed to GitHub
- GitHub Pages enabled in repository settings
- GitHub Actions workflow completed successfully
- Documentation accessible at https://bramburn.github.io/florisboard/
- All navigation links working
- Search functionality working
- Dark/light mode toggle working
- Mobile responsive design verified
- No broken links or 404 errors
Congratulations! 🎉
Your FlorisBoard documentation is now ready to serve as:
- A comprehensive learning resource for IME development
- Technical reference for contributors
- Reverse engineering guide for developers
- Case study of modern Android architecture
The foundation is solid, and you can now focus on completing the remaining content pages to make this the definitive guide to building Android keyboards!
Need Help? Open an issue on GitHub or reach out on Matrix chat.