A collection of example tasks for Open SWE
Clone the TypeScript template
Use this template
to create a new repository based on this template.Give Open SWE access to your repository
Current User
section, click the +
button. This will redirect you to GitHub where you can authorize Open SWE to access your repositories.Submit one of the example tasks
RESTful “Books” micro-service
txt Create an Express-based API exposing CRUD endpoints for `/books`. Include request validation with `zod`, proper HTTP status codes, and an in-memory repository layer that can later be swapped for a database. Add Jest tests covering happy-path and a “missing ISBN” error case.
WebSocket live counter
txt Add a small WebSocket server (using `ws`) that tracks how many clients are currently connected and broadcasts the updated count every 5 seconds. Expose a health-check HTTP route returning the same value for monitoring tools. Provide a minimal HTML demo page that shows the live number.
GitHub issue sync CLI
txt Implement a CLI (`src/sync-issues.ts`) that reads a `config.json` with one or more GitHub repos, fetches their open issues via the GitHub REST API, and writes a local `issues.{owner}.{repo}.csv`. Use `yargs` for parsing and include a `--since YYYY-MM-DD` flag to filter by creation date.
JWT + refresh-token auth layer
Pluggable caching service
txt Design a generic cache interface with `get`, `set`, and `invalidate` methods, then provide two adapters: an in-memory `Map` implementation and a Redis adapter (mock Redis with `ioredis-mock` for tests). Demonstrate hot-swapping the adapter via an environment variable without code changes.
GraphQL wrapper over REST API
Image upload to S3 with signed URLs
Locale-aware date utility library
txt Publish an internal `/src/date` module that formats, parses, and time-zone-converts dates using `luxon`. Support at least “en-US”, “de-DE”, and “ja-JP”. Provide type-safe wrappers, exhaustive unit tests, and a benchmark script comparing it to native `Intl.DateTimeFormat`.