Skip to content

Add Production-Ready Collaborative Docs Platform#399

Merged
Movm merged 39 commits intotest-branchfrom
feature/expo-mobile-app
Jan 10, 2026
Merged

Add Production-Ready Collaborative Docs Platform#399
Movm merged 39 commits intotest-branchfrom
feature/expo-mobile-app

Conversation

@Movm
Copy link
Copy Markdown
Collaborator

@Movm Movm commented Jan 10, 2026

This PR adds a complete production-ready collaborative documentation platform with TipTap editor and real-time Y.js synchronization.

Features:

  • Real-time collaborative editing
  • Document permissions and version history
  • Production server with Hocuspocus WebSocket
  • Docker deployment ready for Coolify
  • Complete documentation

205 files changed, 20,225 insertions.
Ready for deployment to docs.gruenerator.de

Movm added 30 commits January 4, 2026 19:00
Replace individual sharepic type handlers (dreizeilen, headline, info,
veranstaltung, zitat, zitatPure) with a unified handler architecture.
Add new simple sharepic type and text parser utility.
- Add background removal endpoint for sharepic images
- Add profilbild and simple canvas handlers
- Improve provider fallback with retry logic
- Extend template gallery with template sync and management
- Update database schema with new tables
- Update AI worker configuration
- Add image gallery view for saved sharepics
- Add WebView-based editor for advanced editing
- Add inline edit bar and category modals
- Add edit regeneration and auto-save hooks
- Simplify image modification controls
- Remove deprecated customize step
- Add AttachedContentList and ContentPicker components
- Add FeatureIcons for generator visual indicators
- Add editor toolbar with CategoryBar, EditorModal, InlineBar
- Add DraggableSplitView for flexible layouts
- Add content and instructions stores
- Update all generator forms with improved content handling
- Refactor subtitle editor with new controls structure
- Remove HeightSelector and StyleSelector (consolidated)
- Add subtitle controls components
- Expand profile page with settings and preferences
- Add profile components
- Improve reel components with better project list
- Update navigation layouts with new features
- Enhance share modal and search input
- Add notebooks feature with chat and editor components
- Add fullscreen layouts for immersive views
- Add vorlagen (templates) page and service
- Add UI components library
- Add scale utilities to theme
- Update app config and layouts
- Remove deprecated mediathek page
- Improve metro and TypeScript configuration
- Update splash icon
- Split monolithic hooks into focused modules
- Add EditPanel and Lightbox components
- Add useAltText, useEditPanel, useLightbox hooks
- Add useAutoSaveStore, usePreloadStore, useStepNavigationStore
- Add useTemplateResultActions, useTemplateResultAutoSave hooks
- Move useImageGeneration and useStepFlow to TypeScript
- Add templateResultUtils and typeConfig modules
- Add image studio types and services
- Remove deprecated slogan components
- Streamline TemplateResultStep with new hook architecture
- Add canvas-editor feature with Konva.js integration
- Add CanvasEditor, CanvasStage, and PropertyPanel components
- Add CanvasEditorToolbar and EditorSidebar
- Add canvasEditorStore and canvasEditorRefs for state management
- Add SharepicMasterEditorModal for quick editing
- Add SharepicEditorModal for presse text integration
- Add control styles for canvas UI elements
- Add imageService for image handling utilities
- Enhance AddTemplateModal with better validation
- Update DocumentOverview with new functionality
- Improve BaseForm components with better TypeScript types
- Update ExamplePrompts styling and interaction
- Enhance IndexCard and ProfileCard components
- Improve InstructionsGrid with better layout
- Update WolkeFilePicker and WolkeSelector
- Fix accessibility helpers and hooks
- Improve apiClient with new endpoints
- Update text generators with improved form handling
- Convert useOparlSearch to TypeScript with types
- Improve notebook components
- Update subtitler and shared-media pages
- Enhance template and wolke features
- Remove deprecated SloganAlternatives from sharepic
- Update admin database test page
- Improve useAutosave, useSharepicModification hooks
- Update useFilteredAndGroupedItems and useUrlCrawler
- Add notebook types
- Update stores index and wolkeStore
- Enhance baseform types
- Update sharepic styles and type selector CSS
- Remove deprecated slogan-alternatives.css
- Add image-studio typeform-fields CSS
- Update routes and vite config
- Update Home and GrueneJugendGenerator pages
- Add pages feature module
- Add canvas-editor module with stores and types
- Add color palette and element management stores
- Update image studio constants with new type configs
- Extend image studio types for new features
- Update useImageStudioCanvas hook
- Add subtitle editor type extensions
- Add Info background images (sand, tanne)
- Add Sonnenblume and arrow_right assets
- Add simple-preview for image studio
- Add quote SVGs for sharepic
- Update pnpm lockfile
- Remove AWS Bedrock adapter and client files
- Remove @aws-sdk/client-bedrock-runtime dependency
- Replace AWS Bedrock with IONOS for Ultra Mode and Pro-Modus
- Add automatic IONOS fallback in Claude adapter
- Update all provider routing and fallback chains
- Update privacy policy to reflect IONOS SE instead of AWS
- Improve data sovereignty with German provider (IONOS SE)

BREAKING CHANGE: Ultra Mode now uses IONOS instead of AWS Bedrock
- Remove Ultra Mode from FeatureIcons component
- Add Telekom provider for T-Systems LLM Hub integration
- Create telekomClient and telekomAdapter using OpenAI SDK
- Update Claude fallback to use Telekom instead of IONOS
- Add Telekom to all provider types and fallback chains
- Use Llama-3.1-70B-Instruct as default Telekom model
Add automated scrapers to download and process illustration assets from
OpenDoodles and Undraw libraries. These scrapers fetch SVG illustrations
and organize them for use in the canvas editor.

- Add OpenDoodlesScraper: Fetches playful character illustrations
- Add UndrawScraper: Fetches professional vector illustrations
- Add comprehensive documentation for illustration scrapers
- Implement category detection and metadata extraction
- Add SVG optimization and attribution handling
Add OpenDoodles illustration assets to the canvas editor. OpenDoodles
provides playful, hand-drawn style character illustrations perfect for
creating engaging sharepic designs.

- Add 33 OpenDoodles SVG illustrations
- Include diverse character poses and activities
- License: CC0 (public domain)
Add Undraw illustration assets to the canvas editor. Undraw provides
professional, modern vector illustrations covering a wide range of
topics and use cases.

- Add 1608 Undraw SVG illustrations
- Include diverse categories: tech, business, people, activities
- Consistent flat design style
- License: Open source
Refactor and enhance the canvas editor to support illustration assets
from OpenDoodles and Undraw libraries. Improve UI/UX for asset
management and add new styling controls.

- Add illustrations section to AssetSection
- Refactor GenericCanvas for better illustration handling
- Update config types to support illustration elements
- Enhance FloatingTapBar with improved styling
- Add new primitives and hooks for illustration management
- Update IconsSection and FormenSection with new assets
- Improve canvas layout and styling
- Add support for multiple canvas configurations
Implement shared media service to manage illustration assets and
integrate with image picker and share controllers. Add API routes
for accessing and sharing illustrations.

- Add sharedMediaService for illustration management
- Update pickerController with illustration support
- Enhance shareController with media sharing capabilities
- Add Unsplash attribution service improvements
- Update image type definitions
- Add illustration routes to API
Movm added 9 commits January 9, 2026 14:22
Update sharepic generation system to support illustration assets.
Improve prompts for better AI-generated layouts and add text parsing
capabilities for enhanced formatting.

- Update all sharepic prompts with illustration support
- Refactor simple_canvas for better illustration rendering
- Enhance unifiedHandler with improved error handling
- Add text parsing utilities for formatting
- Support for OpenDoodles and Undraw in generation prompts
Add database support for canvas editor template functionality.
Users can now save and share their canvas designs as templates.

- Add template boolean flag and visibility control
- Add template usage tracking and creator attribution
- Add original_template_id for template derivation tracking
- Add performance indexes for template discovery
- Support private, unlisted, and public template sharing
Implement modular canvas rendering system for backend sharepic
generation. Each element type has a dedicated renderer with proper
validation and math utilities.

- Add backgroundRenderer for canvas backgrounds
- Add balkenRenderer for decorative bars with gradient support
- Add iconRenderer for icon elements
- Add illustrationRenderer for OpenDoodles/Undraw assets
- Add shapeRenderer for geometric shapes
- Add textRenderer for text elements with typography
- Add freeCanvasTypes for type definitions
- Add balkenMath utilities for bar calculations
- Add layerValidator for element validation
Implement Unsplash API service for stock photo search and download.
Add API routes and utilities for accessing high-quality photos
directly in the canvas editor.

- Add UnsplashApiService for photo search and download
- Add unsplashRoutes for API endpoints
- Add unsplashUtils for Unsplash-specific utilities
- Support photo search by query and category
- Handle Unsplash attribution requirements
Complete the image studio feature set with template support,
Unsplash integration, and improved UI/UX. Add template cloning,
attribution display, and enhanced image source management.

- Add template cloning functionality with useTemplateClone
- Add Unsplash search integration with useUnsplashSearch
- Add TemplateAttribution component for creator credits
- Enhance ImageStudioPage with template support
- Update ImageStudioTypeSelector and CategorySelector
- Improve TemplateStudioFlow with better UX
- Add template-specific styling
- Update ImageGallery with template display
- Enhance imageSourceService for multiple sources
- Update TypeformWizard styling
- Add templates.css for template UI components
- Update SharepicEditorModal styling
- Update menu navigation
- Update package.json dependencies
Refactored BaseForm.tsx (1148 lines → 796 lines) following DRY principles
to improve maintainability and testability while maintaining 100% backward
compatibility for all 16 dependent components.

Extracted logic into:
- 8 custom hooks: useFormConfiguration, useFeatureConfigs, useContentManagement,
  useEditMode, useStartMode, useFormStateSyncing, useFormEventHandlers,
  useBaseFormAccessibility
- 2 utility files: classNameUtils.ts, FormToggleButtonFAB.tsx

Each hook follows Single Responsibility Principle with focused concerns:
- Configuration resolution (tab indexes, platform config, UI config)
- Feature toggle management (web search, privacy mode, pro mode)
- Content state management (generatedTextStore integration)
- Edit mode state (edit toggle, image editing, mobile scroll)
- Start mode logic (start page layout, form visibility)
- Props-to-store synchronization (all useEffect prop syncing)
- Event handlers (submit, info clicks, error dismiss)
- Accessibility features (ARIA labels, focus visibility, a11y testing)

Benefits:
- 31% code reduction (352 lines removed)
- Improved code organization and readability
- Better testability (hooks can be unit tested)
- Easier maintenance (single responsibility per module)
- Zero breaking changes (all props and behaviors preserved)
- Move Grünerator documentation from standalone repo to /documentation
- Add @gruenerator/documentation workspace to pnpm configuration
- Add dev:documentation and build:documentation scripts to root package.json
- Update README with documentation section and development instructions
- Add .docusaurus to .gitignore (build cache)

The documentation includes:
- 13 markdown documentation pages across 4 sections
- Blog functionality with example posts
- Custom Docusaurus theme with Grünerator branding
- Local search functionality (@easyops-cn/docusaurus-search-local)
- Deployment configuration (Docker, nginx)

Verified:
- pnpm install successfully integrates workspace
- pnpm run build:documentation builds successfully
- All documentation content and assets preserved
Add new collaborative documentation platform at apps/docs/ with TipTap editor
and real-time Y.js synchronization via Hocuspocus WebSocket server.

## New Applications
- **apps/docs/**: Full-stack collaborative documentation editor
  - React + Vite frontend with TipTap rich text editor
  - Production server serving static assets + Hocuspocus WebSocket
  - Real-time collaboration with Y.js CRDT
  - Document permissions (owner/editor/viewer)
  - Version history with PostgreSQL snapshots
  - Keycloak authentication integration

## Backend Services
- **apps/api/services/hocuspocus/**: Y.js WebSocket collaboration server
  - PostgreSQL persistence for Y.js documents
  - Session-based authentication via Redis
  - Automatic snapshots and incremental updates
  - Document permissions enforcement

- **apps/api/services/tiptap/**: TipTap content conversion utilities

## Deployment Configuration
- Multi-stage Docker build for production optimization
- docker-compose.yml for Coolify deployment
- Comprehensive environment configuration (.env.example, .env.production.example)
- Nginx/Caddy reverse proxy configurations
- Health check endpoint for monitoring

## Documentation
- README.md: Technical architecture and features
- QUICKSTART.md: 10-minute deployment guide
- DEPLOYMENT.md: Detailed deployment guide with troubleshooting
- SETUP_COMPLETE.md: Architecture overview
- TEST_RESULTS.md: Build and test verification

## Features
- Real-time collaborative editing (Google Docs-like)
- Rich text formatting with TipTap extensions
- Document sharing with granular permissions
- Version history and snapshots
- WebSocket-based low-latency sync
- Compressed document storage (gzip)
- Session-based authentication
- Production-ready with health checks

## Testing
- Build tested and verified (11.38s build time)
- Server startup tested (ports 3000 + 1240)
- Health endpoint verified
- PostgreSQL and Redis connections tested
- Hocuspocus WebSocket server verified

Ready for deployment to docs.gruenerator.de via Coolify.
@Movm Movm merged commit 67bcad1 into test-branch Jan 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant