Markly Writing

Inspiration

  • Markly Writing helps students build structured, repeatable writing habits through rubric-driven feedback and short practice cycles. The product is currently student-first, focused on helping learners improve through targeted practice and clear feedback.

What it does

  • Guides students through scaffolded writing tasks with explicit structure prompts.
  • Evaluates submissions against teacher-authored rubrics and returns targeted, actionable feedback instead of opaque scores.
  • Supports a student-first writing workflow centered on practice, feedback, and improvement.

How we built it

  • Frontend: Next.js with React App Router and server-side rendering for fast lesson and dashboard pages.
  • Backend: NestJS API with Prisma for Postgres, background workers for scoring and PDF generation, and Firebase for auth where needed.
  • Integrations: rubric-driven scoring, PDF/report generation, email notifications, lightweight analytics, and migration/seed scripts.
  • Dev workflow: pnpm monorepo with TypeScript end to end and utility scripts for local development, migrations, and seeding.

Challenges we ran into

  • Modeling rubrics so teachers could author flexible criteria without breaking scoring logic.
  • Mixing Firebase on the server and client required lazy initialization to avoid SSR credential leaks.
  • Scaling background scoring and report generation while keeping the teacher experience responsive.
  • Migrating real classroom data safely and building reliable seeding tools.

Accomplishments that we're proud of

  • A student-first writing experience that focuses on clear, actionable improvement.
  • Reduced teacher grading time through automated, rubric-aligned feedback.
  • End-to-end integration across scoring, progress tracking, and classroom exports.
  • Practical dev tooling for migrations, seeding, and local development.

What we learned

  • Teachers respond better to rubric-language feedback and actionable next steps than raw scores.
  • Lazy auth initialization is essential when mixing SSR and client bundles.
  • Early investment in migration tooling prevents fragile manual fixes later.
  • Small automation, like batch scoring and seed data, delivers outsized productivity gains.

What's next for Markly Writing

  • Add adaptive learning paths that generate follow-up exercises based on rubric weakness.
  • Improve scoring transparency with explainable feedback snippets and exemplar comparisons.
  • Expand the student experience with more guided practice and clearer next-step feedback.
  • Polish the core workflow with faster iteration loops and better writing support.

Built With

  • canvas-confetti
  • class-transformer
  • class-validator
  • class-variance-authority
  • cloud-run
  • clsx
  • eslint
  • fastify
  • fastify-multipart
  • firebase
  • firebase-admin
  • firebase-app-hosting
  • google-cloud-compute-engine
  • google-cloud-firewall
  • gsap
  • jsonrepair
  • logtail
  • lucide-react
  • nest-common
  • nest-config
  • nest-core
  • nest-platform-express
  • nest-platform-fastify
  • nest-schedule
  • nest-throttler
  • nestjs
  • next-js
  • next-themes
  • node-fetch
  • openai
  • pdf-parse
  • pg
  • pnpm
  • postgresql
  • prisma
  • prisma-adapter-pg
  • prisma-client
  • radix-ui
  • react
  • react-query
  • recharts
  • reflect-metadata
  • rxjs
  • shadcn-ui
  • sonner
  • stripe
  • systemd
  • tailwind-css
  • tailwind-merge
  • typescript
  • ubuntu
  • vercel
  • zustand
Share this project:

Updates