CodingNic
← Back to Courses
Build Readly: From UI to Full-Stack eBook Reader
Intermediate 12 Modules Self-Paced Learning

Build Readly: From UI to Full-Stack eBook Reader

Build a complete personal eBook library and reader with Next.js, PostgreSQL, custom authentication, EPUB.js, object storage, annotations, reading progress, and reader preferences.

Build a complete personal reading space while learning how the pieces of a full-stack application fit together.

You will start with a prepared Readly interface and progressively replace mock behavior with real application functionality. By the end, the interface will be backed by a database, secure authentication, persistent eBook storage, a real EPUB reader, reading progress, annotations, reader preferences, and production-minded safeguards.

Course Preview

See the Readly interface you will turn into a complete full-stack application.

Course preview

Reader View

Home and My Library

Highlights and Notes

Reading Settings

What You Will Build

Readly is a personal eBook library and reader.

A signed-in user can:

  • create an account and sign in
  • upload EPUB books
  • manage their personal library
  • open and read books
  • navigate chapters and reading positions
  • resume where they stopped
  • bookmark passages
  • highlight text
  • add notes
  • favorite highlights
  • personalize the reading experience
  • review reading activity from Home

The course finishes with testing, security hardening, and deployment preparation.

How the Course Works

This is a project-focused course. You will work on the same application throughout the course instead of building unrelated exercises.

The starter gives you the prepared Readly interface and mock data. The implementation work begins by establishing the application’s real data layer, authentication, storage, reader, persistence, and application behavior.

Each implementation lesson focuses on one meaningful change and ends with a visible or testable checkpoint.

Prerequisites

You should already be comfortable with:

  • JavaScript or TypeScript
  • React
  • Next.js
  • HTML and CSS
  • npm
  • Git
  • basic SQL and relational database concepts

Docker basics are useful because the local development environment uses containers for services such as PostgreSQL and S3-compatible object storage.

What You Will Learn

By completing the project, you will practice:

  • structuring a larger Next.js application
  • designing relational data for a real product
  • working with Prisma and PostgreSQL
  • implementing custom session-based authentication
  • validating and protecting application resources
  • handling EPUB uploads and object storage
  • integrating EPUB.js into a React/Next.js reader
  • persisting reading position and user annotations
  • building contextual reader preferences
  • making a feature-rich application responsive
  • testing and hardening a full-stack workflow

Final Project

The final Readly workflow is:

Register → Login → Upload EPUB → My Library → Open Book → Read → Change Settings → Close → Reopen → Resume → Bookmark → Highlight → Add Note → Browse Annotations → Delete Book

The goal is not to produce an enterprise platform. The goal is to finish a coherent, production-minded full-stack MVP whose major workflows work end to end.

Final Result

At the end of the course, you will have a complete Readly application with:

  • PostgreSQL persistence
  • Prisma data access
  • custom authentication and sessions
  • Argon2id password hashing
  • Zod validation
  • S3-compatible EPUB storage
  • EPUB.js rendering
  • book-wide reading progress
  • bookmarks
  • highlights and favorites
  • notes
  • persistent reader preferences
  • real Home and Library data
  • responsive layouts
  • ownership and upload protections
  • security safeguards
  • final lint, typecheck, build, and smoke-test verification

What You'll Learn

✓ Build a full-stack eBook reader from a prepared production-style UI.
✓ Model and persist application data with PostgreSQL and Prisma.
✓ Implement custom authentication and secure sessions.
✓ Upload and render EPUB books using S3-compatible storage and EPUB.js.
✓ Persist reading progress, bookmarks, highlights, notes, and reader preferences.
✓ Test, harden, and prepare the application for deployment.