r/devtools

cronstable: highly-available cron with a web UI, durable state, DAGs, clustering, MCP server, and way more
▲ 14 r/devtools+3 crossposts

cronstable: highly-available cron with a web UI, durable state, DAGs, clustering, MCP server, and way more

cronstable is a cron replacement that runs as a single foreground daemon that I've spent an inordinate amount of time on. It will run on basically anything because its been precompiled for basically any compute architecture that people still use. If there's a feature that another cron has that you need, I want to know about it. Beginner friendly, expert friendly. Container friendly, production ready, highly available. You get it.

From orchestrating web-scrapes, data processing, and storage to coordinating Minecraft server snapshots and upgrades. Possibilities are literally endless.

  • Scheduling: modern jobs defined in YAML; classic crontab files run unmodified; per-job timezone; optional second-level granularity
  • Failure handling: define what failed means to you; retries with exponential backoff; reports to Slack-compatible webhooks, email, Sentry, or a shell command.
  • Web dashboard (opt-in): one self-contained page served by the daemon, with live log tailing, run history, DAG graphs, cluster and fleet views, a TV wallboard, and a command palette. A REST API alongside. not sure if I'm competing with other cron solutions or DataDog at this point. But at least you don't need to SSH in to see what's going on.
  • Observability (opt-in): native Prometheus metrics; opt-in per-job CPU and peak-memory monitoring.
  • Durable state (opt-in): run history, retries, and missed-run catch-up survive restarts; job commands get key/value, cursors, fleet-wide locks, idempotency keys, artifacts, and run-scoped secrets through the CLI.
  • DAGs (opt-in): task dependencies, data hand-off between tasks, dynamic fan-out, sensors, human approval gates, backfill, crash-resume.
  • Clustering (opt-in): leader election via gossip over mutual TLS for best effort attempts at gating your jobs. Your self hosted replicas in one network can also bridge to speak to another set of self hosted replicas. Go one step further and harden it via any shared filesystem, a Kubernetes Lease, or etcd, so replicas can share one config without double-running jobs with absolute guarantee. Each job picks its own point on the liveness-vs-duplication trade-off with clusterPolicy: Leader (default) runs on the elected leader and fails closed. No quorum? Nobody runs. For jobs where a duplicate is worse than a skip (like billing, or outbound email); PreferLeader is never-skip and runs anyway when the cluster can't agree. You accept a possible double-run, for idempotent jobs that matter; EveryNode runs everywhere, for genuinely per-node work like local log rotation. No option is true exactly-once. Leader may skip, PreferLeader may double-run. But hey, at least you get to pick which way it breaks. By default the leader runs every job, but distribution: spread assigns each job to an owner by rendezvous hashing so the work fans out and can be more load balanced.
  • MCP server (opt-in): AI agents (Claude, Cursor, Copilot) can inspect jobs, DAGs, the cluster, and metrics; read-only by default, control only if enabled.
  • Packaging: pip/pipx/Homebrew; multi-arch Docker images on GHCR and Docker Hub in eight distro variants; standalone binaries for Linux, macOS, and Windows. Runs non-root with a read-only root filesystem and all capabilities dropped.

Live demo of the control panel UI with a stubbed backend (pretty cool I promise - if anything at least play with the logo cuz I spent a lot of time on it): https://html-preview.github.io/?url=https://github.com/ptweezy/cronstable/blob/develop/docs/demo/index.html ^(you might need to change the theme on your screen because on one of my screens the default theme is just way too dark. Will fix this soon. by play with the logo I mean swipe your mouse across it) 🙂

Feature Comparison chart: https://github.com/ptweezy/cronstable/blob/develop/docs/comparison.md

Source: https://github.com/ptweezy/cronstable

This is under active development, would appreciate any and all feedback. Thanks y'all!

github.com
u/ptweezy — 3 days ago
▲ 1 r/devtools+1 crossposts

I created an open source Git Desktop Client

Heya!

I've been working on a little project called Weaver, a lightweight, native Git desktop client that I built because I wanted something to replace GitHub Desktop.

It's written in Zig using a new, super fast GUI library called KnotsUI, so there's no Electron or webview involved.

It supports all the usual Git operations, but also lets you organise repositories into groups, rename them, set custom icons, customise themes and accent colours, and quite a bit more.

I built most of it using Claude Opus 5.5, and it's been a really interesting project to work on, especially experimenting with Zig and KnotsUI.

It's completely open source, and I'd love to hear what people think! Feedback, suggestions and contributions are all very welcome.

GitHub: https://github.com/KeoneSomers/Weaver
Stars always appreciated!

u/Keo_dev — 4 days ago

Looking for repos that are annoying to get running (I'll write the config)

I've been working on a small tool called QuickRun. You point it at a git repo and it clones it, checks what you need installed, shows you the commands and runs it. It works on most repos without any setup, but it works a lot better when the repo has a small quickrun.yml that says how to start it.

There are about 170 configs in the repo by now, for stuff like Sonarr, Radarr, ComfyUI, FreshRSS, Stirling PDF and so on. Most of them I generated from a container catalog, the rest I wrote by hand. They live in the repo under configs/. Doing that alone doesn't really scale, so I'm asking for help.

If you maintain a project, you could add a quickrun.yml to it. There's a builder in the app that writes and tests it for you. If you want, you can also add the badge to your README so people can start it with one click:

[![QuickRun](https://quickrun.org/badge.svg)](https://quickrun.org/run?repo=owner/repo)

If you don't maintain anything but have a favorite project, a PR with a config for it would be great, either to that project or to configs/ in my repo.

And if that's too much, just drop a repo name in the comments or open an issue. Something you always wanted to try but the setup scared you off. I'll write the config for it.

Repo: https://github.com/fgilde/QuickRun

Docs: https://quickrun.org

reddit.com
u/Nk0BaNaNE — 4 days ago
▲ 1 r/devtools+1 crossposts

I built Ripple — a local change-impact explorer that shows what your code change touches, and why

I built Ripple around a question I kept running into on larger codebases:

You change one piece of code — what else could that change affect?

Ripple takes a Git diff, maps the changed lines back to symbols, and traces the relationships outward so you can see direct impact, transitive impact, tests, type dependencies, and references.

The part I cared about most was keeping the analysis conservative.

A reference is not automatically a call.

“Affected” does not mean “broken.”

And if Ripple can’t prove a relationship, I’d rather it miss an edge than invent one.

The analysis runs locally. No source upload, no telemetry, and no LLM-generated dependency edges.

TypeScript/JavaScript is the stable target right now. There’s also experimental Python support in the current beta.

The thing I’d most like feedback on is false positives. If Ripple tells you something is affected when it clearly isn’t, I want to know about it.

Repo:

https://github.com/Aliferous3/ripple-impact

I also wrote a longer breakdown of why I built it:

https://medium.com/@noamanm19/i-built-ripple-to-answer-one-question-what-else-did-this-code-change-touch-188ab96465e5

It’s Apache-2.0 and open source.

u/Charming_Ad8369 — 4 days ago
▲ 2 r/devtools+1 crossposts

Graybox supports keys

Last month I shared my personal debugging tool: https://github.com/ViniTamanhao/graybox-core

The biggest criticism i received across the board was manual key overriding support, and now I am happy to say this was included in 0.2.1

If you work with API development and want some new tooling, take a look in Graybox. The core idea is to capture and reuse API cycles during the dev process. It's useful both for handmade code and agentic coding.

If you have any inquiries, please let me know.

u/The_Platypus_Master — 9 days ago
▲ 12 r/devtools+4 crossposts

I built this entire portfolio with zero code

Put together my portfolio with zero code and integrated a personal AI assistant that answers questions about my background. It took literally minutes to get it running. Would love to hear what people think of the concept.

u/_Bl9_ — 12 days ago