Hello community, it’s my first time here and I’m learning the ropes.
I’m developing Queryfy, a library for validating and querying map[string]interface{}
data with compile-time safety.
The problem: Working with dynamic JSON in Go often means choosing between multiple tools (validator for validation, gjson for queries, mapstructure for conversion) or writing endless type assertions.
My solution: A unified API with type-safe builders that gives you IDE autocomplete and compile-time checking:
schema := builders.Object().
Field("email", builders.String().Email().Required()).
Field("items", builders.Array().Of(itemSchema))
// Validate, query, and transform with one coherent API
err := qf.Validate(data, schema)
value, _ := qf.Query(data, "items[0].price")
Zero dependencies, clear error messages with paths, supports both strict and loose validation modes.
My question: This is my first significant OSS project. v0.1.0 is ready and tested, but I’m unsure about:
- How to handle contributions without getting overwhelmed
- Setting up governance/decision making
- Balancing feature requests with maintaining simplicity
Would love advice from maintainers who’ve successfully grown projects. How do you manage the human side of open source?
GitHub:
Work is ongoing in the /docs subdirectory
Code examples: