CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/configuration-management

Production config management for any backend — centralized config module, env vars, no hardcoded secrets, fail-fast validation

86

1.88x
Quality

77%

Does it follow best practices?

Impact

100%

1.88x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

task.mdevals/scenario-1/

Build a Blog CMS API

Problem/Feature Description

A content team needs a headless CMS API to manage blog posts. Build it using Express and TypeScript with PostgreSQL for storage and AWS S3 for image uploads.

Endpoints:

  • GET /api/posts -- list posts with pagination and optional ?status=draft|published filter
  • GET /api/posts/:slug -- get a single post by URL slug
  • POST /api/posts -- create a new post (title, body, author, tags, status)
  • PUT /api/posts/:id -- update a post
  • DELETE /api/posts/:id -- soft-delete a post (set deleted_at timestamp)
  • POST /api/posts/:id/images -- upload an image to S3, return the URL

Business rules:

  • Slug is auto-generated from the title and must be unique
  • Published posts require a non-empty body (drafts do not)
  • Tags is an array of strings, max 10 tags per post
  • Images must be JPEG or PNG, max 5MB
  • Only draft posts can be hard-deleted; published posts are soft-deleted

Use pg for PostgreSQL and @aws-sdk/client-s3 for S3 uploads.

Output Specification

Produce:

  • src/server.ts -- server entry point
  • src/app.ts -- Express application setup
  • src/routes/posts.ts -- post CRUD route handlers
  • src/routes/images.ts -- image upload handler
  • src/db.ts -- database connection and queries
  • package.json -- with dependencies listed (no need to run npm install)
  • .gitignore -- standard Node.js gitignore

You may create additional files as needed for a well-structured codebase.

evals

scenario-1

criteria.json

task.md

tile.json