Samuel Hulla / Software engineer
Good software.
From the
inside out.
I build products, lead engineering teams, and turn the useful parts into open source. Based in Prague. Working everywhere.
While the dust settles
Let's stay in touch.
View my CVExperience, projects & what I do.Open-source TypeScript / @hulla
HTTP contracts, live PostgreSQL views, and UI source you can edit.
Change a shared contract and see what breaks. Edit inventory and watch two views react. These are the packages I maintain, with working examples you can try before opening the docs.
@hulla/api
Rename a field. Find every broken consumer.
Your handler and your UI should agree on what comes back from an API. Change the shared contract below: TypeScript points to both places that need updating, before you send a request.
@hulla/db
Buy in the app. Watch the database change.
Your app writes through the server; subscribed queries publish the committed result. Keep your own PostgreSQL database and let the client follow changes from either side.
@hulla/style
An override should mean the same thing everywhere.
A variant builder and a class helper can quietly apply different merging rules. Give cn() and vn() the same processor, compose independent style maps, and carry one policy through every component.
@hulla/ui
Change frameworks. Keep your component API.
A React app, a Solid app, and an Astro site can share the same tokens, variants, and interaction rules. Install the source into each project and make the implementation your own.
Parsing, failures, templates & source
The work around your application deserves better tools, too.
@hulla/control
Catch a bad deployment config before the next step runs.
Return typed success or failure values so callers can handle expected errors before transforming the result.
Read @hulla/control docs@hulla/args
Reject --port nope before starting your preview server.
Parse flags, positionals, and nested commands into typed values, with Zod validation and access to the raw input.
Read @hulla/args docs@hulla/gittar
One template repository. As many editable starters as you need.
Copy a repository folder into a starter project, with a separate cache and an explicit refresh policy.
Read @hulla/gittar docshulla CLI
Need to change the component? Open the source in your app.
Copy UI components into your project as editable source, then review updates through the same CLI.
Read hulla CLI docs