Skip to content

πŸ“° Headless blog platform built with Symfony (API) and Next.js (frontend). Includes user roles, comment system, structured editor, view statistics, filters, and secure authentication. Designed for collaborative publishing in a modular and API-driven architecture.

Notifications You must be signed in to change notification settings

st00mp/the-blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› οΈ Blog / CMS

This is an ongoing implementation of the multi-authors CMS using Symfony, Next.js and ShadCN UI components.
The goal is to recreate a clean, elegant blog layout inspired by Vercel’s blog design.

Local setup

Copy the example environment files and adjust them with your own values:

cp backend/.env.dev.example backend/.env.dev
cp frontend/.env.local.example frontend/.env.local

Docker Compose relies on these variables when starting the containers.


βœ… Current progress

  • Set up database structure with users, articles, and categories
  • Create static home & article detail pages
  • Generate dynamic article detail pages based on slug (/blog/[slug])
  • Make homepage dynamic: fetch and display latest articles
  • Add search functionality for articles based on keywords
  • Add basic authentication (register / login)
  • Implement user roles (reader vs author)
  • Add comment system (with nesting support)
  • Allow authors to create their own articles
  • Allow authors to edit their own articles
  • Allow authors to delete their own articles
  • Allow readers to post and manage their own comments
  • Add file upload support (image/video/document per article)
  • Add user management from initial .txt file
  • Secure form inputs and validate user data
  • Ensure full mobile/desktop responsiveness
  • Write simplified project documentation
  • Add minimal testing coverage

πŸ“Έ Screenshots (WIP)

/blog – static layout

🧱 Component composition + overall structure

image

/blog/[slug] – article detail layout

πŸ’‘ Metadata + CTA + Vercel-inspired styling

localhost_3100_blog_comprendre-les-transformateurs-et-les-modeles-de-langage-avances


/admin/article/new – article creation

✍️ Structured editor for authors to write high-quality articles

This interface provides a guided, step-by-step layout for writing blog content.
It's optimized for clarity, SEO-readiness, and a smooth authoring experience.

localhost_3100_editor_articles_new

Key features:

  • 🧱 Section-based layout:

    • Introduction
    • 3 customizable content steps
    • Quote or punchline
    • Conclusion and CTA
  • πŸ“ Title & metadata fields:

    • H1 Title
    • Meta Title (SEO)
    • Meta Description (SEO)
  • 🧠 Smart placeholders to guide the writing process in each section

  • πŸ’‘ Rich text editing with Tiptap:

    • BubbleMenu with grouped formatting tools (bold, italic, strike, color, highlight)
    • Alignment, blockquote, link insertion
    • Lists (bullet, ordered)
  • βž• Block insertion modal for:

    • Images
    • Tables
    • Horizontal separators
  • βœ… Clean and structured JSON payload ready for export to the backend


🎯 Bubble menu with minimal UI

Floating toolbar with horizontal scroll on overflow β€” optimized for readability and focus.

BubbleMenu


βž• Block insertion modal

Quickly insert visuals or layout elements without disrupting the writing flow.

image

Admin Interface /admin – Admin dashboard

image

Author Interface /editor – Author dashboard

image

Author Interface /editor/articles – Article listing and actions

image

User Settings /account/settings – Personal information and preferences

localhost_3100_account_settings

About

πŸ“° Headless blog platform built with Symfony (API) and Next.js (frontend). Includes user roles, comment system, structured editor, view statistics, filters, and secure authentication. Designed for collaborative publishing in a modular and API-driven architecture.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published