Skip to content
All work

Penbook

A social platform for writers and readers, from messaging and live sessions to a writing studio with AI tools, built solo.

Role
Solo Engineer
When
2025 - 2026
Stack
  • 1 × Node.js
  • 1 × NestJS
  • 1 × MongoDB
  • 1 × OpenAI
  • 1 × React

The job

Penbook was a social network built around books. Writers and readers had their own profiles, public or private, followed each other, posted, messaged one to one and in groups, and went live. Around that social layer sat the reasons to be there: a writing studio for creating books, with AI tools and world-building maps; reading, reading lists and journals; and book clubs that put readers in the same room as the authors.

I built it solo at Bizdesire. That meant the data model, the NestJS API, the OpenAI integration and the React screens that use them. It ran as a live product for a few months; the client has since taken it offline.

Product areas and backend services (conceptual)
WRITINGAI-assistedREADINGdiscoveryCONTENTugcBOOK CLUBScommunityNESTJS · BACKENDaccountswritingreadingcontentclubsaibounded interfaces · shared auth and data conventionsMONGODBdocuments · indexesOPENAIserver-side mediation

One backend, many surfaces

Profiles and privacy, the social graph, posts, messaging, live sessions, writing, reading and clubs share accounts, data conventions and a deployment, but they change for different reasons. A new club feature should not be able to break the editor, and a messaging change should not touch reading.

NestJS modules gave each surface its own boundary inside one deployable. For one engineer, separate services would have been overhead with no payoff. A single unstructured app would have tangled within months. Modules kept the deploy simple and the seams honest.

Data shaped like a book

A story is naturally a document with nested parts, and it is read and saved that way far more often than it is queried across. MongoDB fit that shape without a join for every page view. Indexes followed each surface's own access patterns: the editor loads the part being written, the reader loads what is published, and feeds and club pages read summaries.

AI that stays on the server

The writing tools call OpenAI, and every call goes through the backend. The browser never holds a key. Prompts live in server code, so changing how the assistant behaves is a backend change rather than a front-end release, and usage can be capped per user without trusting the client.

The AI is a tool inside the editor, not the product. Readers could discover, read and join clubs without ever touching it.

The social layer

Every account could be public or private. People followed each other and posted, messaging covered one-to-one and group conversations, and live sessions let writers and readers meet in real time.

Writing, reading and clubs

The writing studio was where books were made: an editor for chapters, world-building maps for the places in a story, and the AI writing tools. Readers read published books, saved them to reading lists and kept journals as they went. Book clubs connected readers with each other and with the authors, and the API kept the paths that lead from a reader back to the writer behind a story.

Questions

What was Penbook?
A social platform for writers and readers. People had public or private accounts, followed each other, posted, messaged one to one and in groups, and went live. Writers wrote books in an editor with AI tools and world-building maps; readers read them, built reading lists, kept journals and joined book clubs with other readers and the authors.
Who built Penbook?
Abhishek Thakur built it solo at Bizdesire: the data model, the NestJS API, the OpenAI integration and the React front end.
Why did Penbook call OpenAI from the server instead of the browser?
Keeping the OpenAI client on the server kept the API key out of the browser, let prompts be changed and versioned without a front-end release, and allowed per-user usage limits that the client could not bypass.

Last updated

Next case studyRocket RebatesFind the rebates you qualify for, get an AI report on each, and file a package an admin has already checked.