Nim project. "Penerbit" = publisher (Malay).
The references/ directory contains Nim language docs: manual, stdlib overview, lessons learned, compiler tools guide, and Mastering Nim raw OCR.
[ts-001] +0 expandFilename raises on non-existent paths; use normalizedPath(absolutePath(...)) for safe resolution.
[ts-002] +1 Nim parseopt needs : or = for option values; -p 8082 silently fails, use manual next-token fallback.
[ts-003] +0 Nim not binds tighter than >; not x.len > 0 does bitwise NOT on int. Use x == "" or parens.
[ts-004] +1 Nim Defect (IndexDefect, stack overflow) isn't caught by except CatchableError; use except Exception in handlers.
[ts-005] +1 markdown lib v0.8.8 recurses deeply on nested lists; large files (>512KB) blow the stack uncatchably.
[code-001] +1 mummy handler: var headers: HttpHeaders; headers["K"] = "V"; request.respond(code, headers, body).
[code-002] +0 Thread-safe logging in mummy: std/logging globals aren't gcsafe; use plain echo with formatted timestamps.
[code-003] +0 Nim C FFI: {.importc, header: "<h>".} + --passL:"-lname" in nim.cfg; C malloc'd mem needs c_free not dealloc.
[shr-001] +0 For crashy third-party libs: layer size guard + except Exception + raised nimCallDepthLimit in nim.cfg.
[shr-002] +0 When a Nim lib has unfixable bugs, replace with a minimal C FFI wrapper (~10 lines) to a mature C lib.
[conv-001] +1 Project layout: src/ source, bin/ output (gitignored), nim.cfg compiler config, .nimble package.
[conv-002] +0 Engineering docs go in docs/ with descriptive filenames.