Inspiration

Every teacher I know spends more time preparing paperwork than teaching. A single lesson plan can branch into a dozen derivative documents: a version for struggling learners, one for advanced students, a parent email, a substitute packet, an IEP progress note, an accessible UDL copy, a translated version for multilingual families, and an assessment. The math is brutal

That is nearly 3 hours of administrative work for a single unit — time stolen from lesson delivery, student feedback, and rest. EduForge was built to collapse that toward zero.

The deeper inspiration came from conversations with elementary and middle-school teachers who described the "invisible tax of inclusion": every student with an IEP, every English Language Learner, every learner who reads two grade levels below — each one requires an individually adapted document. Differentiation is the right thing to do pedagogically, but the time cost makes it unsustainable without AI assistance.


What it does

EduForge is a web-based AI productivity platform for K–12 educators. A teacher pastes or uploads a lesson plan, selects which output types they need, and hits Generate. Within seconds, they receive:

Output Description
Differentiated Versions Below / On / Above grade-level adaptations
UDL Accessible Plain language, high-contrast, screen-reader friendly
Multilingual Translation Translated via Google Cloud Translate (40+ languages)
Assessment Auto-generated quiz aligned to lesson objectives
Parent Communication Professional email home summarizing the week's learning
Substitute Packet Self-contained packet a guest teacher can run independently
IEP Progress Note Draft compliance note ready for a special-education teacher to review
Standards Alignment Live web search mapping the lesson to curriculum standards

Documents are saved to a personal cloud library. Teachers can listen to any document read aloud via Text-to-Speech, copy content, or download files as needed.


How we built it

EduForge follows a clean client → Edge Function → AI API architecture. We used React + Vite for a lightning-fast frontend, with Tailwind CSS and shadcn/ui for an accessible, professional interface.

The backend is powered by Supabase, providing authentication and a PostgreSQL database. We built several custom Edge Functions (Deno) to act as a secure gateway for AI services:

  • Gemini 2.5 Flash for streaming LLM generations.
  • Google Cloud Translation API for multilingual support.
  • LemonFox TTS for high-quality audio narration.
  • OCR.space for converting photographed lessons into text.
  • Smart Search API for real-time standards alignment.

By using Server-Sent Events (SSE), we fire all generation tasks in parallel. The UI updates in real-time as words appear, ensuring teachers aren't stuck waiting for a loading spinner.


Challenges we ran into

  1. Parallel Stream Synchronization: Firing seven LLM calls at once initially caused race conditions where content would appear in the wrong UI tabs. We solved this by tagging every stream chunk with a unique task ID.
  2. OCR Noise: Photos of handwritten lesson plans are often messy. We had to tune our LLM prompts to "clean and infer" missing data from low-quality OCR text.
  3. SVG Font Rendering: Our custom typography (Ranade) wasn't available inside the SVG renderer. We had to restructure our logo wordmark into a single, unified text element to prevent kerning and overlap issues across different browsers.
  4. Cloud Migration: Transitioning from a localStorage prototype to a full Supabase implementation required a complete rewrite of our state management to handle asynchronous data fetching while keeping the UX snappy.

Accomplishments that we're proud of

We are incredibly proud of building a fully functional, end-to-end cloud platform in such a short time.

  • Zero-Wait UX: Our parallel streaming architecture means that even if a teacher generates seven documents at once, the total time taken is only as long as the longest single document.
  • Unified Branding: We developed a professional visual identity, from the AI-generated book logo to the carefully selected typography, giving the tool an "educational-first" feel.
  • Real-World Impact: If EduForge saves each teacher just 2 hours per week, in a school of 50 teachers, that returns 4,000 hours per year back to the classroom.

What we learned

  1. Prompt Engineering at Scale: We learned how to craft seven distinct system instructions that produce high-quality, specialized outputs from the same source material.
  2. Structural Security: We learned to use Supabase Row-Level Security (RLS) as a core design constraint, ensuring that teacher data is always isolated and secure.
  3. Inclusive Design: Building UDL-accessible outputs taught us that accessible design is simply better design for everyone—including tired teachers working late at night.
  4. Resilient APIs: We learned to build "graceful degradation" into our pipeline, ensuring the app stays usable even if one external service (like OCR) has low-quality input.

What's next for EduForge

The current version of EduForge is just the foundation. Our roadmap for the future includes:

  • Rich Document Export: Adding one-click export to PDF and Google Docs with professional school formatting.
  • Teacher Collaboration: Shared folders where grade-level teams can "forge" and share materials collectively.
  • LMS Integration: Direct plugins for Canvas and Google Classroom to push generated materials straight to students.
  • Specialized Subject Modules: Advanced AI tools specifically for science lab safety, math equation rendering, and music theory.
  • Student Portal: A read-only interface where students can access their differentiated materials directly.

Built With

  • authentication
  • deno
  • edge-functions
  • eslint
  • framer-motion
  • gemini
  • google-cloud-translation-api
  • image-generation
  • lemonfox-text-to-speech
  • lucide-react
  • ocr.space
  • oogle-gemini-2.5-flash
  • pillow-(python)
  • pnpm
  • postgresql-database
  • postman
  • python
  • ranade-(fontshare)
  • react-18
  • react-hook-form
  • react-router-v6
  • shadcn/ui
  • smart-search-api
  • sonner
  • space-grotesk
  • sql-(postgresql)
  • storage
  • supabase
  • tailwind-css
  • tsx/jsx
  • typescript
  • vite
  • zustand
Share this project:

Updates

Submission history