JMDD

Portfolio

Search
Backlog 36
JMDD-8

Epic 2: Public pages - layout, theme, home, CV, projects, SEO

JMDD-9

Root layout, design tokens, theme toggle, nav

JMDD-10

Home route with streamed widget loads

JMDD-11

CV route with print stylesheet

JMDD-12

Projects index and detail with published-filter helper

JMDD-13

Changelog route from repo YAML

JMDD-14

404 page

JMDD-15

SEO: head component, OG card, sitemap, robots, JSON-LD, favicons

JMDD-16

Epic 3: Content model, admin editing, snapshot resilience

JMDD-17

Schema, first migration, atomic counter helpers

JMDD-18

Seed script from content.json plus dev fixtures

JMDD-19

Markdown pipeline: marked + sanitize-html with XSS tests

JMDD-20

Admin auth: argon2, JWT cookie, login rate limit

JMDD-21

Admin CRUD for all content entities

JMDD-22

Markdown editor with live sanitised preview

JMDD-23

Content snapshot to disk with boot regeneration

JMDD-24

Currently tiles on the home page

JMDD-25

Epic 4: Ship it - Docker, Jenkins, DNS cutover

JMDD-26

Production Dockerfile with migrate-on-start entrypoint

JMDD-27

Production compose with Traefik labels and proxy env

JMDD-28

Jenkinsfile, backup script, credentials

JMDD-29

.env.example and secrets inventory

JMDD-30

Apex cutover and Cloudflare Pages teardown

JMDD-31

Epic 5: Articles - routes, editor, demo shortcodes

JMDD-32

Article routes with ship-gate and reading time

JMDD-33

Demo shortcode pipeline

JMDD-34

Editor extensions: slugs and draft/publish semantics

JMDD-35

First demo component and article e2e

JMDD-36

Epic 6: Guestbook - wall, stamps, moderation

JMDD-37

Submission flow: validation, honeypot, time-gate

JMDD-38

Shared rate-limit helper

JMDD-39

Guestbook wall, pagination, home teaser

JMDD-40

Moderation queue in admin

JMDD-41

Epic 7: Live widgets - hit counter, degradation pass

JMDD-42

Hit counter with session dedup

JMDD-43

Widget degradation pass

Todo 6
In Progress 1
In Review 0
No tickets
Done 0
No tickets