Notes from the graph & GenAI frontier.
Tutorials, patterns and field notes on building GraphRAG systems, knowledge graphs and LLM agents on Neo4j — written by the people who build them.
Featured
Editor's Picks
Getting started with the GraphAcademy MCP server
Connect Claude Code, Cursor, or VS Code to the GraphAcademy MCP server and take courses, verify challenges, and generate Neo4j code from your editor.
Introducing the New GraphAcademy
Our first full redesign since 2024 — with teams, a revamped Neo4j Fundamentals course, editable data models, and a new onboarding assistant.
Relationship Uniqueness in Cypher, and When You Need WHERE NOT
Where to WHERE NOT and where to not WHERE NOT. Understand how Cypher follows relationships and when you need to exclude nodes from the result.
Browse Posts
Find your next read
Relationship Uniqueness in Cypher, and When You Need WHERE NOT
Where to WHERE NOT and where to not WHERE NOT. Understand how Cypher follows relationships and when you need to exclude nodes from the result.
Write your first Cypher query without installing anything
Write your first Cypher queries in the browser on Relate, from finding an actor to creating a node, with nothing to install.
Give Claude Code a memory with Relate
Save the people, objects, locations and events from a Claude Code conversation to a Relate graph as it happens, with a skill, a hook and the Relate command line.
How to load Parquet files into Relate
Convert Parquet files to CSV with DuckDB, then load them into a Relate graph with LOAD CSV and typed properties from the command line.
How to run a Cypher engine in the browser with WebAssembly
Run Cypher in a browser tab with no database server, by loading Relate on first use, queueing queries, seeding a graph and handling an engine crash.
Three ways to run Relate, the embedded Cypher database
Install Relate and run the same Cypher from the command line, embedded in an application and from an agent.
Why we use Relate to provision databases for our learners
Neo4j Fundamentals learners run a handful of MATCH queries, so a provisioned Aura instance each was more than they needed. We now run Relate, an embedded graph database from relatedb.ai, in the browser instead.
Using UUID properties in a Neo4j graph type
Neo4j 2026.08 added a UUID type. Declare it in a graph type, generate values with uuid(), and let the database reject anything else.
Show the work behind your certificate
Your GraphAcademy certificate can now link to the blog post, repository, or article behind it. Here is how to add proof of work in under a minute.
How to redeem Aura credits from an event
Got an activation code at an event? Redeem it in the Aura console in a few steps and apply the credits to your billing account.
As we slept, so crept an avian invasion
How the parakeets took over London, a story told in graph.
Using the GraphAcademy AI proxy in workshops
An introduction to the GraphAcademy AI proxy, how to get a key, the budget and time limits, and what each error message means when a request fails.