Skip to content

Block-Based Content Platform

ui/ux / web

Most company websites start as marketing tools and slowly accumulate features until they become something harder to categorize — part CMS, part blog, part customer communication channel, part developer showcase. Building that evolution deliberately, as a coherent system, is a different problem than building each piece separately.

This project is that system: a content platform that handles the full surface of a company's web presence, from published articles to appointment scheduling to AI-powered visitor chat, all managed through a single admin interface.

The Block-Based Page Engine

The core of the frontend is a dynamic page renderer built around a typed block system. Every page is stored in the database as a JSON array of blocks, each with a type, order, and props object. A BlockRegistry maps type strings to React components. The Renderer walks the block array and hydrates each entry through the registry.

The block library spans 50+ types: hero variants (standard, split, minimal, landing), feature grids, pricing tables, comparison blocks, FAQ accordions, case study layouts, process flows, roadmaps, stats dashboards, testimonials, partner grids, office listings, integration showcases, resource downloads, newsletter signups, contact forms, media embeds, image galleries, and more. Each block has a typed schema that defines its editable fields — text, URL, color, boolean, number, select, rich text, image upload, menu reference, date — which the admin's form system renders automatically without per-block editor code.

An AI generation endpoint can produce a complete page block-by-block from a prompt, and a custom block AI endpoint generates bespoke block configurations on demand.

GitHub Integration

A GitHub promotion system syncs repositories through a webhook-driven pipeline. When a repo's promote.md file is updated, the platform detects the change via commit SHA tracking, fetches the new content, and either creates or updates a linked DynamicPage. The entire showcase page for a project is generated from the repository's own documentation file — no manual re-entry.

Hybrid AI/Human Chat

The visitor chat system starts every session in AI mode. The AI responds using the OpenAI API with context about the platform. When the conversation requires human judgment, an admin can take over the session — the status transitions from AI to HUMAN, the admin types in the same thread, and the visitor sees no interface change. Sessions can be closed when resolved. The admin panel shows unread counts per session and supports session management across multiple simultaneous visitors.

Content System

Posts, categories, threaded comments with moderation (published, unpublished, spam), likes for both authenticated and anonymous visitors (with IP and device fingerprint deduplication), view counting, and full slug-based routing. Categories carry their own metadata and keywords. The blog generates RSS feeds and XML sitemaps automatically. GeoAnalytics tracks visitor geography by country and city.

Internationalization

Ten languages out of the box: English, Turkish, German, Spanish, Estonian, Greek, Maltese, Dutch, Thai, and Ukrainian. Dictionaries drive all UI strings. RTL direction is handled through the DirectionProvider. The appointment scheduling system (slots, booking, calendar) respects timezone-aware date handling via date-fns-tz.

Infrastructure

JWT sessions with OTP, TOTP, and OAuth SSO. API keys with prefix and hash storage for third-party integrations. Popup modal management with scheduling and per-visitor frequency control. Menu configuration with JSON import/export. Spam protection on contact forms. Rate limiting on sensitive endpoints. S3-compatible file uploads. BullMQ background jobs. MCP server for AI tooling integrations.

Newsletter

Stay updated! Get all the latest and greatest posts delivered straight to your inbox