About Ghostwriter: AI-Augmented Technical Intelligence & Editorial Ghostwriting
- Inspiration In today's fast-moving software ecosystem, engineering leaders, CTOs, and technical architects face an overwhelming volume of continuous information. Between arXiv research papers, GitHub releases, technical blog posts, social media discourse ( , Reddit, Hacker News), and enterprise cloud announcements, separating high-impact technical signals from transient hype has become a major bottleneck. Traditional aggregators only dump unstructured feeds, forcing engineers to spend hours filtering noise, verifying claims, parsing benchmarks, and manually illustrating architectural changes. Ghostwriter was born from a simple thesis: What if an AI could act as an elite technical editor—filtering raw, unstructured multi-channel signals, verifying them through real-time search grounding, synthesizing actionable insights with architectural diagrams, and persisting the resulting intelligence in a resilient cloud workspace?
- What We Learned Building an end-to-end technical intelligence pipeline provided critical insights across several engineering domains: Signal-to-Noise Ratio Filtering: Raw data ingestion requires strict heuristics. By computing relevance weights and keyword densities, we filter noise before generation. Formally, if represents the incoming raw signal set, we compute an editorial utility score:
where . Only signals satisfying proceed to synthesis. Real-Time Grounding vs. Hallucination: LLMs excel at structured synthesis, but technical newsletters demand zero factual drift. Leveraging Gemini's native Google Search grounding ensures version numbers, benchmark metrics, and security CVEs are corroborated against live web sources. Visual Architecture Synthesis: Text alone is insufficient for engineering audiences. Generating declarative Mermaid.js flowcharts and Recharts trend visualizations alongside markdown text dramatically accelerates comprehension. Strict Cloud Multi-Tenancy & Zero-Trust Security: Decoupling OAuth token exchange on the client side while enforcing isolated Firestore collection paths (/users/{userId}/newsletters/{newsletterId}) guarantees that private notes and drafts remain completely confidential.
- How We Built It Ghostwriter is architected as a full-stack, cloud-native web application combining high-performance client rendering with server-side AI orchestration: code Mermaid graph TD A[Raw Multi-Channel Ingestion: X, Reddit, RSS, Docs] --> B[Server Orchestrator: Node.js & Express] B --> C[Gemini 2.5/3.7 Engine + Google Search Grounding] C --> D[Structured Editorial Pipeline: Top 3 Signals, TL;DR, Architecture] D --> E[Interactive Client: React 18, Tailwind CSS, Mermaid, Recharts] E --> F[Firebase Firestore: Real-Time Sync & Multi-User Partitioning] E --> G[Google Workspace Integrations: Drive, Docs, Calendar] Key Architectural Layers Frontend Experience (React 18 + TypeScript + Tailwind CSS): Clean editorial typography with responsive high-contrast layouts. Live interactive visualizers: Mermaid.js for architectural flowcharts/sequence diagrams and Recharts for trend/benchmark charts. Dedicated audio briefing player powered by server-side text-to-speech synthesis. AI & Grounding Engine (Google GenAI SDK): Powered by Gemini models (gemini-2.5-flash / gemini-3.7-flash) with dynamic model fallback cascading to guarantee uptime. Grounded directly in live web data via the googleSearch tool for real-time validation of breaking developments. Persistent Cloud Layer (Firebase Firestore & Google Auth): Client-side Google OAuth 2.0 authentication gate preventing unauthorized access. Persistent Firestore database storing historical digests, scheduled drafts, and analytics metrics with strict security rules (firestore.rules). Workspace & Export Suite: One-click export to Google Docs, Google Drive, HTML, PDF, and Markdown. Integrated Google Calendar scheduler for automated weekly or bi-weekly publication cadences.
- Challenges We Faced Structured Output Integrity under Complex Schema Demands: Balancing nuanced technical commentary, clean Markdown formatting, structured JSON fields, and valid Mermaid diagram syntax in a single generation step was challenging. We solved this through rigorous prompt engineering, JSON schema enforcement, and client-side Mermaid validation with automatic syntax repair fallbacks. Rate Limit & Latency Optimization: Large, multi-source synthesis tasks can encounter rate limits during peak usage. We implemented an exponential backoff retry mechanism combined with a fallback tier:
ensuring seamless degradation from primary models to lightweight alternatives without crashing the client session. Dynamic Iframe Context & OAuth Integration: Running Google OAuth in sandboxed environments required careful handling of popup flows and token state persistence without exposing client credentials or violating browser cross-origin policies.
Built With
- firebaseauthentication
- firebasefirestore
- googlecalendarapi
- googlecloudrun
- googledocsapi
- googledriveapi
- googlegeminiapi
- googlegenaisdk
- googleoauth20
- googlesearchgrounding
- lucidereact
- mermaid
- nodejsexpress
- recharts
- tailwindcss
- typescriptreact18
- vite
- webspeechapi

Log in or sign up for Devpost to join the conversation.