Personal (portfolio) page built with Quart, MongoDB, TailwindCSS & HTMX. In a nutshell this project exists because i wanted to explore asyncio, ASGI and NoSQL databases and deviate from what i already know quite well (WSGI, Django + PostgreSQL).
- based on Python 3.10 and the Quart async micro-framework
- runs with hypercorn, uvloop and Docker on an Ubuntu 22.04 vServer with https://github.com/traefik/traefik as reverse proxy
- MongoDB as database with Motor as async driver and Beanie as ODM
- persistent session management with Quart-Session and Redis
- data classes and validation with Pydantic
- JSON-API with request and response validation as well as auto-generated OpenAPI docs using Quart-Schema
- frontend build with TailwindCSS and daisyUI
- server-side rendering with Jinja made SPA-like with HTMX & Alpine.js
- simple caching implementation using aiocache and Redis
- simple authentication and user management to allow live editing
- distributed task queue with arq and Redis
- simple mail integration with aiosmtplib
- Markdown for static pages
- Editor.js for creating posts/editing content
- Page analytics with plausible.io
- admin dashboard
- comment function
- content... 😢