A clean, minimalist article reader and blog platform inspired by Medium. Built with FastAPI and Jinja2 templates.
- Markdown Blog Posts - Write and display posts with Markdown syntax
- Article Reading - Clean reading experience with formatted content
- Authors - Author profiles and article listings
- Categories - Organize posts by topic
- Search - Search across all posts
- Pagination - Navigate through articles
- Read Time Estimation - Calculate reading duration
- Admin Dashboard - Manage posts and authors
- View Counting - Track article views
- FastAPI - Python web framework
- Jinja2 - HTML templating
- Markdown - Markdown to HTML conversion
- Pydantic - Data validation
- SQLite - Lightweight database
- bleach - HTML sanitization
pip install -r requirements.txtCopy the example environment file:
cp .env.example .envEdit .env with your settings:
DATABASE_URL=sqlite:///./writerflow.db
BASE_URL=http://localhost:8000
SECRET_KEY=your-secret-key-herepython main.pyOr with uvicorn:
uvicorn main:app --reloadThe platform will be available at http://localhost:8000
- Homepage shows latest published articles
- Filter by category or author
- Search for specific topics
- Click on any article title
- Clean reading interface with formatted content
- See author info and article metadata
- View all posts (published and drafts)
- Edit post details
- Delete posts
- View statistics
- Navigate to
/admin - Post a new article (form submission)
- Draft posts can be published later
GET /- Home pageGET /post/{slug}- Article detailGET /category/{slug}- Category listingGET /author/{slug}- Author listingGET /api/posts- List posts APIGET /api/posts/{slug}- Get post APIGET /api/categories- List categories APIGET /api/authors- List authors APIGET /api/search- Search posts API
GET /admin- Admin dashboardPOST /admin/posts- Create postPOST /admin/posts/{id}/delete- Delete post
- Interactive Swagger Docs:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
Write posts using Markdown syntax:
# Heading 1
## Heading 2
**Bold text** and *italic text*
- List item 1
- List item 2
[Link text](https://example.com)writerflow/
├── main.py # Main application
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
├── .gitignore
└── README.md # This file
- Minimalist - Clean, distraction-free reading
- Content-focused - Typography and readability
- Simple - Easy to understand and use
- Fast - Built with FastAPI for performance
MIT