Repository: github.com/rikhza/setrimtam
Browser-based utilities for host-style development workflows. Parse COBOL copybooks, build and inspect fixed-width message streams, and work with Julian ordinal dates. Everything runs in your browser; copybooks and payloads stay on your machine (with optional persistence in localStorage for convenience).
- Stream builder — Parse a COBOL copybook, fill fields, and generate stream output (including hex) from the PIC layout.
- FMV (field map view) — Paste raw stream data alongside a copybook to slice it into a field-by-field breakdown, with warnings when layout and data disagree.
- Julian date — Convert between calendar dates and ordinal Julian forms (
YYDDD/YYYYDDD). - Operator-console aesthetic — Retro terminal UI for a focused working environment.
- React 18 + TypeScript
- Vite 5 for dev server and production builds
- React Router for client-side routing
- Node.js 20 or newer (see
enginesinpackage.json)
Clone the repository, install dependencies, and start the dev server:
git clone https://github.com/rikhza/setrimtam.git
cd setrimtam
npm install
npm run devThen open the URL Vite prints (typically http://localhost:5173).
| Command | Description |
|---|---|
npm run dev |
Start Vite in development mode |
npm run build |
Typecheck and produce a production build in dist/ |
npm run preview |
Serve the production build locally |
npm run typecheck |
Run the TypeScript compiler without emitting files |
npm run check |
Run typecheck then build (useful before opening a PR) |
npm run pages:deploy |
Deploy dist/ to Cloudflare Pages via Wrangler (requires Cloudflare login and project setup) |
src/pages/— Top-level routes (home, stream builder, FMV, Julian date).src/components/— Shared UI (layout, panels, mainframe chrome).src/lib/— Parsing, stream logic, date math, and browser persistence helpers.
Contributions are welcome. A smooth review usually looks like this:
-
Open an issue first for larger changes (new tools, parser behavior, or UX overhauls) so we can agree on direction.
-
Fork the repository and create a branch from the default branch.
-
Keep changes focused — one logical concern per pull request makes review and rollback easier.
-
Run checks locally before you push:
npm run check
-
Describe your PR clearly — what problem it solves, how you tested it, and any trade-offs you considered.
- Match existing TypeScript strictness, formatting, and component patterns.
- Prefer client-side only solutions unless there is an explicit project decision to add a backend.
- Do not commit secrets, API keys, or production copybooks with sensitive data.
- If you add user-visible strings, keep them clear; the app UI may mix English and other languages—follow the tone of surrounding copy.
Be respectful and constructive in issues and pull requests. Assume good intent, stay on topic, and help keep the project welcoming for newcomers.
Setrimtam does not send your copybooks or stream data to a server as part of the core app flow. Named saves and draft state for some tools may be stored in your browser’s localStorage under keys prefixed with setrimtam: (see src/lib/toolLocalStorage.ts). Clear site data in your browser if you want to remove that.
This repository does not yet include a LICENSE file. If you intend to redistribute or package the project, confirm licensing with the maintainers or add an explicit license as part of your contribution.
Questions, ideas, and pull requests are welcome on the repository where this project is hosted.