Helping an online edtech ship their MVP for a creative writing platform

Role: Full stack developerYear: 2022
Shakespeers landing hero
Client
Speakeasy
Country
United States of America
Team
Solo
Platform
Web (landing page and app)
Services provided
Full stack development
Industry
EdTech
Tech stack
React, RedwoodJS, TypeScript, GraphQL, AWS Lambda, PostgreSQL, Prisma, Clerk, Stripe, Vercel

The product

Before founding the US-based EdTech platform that enables children (ages 10-13) to write, read, and engage with content in a moderated online community, Elizabeth Slavitt built her career by working at McKinsey & Company before joining Khan Academy where she led teams responsible for developing educational content and learning tools. Her contributions to education earned her a place on the Forbes 30 Under 30 list in Education in 2014. She reached out with the role of a Full stack developer to build the product quickly and efficiently. The first production release shipped in 3 months.

Story reading feed

What was the challenge?

  • Safe space for children: The parents needed a safe space for their children to learn reading and writing without being exposed to inappropriate content .Reporting, moderation, and content writing rules were needed for that to happen.
  • Four personas for the application: A persona is a type of user with their own goals and access in the product. Here that meant first-time visitors, parents, kids, and moderators. Their exact roles will be explained further down.
  • A better writing tool for kids: The content needed structure, not a plain text box. The editor had to support formatting so kids could shape longer pieces, while being simple enough for their age group.

What was shipped?

A first-time visitor landed on the landing page, could read the FAQs, check pricings, and then register as a parent through Stripe checkout. Once signed up, the parent could create child accounts and send each child an invitation email. The child used that invite to complete onboarding and get their own space for writing and reading content. Parents stayed in control of subscriptions and child accounts, and could also view other children's content and browse writing topics.

Parent dashboard with child accounts

Inside the app, the children had a what-you-see-is-what-you-get editor to format content with a real structure instead of plain text. They received daily writing prompts, could draft and submit new pieces through a 7-day submission workflow, and were allowed to search content by topic, open them, and react with emojis. Image uploads were left out on purpose, to keep their space clean and to also reduce privacy risk. If something felt wrong, a child could report the content which was then reviewed by moderators.

Story editorWriting submission flow

Moderators were needed because a kids community cannot run on trust alone. They reviewed reported content, got automated alerts when something needed attention. Alert automations were setup on the basis blacklisted words and emojis so unsafe material could be caught before it spread. Only the moderators had access to the alert automations and the blacklist. Parents and children were only allowed to make reports/suggestions.

Moderator reports view

Selecting the full stack framework

RedwoodJS

The project needed a single place for both the frontend and backend so features could move quickly without bouncing between multiple codebases. Shared GraphQL types and a predictable project structure were equally important, especially for a solo MVP. We considered Next.js with a custom API, Remix, and a traditional React with Express setup. RedwoodJS already brought React, GraphQL, Prisma, and serverless APIs together in one framework, making it the quickest path to getting the product in front of users instead of spending weeks assembling the stack.

CKEditor

Kids needed a writing experience that felt closer to a word processor than a plain text box. Stories needed headings, formatting, images, and enough flexibility to encourage creativity, but building an editor from scratch would have taken far too much of the project. TipTap, Quill, TinyMCE, and Slate were all considered. We chose CKEditor because it delivered a polished writing experience out of the box, letting us spend our time improving the storytelling experience instead of rebuilding an editor.

Other technologies
  • Running and maintaining servers would have taken time away from building the product. AWS Lambda handled the infrastructure and scaling, keeping the backend lightweight while leaving room for the application to grow.
  • Parents, kids, and moderators all needed different levels of access from day one. Rather than building authentication and permissions ourselves, Clerk already solved that problem and let development stay focused on the product.
  • Stories, users, subscriptions, and moderation all depended on connected data. Prisma and PostgreSQL provided a clear data model without adding unnecessary complexity to the backend.
  • Parents needed a checkout and subscription flow they already trusted. Stripe handled payments and recurring billing, keeping what could have become a large piece of work as a solved problem.
  • As changes became more frequent, every release needed to stay reliable. Vercel and GitHub Actions automatically ran linting, tests, and deployments, helping catch problems before they reached production.
  • Moderators needed to know when new reports arrived without constantly checking a dashboard. AWS SNS sent notifications whenever moderation needed attention, making the review process much easier to manage.

Testimonials

Elizabeth Slavitt
Elizabeth SlavittFounder/CEO @ Speakeasy

It's been such a pleasure working with Parmeet. We've been impressed by the quality of his code, his communicativeness, his work ethic, and his passion for making the product intuitive and delightful. We'd recommend him enthusiastically to others and hope to work together again in the future.

Isaac Durand
Isaac DurandLead engineer @ Speakeasy

We brought Parmeet onto our team to accelerate development of a new product, and he definitely delivered. Parmeet immediately took ownership over all the stories we assigned to him, thinking carefully about the user experience and ensuring that the components he built would function well on both desktop and mobile. He was also an excellent collaborator, eager to share ideas for how we could improve the product and receptive to feedback on his work. Thanks to Parmeet, our MVP release was smooth and on schedule. We will definitely keep him in mind for future projects!

Let's bring your nextbig idea to life

Whether you're brainstorming ideas, looking to bolster capabilities, rapidly expanding your team, or delegating projects, count on us to meet your needs effectively any or every step of the way

Available for new engagements