frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: We built a type-safe Python ORM for RedisGraph/FalkorDB

5•hello-tmst•2h ago
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 work

Target 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 curve

Data insertion: the real game-changer

Raw Cypher nightmare: queries = [ """CREATE (:User {email: "alice@example.com", name: "Alice O\\'Connor"})""", """CREATE (:User {email: "bob@example.com", name: "Bob \\"The Builder\\""})""" ] for q in queries: graph.query(q) # No transaction safety!

GraphORM bliss: alice = User(email="alice@example.com", name="Alice O'Connor") bob = User(email="bob@example.com", name='Bob "The Builder"') graph.add_node(alice) graph.add_edge(Follows(alice, bob, since=1704067200)) graph.flush() # One network call, atomic transaction

Try 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="alice@example.com", name="Alice")
    bob = User(email="bob@example.com", name="Bob")
    graph.add_node(alice)
    graph.add_edge(Follows(alice, bob, since=1704067200))
    graph.flush()
GitHub: https://github.com/hello-tmst/graphorm

We'd love honest feedback: • Does this solve a real pain point for you? • What's missing for production use? • Any API design suggestions?

Comments

justinlords•1h ago
This looks solid, the type safety and automatic escaping alone would've saved me hours debugging Cypher strings. The batching is smart too. Curious how it handles variable-length paths though, since that's where most ORMs get messy. The AI agent memory use case makes a lot of sense.

Show HN: I Built a Sandbox for Agents

https://github.com/vrn21/bouvet.com
16•vrn21•1h ago•9 comments

Show HN: The HN Arcade

https://andrewgy8.github.io/hnarcade/
222•yuppiepuppie•7h ago•61 comments

Show HN: I built a small browser engine from scratch in C++

https://github.com/beginner-jhj/mini_browser
38•crediblejhj•3h ago•4 comments

Show HN: Dwm.tmux – a dwm-inspired window manager for tmux

https://github.com/saysjonathan/dwm.tmux
62•saysjonathan•4d ago•10 comments

Show HN: Cua-Bench – a benchmark for AI agents in GUI environments

https://github.com/trycua/cua
22•someguy101010•2d ago•2 comments

Show HN: Extracting React apps from Figma Make's undocumented binary format

https://albertsikkema.com/ai/development/tools/reverse-engineering/2026/01/23/reverse-engineering...
37•albertsikkema•5d ago•9 comments

Show HN: Build Web Automations via Demonstration

https://www.notte.cc/launch-week-i/demonstrate-mode
19•ogandreakiro•1d ago•9 comments

Show HN: One Human + One Agent = One Browser From Scratch in 20K LOC

https://emsh.cat/one-human-one-agent-one-browser/
302•embedding-shape•1d ago•139 comments

Show HN: A header-only C++20 compile-time assembler for x86/x64 instructions

https://github.com/mahmoudimus/static_asm
2•mahmoudimus•1h ago•0 comments

Show HN: We built a type-safe Python ORM for RedisGraph/FalkorDB

5•hello-tmst•2h ago•1 comments

Show HN: LemonSlice – Upgrade your voice agents to real-time video

108•lcolucci•1d ago•115 comments

Show HN: Multi-Agent Framework for Ruby

https://github.com/chatwoot/ai-agents
2•shivam-dev•2h ago•0 comments

Show HN: Cloakly – Hide sensitive windows from screen shares in real-time

3•jaygood•3h ago•0 comments

Show HN: PNANA - A TUI Text Editor

https://github.com/Cyxuan0311/PNANA
4•Frameser•5h ago•3 comments

Show HN: Fuzzy Studio – Apply live effects to videos/camera

https://fuzzy.ulyssepence.com/
48•ulyssepence•1d ago•12 comments

Show HN: I wrapped the Zorks with an LLM

https://infocom.tambo.co/
101•alecf•20h ago•56 comments

Show HN: We Built the 1. EU-Sovereignty Audit for Websites

https://lightwaves.io/en/eu-audit/
98•cmkr•1d ago•78 comments

Show HN: AI PDF to ePub Converter

https://pdftoepubai.com
2•svx_hn•4h ago•0 comments

Show HN: Marches & Gnats – Coding puzzle game where you program Turing machine

https://mng.quest/
2•maltsev•1h ago•1 comments

Show HN: mute your macOS mic to ZERO. But Siri keeps listening

https://github.com/BrowserBox/NoSpy
3•keepamovin•4h ago•1 comments

Show HN: Only 1 LLM can fly a drone

https://github.com/kxzk/snapbench
177•beigebrucewayne•2d ago•92 comments

Show HN: TetrisBench – Gemini Flash reaches 66% win rate on Tetris against Opus

https://tetrisbench.com/tetrisbench/
108•ykhli•1d ago•40 comments

Show HN: A blog that deletes itself if you stop writing

https://lapse.blog
3•reassess_blind•10h ago•1 comments

Show HN: An interactive map of US lighthouses and navigational aids

https://www.lighthouses.app/
100•idd2•2d ago•22 comments

Show HN: A 4.8MB native iOS voice notes app built with SwiftUI

https://apps.apple.com/us/app/convoxa-ai-meeting-minutes/id6755150446
4•karamalaskar•21h ago•0 comments

Show HN: TUI for managing XDG default applications

https://github.com/mitjafelicijan/xdgctl
135•mitjafelicijan•3d ago•45 comments

Show HN: SF Microclimates

https://github.com/solo-founders/sf-microclimates
35•weisser•2d ago•31 comments

Show HN: Nyxi – Execution-time governance for irreversible

https://github.com/indyh91/Nyxi-Showcase
3•Shaehenderson•14h ago•0 comments

Show HN: My AI tracks Polymarket whales with guardrails so it won't bankrupt me

https://predictor-dashboard.vercel.app
2•JackDavis720•14h ago•0 comments

Show HN: Netfence – Like Envoy for eBPF Filters

https://github.com/danthegoodman1/netfence
58•dangoodmanUT•3d ago•7 comments