We built a type-safe Python ORM for RedisGraph/FalkorDB
Details
- External ID
- 46796602
- Source
- HN
- Company
- —
- Product
- —
- Website domain
- —
- Launched
- Jan. 28, 2026
- Cohort
- —
- Upvotes
- 5
- Upvotes percentile
- 0.09617918313570488
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:25 p.m.
- Updated at
- Sept. 7, 2026, 9:25 p.m.
Description
We were tired of writing raw Cypher — escaping quotes, zero autocomplete, refactoring nightmares — so we built GraphORM: a type-safe Python ORM for RedisGraph/FalkorDB using pure Python objects.What it does Instead of fragile Cypher: query = """ MATCH (a:User {user_id: 1})-[r1:FRIEND]->(b:User)-[r2:FRIEND]->(c:User) WHERE c.user_id <> 1 AND b.active = true WITH b, count(r2) as friend_count WHERE friend_count > 5 RETURN c, friend_count ORDER BY friend_count DESC LIMIT 10 """ You write type-safe Python: stmt = select().match( (UserA, FRIEND.alias("r1"), UserB), (UserB, FRIEND.alias("r2"), UserC) ).where( (UserA.user_id == 1) & (UserC.user_id != 1) & (UserB.active == True) ).with_( UserB, count(FRIEND.alias("r2")).label("friend_count") ).where( count(FRIEND.alias("r2")) > 5 ).returns( UserC, count(FRIEND.alias("r2")).label("friend_count") ).orderby( count(FRIEND.alias("r2")).desc() ).limit(10) Key features: • Type-safe schema with Python type hints • Fluent query builder (select().match().where().returns()) • Automatic batching (flush(batch_size=1000)) • Atomic transactions (with graph.transaction(): ...) • Zero string escaping — O'Connor and "The Builder" just workTarget audience • AI/LLM agent devs: store long-term memory as graphs (User → Message → ToolCall) • Web crawler engineers: insert 10k pages + links in 12 lines vs 80 lines of Cypher • Social network builders: query "friends of friends" with indegree()/outdegree() • Data engineers: track lineage (Dataset → Transform → Output) • Python devs new to graphs: avoid Cypher learning curveData insertion: the real game-changerRaw Cypher nightmare: queries = [ """CREATE (:User {email: "[email protected]", name: "Alice O\\'Connor"})""", """CREATE (:User {email: "[email protected]", name: "Bob \\"The Builder\\""})""" ] for q in queries: graph.query(q) # No transaction safety!GraphORM bliss: alice = User(email="[email protected]", name="Alice O'Connor") bob = User(email="[email protected]", name='Bob "The Builder"') graph.add_node(alice) graph.add_edge(Follows(alice, bob, since=1704067200)) graph.flush() # One network call, atomic transactionTry it in 30 seconds pip install graphorm from graphorm import Node, Edge, Graph class User(Node): __primary_key__ = ["email"] email: str name: str class Follows(Edge): since: int graph = Graph("social", host="localhost", port=6379) graph.create() alice = User(email="[email protected]", name="Alice") bob = User(email="[email protected]", name="Bob") graph.add_node(alice) graph.add_edge(Follows(alice, bob, since=1704067200)) graph.flush() GitHub: https://github.com/hello-tmst/graphormWe'd love honest feedback: • Does this solve a real pain point for you? • What's missing for production use? • Any API design suggestions?
Enrichment
- Theme
- AI API proxies and developer tools
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Commercial product
- Normalized one-liner
- python orm for redisgraph
- Manually corrected
- False
Could you build this?
Yes This is a lightweight Python mapping library translating Python object schemas and method calls into Cypher query strings for RedisGraph/FalkorDB.
Discussion
6 comments analyzed.
Competitors mentioned: FalkorDB (maintained RedisGraph successor), RedisGraph (discontinued), falkordb-py-orm (FalkorDB's official Python ORM), spring-data-falkordb (Java ORM), falkordb-go-orm (Go ORM)
Concerns raised: Variable-length paths complexity in ORMs, Cypher string debugging difficulty
Feature requests: Expand support to other Cypher-compatible databases, RBAC-based security features
Competitors
Other products that read as similar to this one — 10 launches clear the similarity bar, closest 8 shown.
Attention rank: #11 of 11 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 91 days after the earliest competitor.
- TypeGraph · hn · 2026-02-24 · 5 upvotes · similarity 0.47
- SQLite Graph Ext · hn · 2025-10-29 · 35 upvotes · similarity 0.43
- BlitzGraph · hn · 2026-06-16 · 15 upvotes · similarity 0.42
- TuringDB · hn · 2026-01-28 · 7 upvotes · similarity 0.35
- Oxyde · hn · 2026-03-13 · 155 upvotes · similarity 0.33
- What 180k words look like as a temporal knowledge graph (Oz series) · hn · 2026-07-26 · 22 upvotes · similarity 0.33
- opsis · github · 2026-09-24 · 10 upvotes · similarity 0.33
- ShapedQL · hn · 2026-01-27 · 80 upvotes · similarity 0.32
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.