A command-line tool that checks translation files against i18n conventions, published for JavaScript, Dart and Python. It reports missing keys, duplicated values and other common mistakes, and runs in CI as readily as on a laptop.
Projects
Everything CDGet maintains in public. Filter by category, sort the list, and open a project to read what it does and where to find it.
An embedded database that keeps an application's data in one local file, with one engine written in Rust and a Node.js binding over it. It is in early development and nothing is published yet, so for now it is built from source.
A diff engine and a side-by-side viewer for text and for pictures, shipped as a React library and a Flutter package. It matches two versions line by line and then word by word inside the lines that changed, compares two images pixel by pixel, and draws the result with the two sides held level, so an application does not have to build the comparison or the alignment itself.
A small ES module that loads Google Analytics 4 into a web page and sends page views and events through it. One import, one configuration call, and no dependencies.
A log viewer that looks and behaves like a terminal, for the web and for Flutter. It draws log output on a canvas instead of an element per line, so a fast stream of messages and a history of tens of thousands of entries cost the same frame, and an application does not have to build its own console panel.
A React library that follows the Material Design 3 specification directly and adds the components other Material libraries leave out. It reads the tokens a page already has, so it can sit beside an existing Material setup.
A Markdown editor that also does the reading, shipped as a React library and a Flutter package. Write on the document as it will look or on the source, switch between the two at a click, and hand the finished text to a read-only viewer that renders it exactly the same way.
A React component library for building application interfaces. Buttons, fields, menus, dialogs, tables and charts share one set of props, arrive accessible, and follow dark mode without a theme file.
A Next.js App Router template with translation, styling, SEO metadata and linting already in place, so a new site does not begin by assembling the same setup again.
A sandbox for a quick Node.js script. TypeScript, watch mode, execution timing, benchmarks and a static file server are ready without creating a project around them.
One design language of glass and gradient, shipped as a React library and a Flutter package under the same component names. What you press is tinted, what holds content is clear.
The small helpers you would otherwise write again: slugs, text case, date handling, formatting, deep clone, validation and hashing. The same function names behave the same way in JavaScript, Dart and Python.
Generates random text in the language you ask for: person names, nicknames, single words and whole sentences, in any of nine languages and with no runtime dependencies. The same generators are published for JavaScript, Dart and Python.
The same starting point as Vutron, for React. Vite, Electron and a Material Plus interface are wired together, so a desktop application can be built and packaged the day it is created.
A collection of sample material for demos, tests and tutorials: datasets, code, images, documents and prose, named consistently and free to redistribute. Almost every folder is filled, and audio and video are the two still waiting for their files.
A small command-line wrapper around Terser that accepts glob patterns, so a whole directory is minified in one command instead of one file at a time.
A VitePress plugin that translates the default theme and its search box. One short configuration covers every language a documentation site serves.
A VitePress plugin that builds the sidebar from the files on disk. Sorting, titles, filters and per-folder settings replace a menu kept up to date by hand.
A starting point for desktop applications built with Vite, Vue 3 and Electron. Building, packaging, testing and translation are configured before you write a line of your own.


















