PneumoDok: Editorial Publishing Platform
Custom publishing CMS with review workflows and database-level access control.
Visit the live project →PneumoDok is a pulmonary knowledge publishing platform with a public reading experience and a purpose-built editorial system. My role focused on implementing the product workflows that make publishing, review, access control, and editorial assistance manageable in one platform.
A publishing product, not a brochure site
The public side supports articles, topic navigation, search, archives, activities, pages, newsletter sign-up, and contact flows. Behind it is a separate editorial surface for the people responsible for creating, reviewing, and maintaining that content.
The public experience organizes pulmonary knowledge into searchable content, categories, archives, and activity information.
A workflow before publication
Articles move through draft, review, published, and archived states. Contributors can work on their own material, while editors and owners have broader publishing and administration responsibilities. The custom CMS also covers categories, media, pages, activities, users, settings, and a review queue.
The editorial dashboard brings content states, review, categories, media, statistics, AI settings, and user management into one workflow.
Permissions enforced where the data lives
The platform uses Supabase Auth, PostgreSQL, and Row Level Security as the authorization boundary. Public readers can access published material, while editorial roles are restricted by what they are allowed to read, create, edit, review, and publish. The permission model is tested directly against the database API rather than relying only on what the interface hides.
AI inside the editorial process
The AI assistant generates a structured proposal that an editor can apply to a normal article form. It does not independently create, save, publish, or change an article's workflow status. That keeps human review and the established publishing process in control.
Feedback from publishing activity
Internal analytics provide article-view trends, category breakdowns, time ranges, and export support. The goal is to give the editorial team practical feedback about published content without turning the product into a generic analytics dashboard.
The statistics view gives editors a focused view of article activity over time and by category.
Built to be verifiable
The implementation includes committed Supabase migrations, typed database definitions, input validation, direct RLS tests, service and integration tests, and browser-level end-to-end coverage. The AI assistant remains a proposal tool within that governed workflow, not an autonomous publisher.
Technical overview:
- Next.js and a custom editorial CMS
- Supabase PostgreSQL, Auth, Storage, and Row Level Security
- TipTap rich-text editing and structured content storage
- OpenAI for server-side editorial proposals
- Resend for public transactional email
- Zod, Vitest, Playwright, and database-level RLS tests