A JSONPath engine that follows the spec and can't run code
padvinder is a 2.75KB, zero-dependency JSONPath engine: full RFC 9535 including filters, no eval, no new Function, and safe under a strict CSP.
Writing by Robin van der Vleuten — an indie developer of all things internet.
padvinder is a 2.75KB, zero-dependency JSONPath engine: full RFC 9535 including filters, no eval, no new Function, and safe under a strict CSP.
Evaluate user-defined expressions like pricing and filter rules at runtime, with no eval, no new Function, and a strict CSP left intact.
I taught my DSMR library to run in reverse, then wrapped it in a skeuomorphic Phoenix LiveView meter and put it online at p1meter.dev.
A Dutch postcode regex catches the shape of a postcode, but Addressing gives your Ruby app the country-aware rules around it.
Addressing keeps JSON for review, then builds a Marshal dump so Ruby can load static address formats without parsing the source file every boot.
How leex and yecc helped me replace regex-heavy DSMR telegram parsing with a maintainable parser.
A Ruby gem for international address formats, country-specific fields, postal labels, and Active Record validation.
Pass server data to React without CSP violations by using safe JSON script tags instead of risky inline JavaScript.
Build a small carousel with scroll snap, anchor links, and no JavaScript state machine.
A plain Markdown note setup that keeps work, writing, and loose thoughts findable without turning note-taking into its own project.
Use the native loading attribute for offscreen images, and save the JavaScript for the cases where you really need control.
Ecto changesets do not need a private form framework to be useful. Casting, validating, and naming errors clearly gets you a long way.
Decoding JSON into atoms feels nice until untrusted keys start filling the VM atom table. Keep external data as strings until you own the shape.
React effects that fetch data can outlive the component that started them. AbortController gives us a small hook-friendly way to cancel that work.
A small usePrevious hook can store the previous render's value by combining React's useRef and useEffect hooks.
Rails credentials are great for secrets, but terrible as a junk drawer. Keep secrets encrypted, and keep ordinary configuration visible.
Filters, tabs, and pagination often belong in the URL, not hidden inside React state where reloads and shared links lose them.
One Tailwind configuration option can make gradual adoption calmer when old CSS is still part of the project.
A tiny Vim survival guide for opening a file, making a change, saving it, and getting back out again.
Capitalizing a string does not need another npm dependency. Plain JavaScript is enough, and CSS may be better when it is only presentation.
React Context lets components share values without passing every prop through every layer. Here is the small counter example version.
Accessible dialogs need to keep keyboard focus inside the active element. The focus-trap package handles that part for plain JavaScript and React.
Search boxes, filters, and autosave fields all need the same tiny delay. A small hook is enough to keep components calm without pulling in a utility library.
React refs let you reach DOM APIs when you need them. Here is how to use a ref to scroll an element or component into view.
When an application needs to show a person's name in several formats, php-person-name keeps that formatting in one small object.
Git has a global ignore file for editor, operating system, and local tooling clutter. Use it, and keep project .gitignore files focused.
Test Redux Observable epics by injecting a fake client, passing an action stream into the epic, and asserting the emitted actions.
A reflection on moving from carefully named CSS components toward small, explicit helper classes when the project calls for them.
Render React from a PHP application by invoking AWS Lambda through the PHP SDK and reusing the same payload on the client.
Skip repeated login steps in Behat scenarios by creating an authenticated Symfony session through Mink's BrowserKit driver.
Configure Passenger to run a Hapi.js application locally and on Heroku with the right startup file, socket binding, and buildpacks.
Use direnv and a local .envrc file to keep project-specific Node.js environment variables near the code without committing secrets.
Let a Symfony Twig extension render a separate template by asking Twig to inject the current environment into your function.
Gingerbread wraps Ginger's spelling and grammar correction API for Node scripts and command line usage.
Deploy a Symfony standard edition app to Heroku with a PHP buildpack, environment variables, and the right web document root.
Build ICU, install PHP's intl extension with PECL, and enable it for Symfony applications running through MAMP.
Add Guzzle's MockPlugin to a Symfony service client so functional tests can replay raw HTTP responses instead of calling external APIs.
Content Mask adds shortcode-style visibility rules to Drupal content so specific users, roles, or groups can see protected sections.
Point your shell at MAMP's PHP binary, clean up PEAR configuration, and install Drush inside a local MAMP setup.
Install the legacy Mongo PHP extension in MAMP by matching the PHP source, fixing PEAR configuration, and enabling mongo.so.
PHP's range function can generate the alphabet with one small call, which is easy to miss when you need letter arrays.
Replace MAMP's bundled phpMyAdmin with a newer version by backing up the old files and extracting the download into the right folder.
Make CKEditor inside Drupal's WYSIWYG module load your theme styles by enabling the stylesheetparser plugin.
Use Drupal's hook_css_alter in template.php to remove core or module stylesheets before the page renders.
Load a different WordPress configuration file per environment so local, staging, and production can keep separate database settings.