MoreRSS

site iconHackerNoonModify

We are an open and international community of 45,000+ contributing writers publishing stories and expertise for 4+ million curious and insightful monthly readers.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of HackerNoon

Ocean Network Launches Beta For Affordable P2P GPU Orchestration

2026-03-18 23:35:23

Singapore, March 17, 2026 – Ocean Network today announced the official Beta launch of its decentralized peer-to-peer (P2P) compute orchestration layer. This marks a shift from fragmented hardware to a highly liquid market where compute is available on-demand, without the overhead of centralized gatekeepers.

Powered by this architecture, Ocean Network allows modern data scientists and developers to bypass traditional cloud bottlenecks and move directly from code to execution.

Solving the "coordination problem" of decentralized compute

While the demand for high-performance GPUs has reached a fever pitch, decentralized compute has historically struggled with a usability gap. Most developers do not want to manage remote nodes, configure complex SSH keys, or gamble on unreliable uptime; they want to run code.

Ocean Network bridges this gap by focusing on the Orchestration Layer. To ensure top-tier reliability and performance from day one of Beta, Ocean Network is renting high-performance GPUs from Aethir, based on the partnership the two entered in 2025. This gives users immediate access to a massive fleet of industry-leading hardware, ranging from powerhouse NVIDIA H200s, H100s, and A100s to highly accessible 1060s and more.

"We aren't just giving data scientists and developers access to GPUs; we are giving them an orchestration layer that makes decentralized compute feel like a local execution," says the Ocean Network team. "This is the transition from manual infrastructure management to pure automatiON."

Moving forward, Ocean Network will start aggregating global, idle GPUs into a unified P2P network, allowing anyone to set up an Ocean Node and monetize their high-performing underutilized compute resources.

The Ocean Orchestrator: A resident of popular IDEs

Central to the Beta launch is the Ocean Orchestrator (formerly the Ocean VS Code Extension). Recognizing that the modern user’s workflow lives within their editor, the Orchestrator integrates natively with VS Code, Cursor, Windsurf, and Antigravity.

Unlike traditional cloud monopolies that force developers into expensive, rigid hardware tiers, Ocean Network offers total flexibility in resource allocation with no preset bundles. The UX is designed for granular control and speed:

Custom Selection: Filter and select specific hardware models (e.g., Nvidia H200, A100, Tesla 4) and set the exact minimum requirements for CPU and RAM;

ONe-Click Submission: Deploy containerized jobs (Python or JavaScript) with a single click once the precise environment is mapped;

Real-Time Retrieval: Monitor the job live and automatically pull results back to the user’s local environment.

Pure AutomatiON: The Pay-Per-Use economics

Ocean Network challenges the "Reserved Instance" models of AWS and GCP. In traditional cloud environments, users pay for the time a machine is "ON," regardless of whether it is actively computing or sitting idle.

Ocean Network introduces a Pay-Per-Use Escrow Mechanism deployed on Base (Ethereum L2) for low-fee, high-speed settlements. Funds are held in escrow and only released once the node successfully completes the job and returns the output. Users are charged strictly for the resources consumed by the specific job (time, hardware, and environment), effectively eliminating the cost of idle compute. All access and rewards are secured via wallet-based identity provided by Alchemy.

Security through Compute-to-Data (C2D)

For Web2 data scientists and AI agent aficionados handling sensitive data, Ocean utilizes Compute-to-Data (C2D). This architecture runs algorithms in isolated containers where the data resides. The raw data never leaves its perimeter; only the secure compute outputs are returned to the user.

Building The Future of Liquid Compute

The Beta launch invites Web2 Data Scientists, Data Analysts, and Web3 Builders to experience a world where compute is a utility, not a bottleneck. While the initial Beta focus is on the demand side, that is empowering users to run jobs, the network will soon after expand to allow Node runners to monetize their idle high-power GPU and CPU capacity by joining the worker layer.

About Ocean Network

Ocean Network is a decentralized, peer-to-peer (P2P) compute network for pay-per-use compute jobs that turns idle or underutilized GPUs into usable distributed compute resources. It lets users choose a preferred Ocean Node with the resources the users need, submit a containerized job, and get results back without managing servers or infrastructure

CONTACT:

Name: Andreea Neagu

Job title: Marketing lead

Company: Ocean Network

Website: https://www.oncompute.ai/

Country: Singapore

Email: [email protected]

:::tip This story was published as a press release by Blockmanwire under HackerNoon’s Business Blogging Program

:::

Disclaimer:

This article is for informational purposes only and does not constitute investment advice. Cryptocurrencies are speculative, complex, and involve high risks. This can mean high prices volatility and potential loss of your initial investment. You should consider your financial situation, investment purposes, and consult with a financial advisor before making any investment decisions. The HackerNoon editorial team has only verified the story for grammatical accuracy and does not endorse or guarantee the accuracy, reliability, or completeness of the information stated in this article. #DYOR

\ \

The Courtroom is a State Machine: Architecting Agentic Memory for Litigators

2026-03-18 23:06:26

A complex criminal trial can span months. It generates terabytes of transcripts alongside contradictory testimonies and evidentiary motions. Currently, defense attorneys and judicial clerks spend hundreds of hours manually cross-referencing these files just to build a reliable case chronology. Throwing raw compute at the problem is a tempting fix. Modern models possess large context windows capable of swallowing this entire legal corpus. Yet, this approach fundamentally fails. Simply dumping text into a stateless prompt cannot capture the chronological mutation of facts. When a witness recants or a presiding judge suppresses a document, standard models lose the thread. They read. They do not reason over time.

This failure creates an immense opportunity. I am not proposing a digital judge. I am conceptualizing a stateful agentic research engine designed specifically for litigators. A system like this would allow legal professionals to query a living database. They could ask the proposed agent to instantly generate a factual brief tracing a specific alibi. The architecture would output a timeline guaranteed to reflect the most up-to-date rulings. I am going to outline exactly how to construct the persistent memory graph required for this tool. I want to turn raw text into a trackable state machine.

Beyond the Haystack

Frontier models boast incredible retrieval capabilities. If you ask a high-parameter model to find a specific utterance from page 4,000 of a court transcript, it will find it. Researchers routinely test this using "Needle In A Haystack" (NIAH) evaluations to confirm the model can retrieve isolated facts from massive inputs. The system excels at pinpointing these data nodes.

I spent considerable time engineering persistent memory systems for voice interfaces. My focus was on building stateful agentic capabilities to help people with cooking recipes which require long running context. Transitioning to the judicial domain amplifies this state-management requirement exponentially. A trial operates as a living state machine. A fact introduced on Monday might be invalidated by a presiding judge on Thursday. To capitalize on large context windows, we must pair them with structural hierarchy. We want the model to understand chronological precedence. Finding the needle is impressive. Tracking whether that needle remains legally admissible three weeks later is the actual engineering challenge. We have the tools to solve this.

Building the Persistent State Graph

We solve this by decoupling the text processing from the factual tracking. I propose an architecture where the language model acts as a reasoning engine rather than a mere storage facility.

Instead of processing the entire transcript at once to generate a brief, the agent processes the text sequentially to build a persistent knowledge graph. Frameworks like LangGraph use stateful, graph-based architectures to manage complex AI workflows where nodes communicate by reading and writing to a shared state. When the agent reads witness testimony, it extracts discrete factual nodes and commits them to a property graph.

Think of this graph like a detective's physical corkboard.

Overall Architecture for the proposed agentic system

When the agent reads a deposition, it pins a new fact to the board. This node represents a date or a specific event. It then draws connecting strings. We use explicit schema definitions to enforce relationship mapping. "Witness A" contradicts "Witness B". "Document C" corroborates "Alibi D". When a later ruling suppresses that testimony, the agent executes a state update. It does not erase the node. It changes the status property to "invalidated."

The agent maintains a ground-truth map of the trial. When tasked with writing a legal summary for the litigator, the agent queries this graph instead of reading the raw transcript again. It retrieves only the valid, active nodes required to answer the prompt. This forces the model to synthesize structurally verified facts.

To do this, we execute a Cypher query. Cypher is Neo4j's declarative query language, which is optimized for graphs and uses an intuitive ASCII-art style syntax to visually match data patterns and relationships. By running a Cypher query, we traverse the graph to identify nodes with conflicting timestamp properties. The computational load shifts from probabilistic text generation to deterministic graph traversal. The language model simply translates these hard mathematical relationships into natural language. This approach is highly effective. It grounds the clerk's output in verified chronology.

The Automated Evaluator Paradigm

Designing this architecture is only half the equation. Proving the agent actually tracks the chronological state of the trial requires rigorous testing. In software engineering, automated evaluation pipelines are often called "LLM-as-a-judge" frameworks. In the legal domain, that terminology implies an AI issuing verdicts. We must avoid that conceptual trap. We are building an Automated Evaluator which will strictly be an internal testing pipeline.

Traditional automated testing relies on exact string matches. Did the software output the exact word "True"? Language generation is too fluid for that methodology. Instead, engineers use a frontier language model to grade the output of the system under test. We provide the Evaluator model with a strict, deterministic rubric.

A widely used example is evaluating text summarization. You feed the Evaluator an original news article and an AI-generated summary of that article. You prompt the Evaluator to score the summary from 1 to 5 based on factual consistency. It checks if the summary invented any numbers or names not present in the source text. Studies confirm that strong LLM evaluators match human grading with an agreement rate exceeding 80%. It works beautifully for static tasks. It allows teams to automatically verify thousands of responses without manual oversight.

A Judicial Evaluation Pipeline

In my work building auto-evaluations for rigorous algorithmic research, I rely heavily on these methodologies. A judicial agent requires a highly complex rubric. I propose a tripartite LLM-as-a-judge pipeline for legal AI.

The Judging Rubric for evaluating the agent's performance

First, Chronological Consistency Scoring. We feed the Evaluator a synthetic, complex trial timeline alongside the Agent's generated legal brief. The Evaluator specifically checks whether the Agent respected the temporal flow of facts. If the Agent cites a piece of evidence that was formally suppressed in a later hearing, the Evaluator issues a hard failure.

Second, Attribution Tracing. The Agent must map every claim back to a specific node in the state graph. This node must point to an exact transcript line. The Evaluator verifies these pointers. It checks the cited node and confirms the semantic meaning matches the Agent's output. It scores the system on its chain of custody.

Third, Adversarial State Updates. We intentionally inject logical traps into the test data. A witness provides a solid alibi. Later cell phone data completely invalidates it. The Evaluator determines whether the Agent successfully updated its internal graph to reflect the invalidated alibi. The Evaluator scores the reasoning trace. Did the agent recognize the contradiction and change the node status? We measure State Retention Accuracy. If the agent updates the node correctly, the accuracy score remains high.

Conclusion

Litigators and clerks cannot rely on tools that simply read fast. They require computational engines that can reason chronologically. By proposing externalized state management architectures and enforcing strict automated evaluations, we create highly capable research systems. While the massive context window holds the raw law, we are building the stateful architecture to actually organize it.

\n

\n

\ \ \

Bitcoin Moves First Because It's the Capital Gateway, Not Because It's King

2026-03-18 22:56:47

Every crypto trader has lived this pattern: Bitcoin twitches. Then — hours or days later — altcoins follow. Most explain it away as prestige hierarchy: Bitcoin is the biggest, oldest, most important asset, so it leads. Altcoins trail like junior partners.

That explanation is wrong at the structural level. And if you're trading on intuition instead of mechanism, you're leaving edge on the table.

The Real Mechanism: Capital Routing, Not Status

Crypto markets don't function as a collection of independent assets that occasionally correlate. They operate as a single capital system with a defined entry point — and that entry point is Bitcoin.

When institutional flows, macro-driven capital, or new retail participants enter crypto, the infrastructure funnels them through Bitcoin first. Custody solutions, regulatory clarity, CME futures, ETF wrappers, OTC desks — all of it concentrates at the Bitcoin layer. This isn't an accident. It's the result of years of institutional infrastructure being built around the most liquid, most accessible asset in the space.

The consequence is mechanical: Bitcoin absorbs the first signal of net capital movement before that capital has been allocated anywhere else. A fund buying $500M in crypto exposure doesn't split it evenly across 50 tokens on day one. It buys Bitcoin. Then it figures out what else to do.

This is the structural explanation for why Bitcoin leads. Not sentiment. Not market cap dominance as a philosophical concept. Flow sequencing.

The Transmission Mechanism

Once large capital enters Bitcoin and price moves up, a second-order effect kicks in: portfolio rebalancing.

Traders and funds holding both Bitcoin and altcoins watch their BTC allocation grow relative to their altcoin positions. To maintain target weightings — or to capture perceived relative upside — they rotate a portion into altcoins. This rotation is the transmission mechanism. Bitcoin's move doesn't just signal that altcoins might go up. It physically generates the capital that will push them up.

The same dynamic plays out in reverse with amplified pain. When capital exits crypto, it exits through Bitcoin first — because that's where the exit liquidity is deepest. Altcoin liquidity thins out faster and harder because the capital sustaining it starts moving toward the exit ramp. This is why altcoins routinely fall harder and faster than Bitcoin in drawdowns. They're downstream in the flow, and when the flow reverses, they get stranded in shallow water.

Bitcoin holds the deepest pools. Altcoins are the downstream tributaries.

What This Tells You About Price Action

Bitcoin's move is a leading indicator, not a coincident one.

When Bitcoin makes a significant directional move — particularly with volume confirmation — it's not just telling you where Bitcoin is going. It's signaling where capital is moving. Altcoins haven't priced that in yet because the rotation hasn't physically started.

The lag isn't noise. It maps to how long capital takes to cycle through the system: from initial Bitcoin allocation, to profit-taking or rebalancing decisions, to redeployment into altcoins. In fast, momentum-driven markets this can be hours. In slower, more structural moves driven by macro positioning, it can stretch to days or weeks.

Altcoin strength that precedes Bitcoin confirmation is a red flag.

When altcoins run without Bitcoin confirming, the move is typically internally financed — retail rotating between altcoins, not fresh external capital entering the system. These moves are characterized by sharp initial velocity and poor follow-through. There's no new capital foundation supporting the price. Once the narrative is priced in, there's nothing left to sustain it.

Fresh capital entering through the primary gateway versus recycled capital chasing headlines: these are structurally different situations with structurally different outcomes.

Correlation is not constant — and where you are in the cycle changes everything.

Early in a bull cycle, Bitcoin-altcoin correlations run high. The dominant force is fresh capital entering through the primary on-ramp, and everything moves together because everything is being pulled by the same tide.

Late in a cycle, correlations loosen. Bitcoin may consolidate or grind sideways while speculative capital chases sector rotations across DeFi, L2s, meme coins, or whatever narrative is capturing attention. In this phase, altcoins can move independently — and some will — but the moves are more fragile because they're not anchored to net new capital entering the system.

Misreading the cycle phase is one of the most common structural errors traders make. A framework that works in early bull conditions will generate false signals in late-cycle rotation environments.

The 2023 Case Study

Early 2023 provides a clean real-world example of the flow sequence playing out.

Bitcoin moved from roughly $16,000 to $25,000 between January and February — a significant leg driven primarily by institutional repositioning after the FTX collapse restructured the market. The move was clean, directional, and volume-supported.

Altcoins did almost nothing in January. A trader watching only altcoin charts would have seen flatness. A trader watching Bitcoin saw the on-ramp opening.

By late February into March, the altcoin market activated. Ethereum led, followed by mid-cap assets, then smaller tokens. The sequencing was textbook: Bitcoin absorbed the first wave, established a new range, and rotation began. Capital that entered through Bitcoin started cycling outward toward downstream assets.

Traders who positioned in altcoins during early February — before the rotation completed — weren't guessing. They were reading flow. Bitcoin had already told them where capital was going. Altcoins just hadn't received it yet.

This pattern isn't specific to 2023. It repeats across cycles because it's driven by structure, not sentiment. Fresh capital enters the most liquid, most accessible asset. Once positioned, participants seek relative value in less-liquid assets. The move propagates outward from the center.

Liquidity Sweeps as a Signal

One structural nuance worth understanding: Bitcoin liquidity sweeps often precede sharp altcoin moves.

When Bitcoin hunts stop losses — clearing weak hands before a real directional move — the capital shaken loose in the sweep doesn't leave the crypto system. It gets redeployed. The sweep compresses the spring. Altcoins are downstream of that redeployment.

This means a clean liquidity sweep in Bitcoin, followed by a decisive reclaim of a key level, is sometimes more meaningful as an altcoin signal than as a Bitcoin trade. The setup is in Bitcoin. The momentum play is in altcoins.

When the Framework Breaks Down

Intellectual honesty requires addressing when this model fails.

In highly speculative environments, altcoin-specific narratives can temporarily override the flow sequence. Protocol upgrades, exchange listings, ecosystem incentive programs, or meme cycles can drive localized moves independent of Bitcoin's positioning. These are real — but they're anomalies in the flow, not replacements for it.

The key distinction: narrative-driven altcoin moves without Bitcoin capital flow confirmation tend to fade once the narrative is priced in. There's no fresh capital arriving to sustain the price at new levels. Flow eventually reasserts over story.

The deeper structural point: Bitcoin's leadership isn't intrinsic to Bitcoin as an asset. It's a function of where institutional infrastructure has concentrated. Bitcoin leads because it's the primary on-ramp right now. If another asset ever achieved the same level of institutional access, custody clarity, and liquidity depth — the sequencing would follow the new gateway, not Bitcoin out of tradition.

That's not the world we're in. But it's the correct frame for understanding why the sequence exists and when it might eventually change.

The Operational Takeaway

Stop treating Bitcoin's price action as one data point among many. Start treating it as the primary flow signal for the entire crypto capital system.

When Bitcoin makes a significant directional move on volume, the question isn't just "where is Bitcoin going?" It's: where is the capital going, and what assets does it hit next? What's the lag structure in the current market environment? Is the move being driven by fresh external capital or internal rotation?

The gap between Bitcoin's move and altcoin follow-through is tradeable — but it requires precision about where in the flow cycle you are. Position too early and you're exposed to the Bitcoin move reversing before capital completes the cycle. Position correctly and you're capturing a structurally-grounded rotation before it's fully reflected in altcoin prices.

The sequence is mechanical. The edge is in reading the mechanism, not the chart.


:::info This content is for educational purposes only. Not financial advice. DYOR.

:::

\n

\

Orchid Security Recognized by Gartner® As a Representative Vendor of Guardian Agents

2026-03-18 22:44:01

New York, United States, March 17th, 2026/CyberNewswire/--Unleash AI adoption securely: discover, attribute, and govern AI agents throughout the enterprise

Orchid Security, the company bringing clarity and control to the complexity of enterprise identity, today announced it has been recognized as a Representative Vendor in Gartner’s Market Guide for Guardian Agents, as a vendor “managing the identities/access for AI agents with zero-trust policies and governance.”

In this inaugural market guide, Gartner asserts that:

“AI agents introduce new risks that outpace human review, yet most enterprises are unprepared to manage them due to fragmented organizational structures and ongoing challenges with discovery.”

Orchid Security concurs with this assessment. The company finds that the growing use of AI agents exponentially expands the amount of identity dark matter—the invisible and unmanaged layer of identity—within organizations. AI agents may also exploit the dark matter that already exists in order to achieve their prompted purposes as efficiently as possible by design.

“For all the exciting business transformation promise of agentic AI, its growing adoption poses very real cyber, compliance and operational risks to be managed,” said Roy Katmor, co-founder and CEO of Orchid Security.

In reviewing Gartner’s research, Orchid notes several key requirements for properly managing AI agents that are shaping the guardian agent market:

Human Operator Attribution

Although AI agents are assumed to act on behalf of individuals, they have their own identities independent of users. Organizations must identify all agents and map their activity to the relevant human owner for accountability, compliance, and governance.

Activity Audit

Organizations must see, log, monitor, and report on agent activity and output to ensure accountability, demonstrate compliance, and enable incident response in the event of unauthorized modifications or incidents.

Posture Management

Secure use of each AI agent requires proper identity and access management hygiene, including centrally managed identities, strong authentication, time- and purpose-bound access, and least-privilege authorization.

Runtime Inspection and Enforcement

Agentic actions and outputs must remain aligned with intentions, goals, and governance policies to maintain appropriate use.

Orchid’s Principles for Secure AI Agent Adoption

Orchid believes these requirements align closely with its view of secure AI-agent adoption within comprehensive identity and access management, guided by five core principles:

Identify and classify every AI agent—whether embedded in self-hosted applications, delivered via SaaS platforms, or operating through third-party solutions—and explicitly correlate it to a responsible human owner (and, where relevant, a system/service owner). This ensures organizations know exactly who triggered an agent run, who approved the tool use, and who is ultimately responsible for the outcome.

Comprehensive Activity Audit

For every agentic entity, capture the full operational context: the agent identity, assigned role, intent behind the action, approvals, and the complete chain of custody from Agent → Tool/API → Action → Target. This enables accountability, compliance reporting, and rapid incident response.

Dynamic, Context-Aware Guardrails

Ensure every AI agent’s access is continuously evaluated and enforced based on real-time context, human owner entitlements, environment, time, purpose, sensitivity of the target, and risk signals—avoiding broad, standing privileges regardless of how the agent is implemented or integrated.

Least Privilege

Require properly scoped permissions and Just-in-Time (JIT) elevation for agent actions, replacing persistent “god-mode” access with purpose-bound, time-bound authorization aligned to the minimum required access.

Remediation Responses

Detect unauthorized or risky agent activity—such as attempts to bypass controls, use static secrets, exceed intended scope, or access sensitive targets—and orchestrate remediation by blocking the action, stepping up approval, enforcing re-authentication, or rotating credentials via Vault/PAM integrations.

“AI agents will not be adopted safely on top of yesterday’s identity stack,” Katmor summarized.“Orchid delivers the identity infrastructure for every identity, human and non-human—including agentic AI—with attribution, audit, and least-privilege guardrails built in. That’s how enterprises unlock the full power of AI without expanding their attack surface or compromising compliance.”

Enterprise leaders responsible for cybersecurity, identity and access management, and AI agent governance register for select access to the Gartner Market Guide for Guardian Agents, compliments of Orchid Security.

Additional Resources

Gartner Disclaimer

Gartner does not endorse any company, vendor, product or service depicted in its publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner publications consist of the opinions of Gartner’s business and technology insights organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this publication, including any warranties of merchantability or fitness for a particular purpose.

GARTNER is a trademark of Gartner, Inc. and its affiliates.

About Orchid Security

Orchid Security sees straight into application binaries to deliver the industry’s first Identity Control Plane, transforming IAM complexity into clarity, compliance, and control.

Its Identity-First Security Orchestration platform continuously discovers enterprise applications, analyzes their native authentication and authorization flows, and accelerates onboarding into governance systems—cutting months of manual work into a single click.

The platform also observes all identity activity—managed and unmanaged—at the application level, providing a full audit of use and identifying orphan, dormant, local, and over-permissioned accounts. By exposing and remediating the “identity dark matter” hidden across modern environments, Orchid helps enterprises reduce risk, lower operational costs, and achieve compliance at scale.

Backed by Intel Capital and Team8, Orchid leverages observability, automation, and large language models to unify fragmented identity operations. Global organizations rely on Orchid to modernize identity governance, accelerate IGA adoption, and secure the next generation of applications and AI agents.

Contact

Chloe Amante

Montner Tech PR

[email protected]

:::tip This story was published as a press release by Cybernewswire under HackerNoon’s Business Blogging Program

:::

Disclaimer:

This article is for informational purposes only and does not constitute investment advice. Cryptocurrencies are speculative, complex, and involve high risks. This can mean high prices volatility and potential loss of your initial investment. You should consider your financial situation, investment purposes, and consult with a financial advisor before making any investment decisions. The HackerNoon editorial team has only verified the story for grammatical accuracy and does not endorse or guarantee the accuracy, reliability, or completeness of the information stated in this article. #DYOR

Cursor Your Dream, Part 1: How to Move From Product Idea to First Prompt

2026-03-18 22:37:52

Who is this article for?

  • Founders who are used to relying on development teams, but whose current resources or budgets have forced some projects to sit in the drawer for years.
  • Beginners who don’t feel confident coding the first version of their product and don’t have the budget to hire developers.
  • Startups that are stuck trying to raise a round just to build a prototype or MVP.

What makes this material different?

  • I’m not a programmer, and I’m writing this with readers in mind who don’t have a technical background (although a technical mindset will definitely help).
  • Over the last six months, I went all the way from not writing code at all to building two full-fledged products. Naturally, my understanding of code grew a lot during that time.
  • Each of these services includes 30 – 40 database tables, around 50 components, and roughly 100,000 lines of code. In other words, these are not weekend demos or toy projects.
  • The first service integrates with OpenAI to “make sense” of user-generated content. It uses a vector database, embeddings, and operations built around them.
  • The second service includes an internal accounting system with double-entry bookkeeping, idempotent operations, and an integrated payment system for processing online payments.
  • I’m not describing some magical way to build software without touching code at all. But this material shows that it is possible to build a real product without first spending years learning programming languages.
  • You will still need to look at the code, occasionally edit it manually, and keep things under control — but you will be able to do it.

Introduction

The idea of fully automated development is very popular right now: describe a product in text and get a working application. Some services can even produce a simple prototype.

But when we are building a product to test real hypotheses, the expectations are different. We want proper UI/UX, good performance, caching, scalability, and the ability for real developers to work with this code later.

From my experience, even strong models like Opus handle backend logic and database structure quite well, but they struggle much more with frontend architecture. They often generate unnecessary code, break the system into components poorly, and ignore client-side performance.

That’s why I don’t use fully automatic generators. There is no magic here: if even Opus inside my Cursor can confuse the frontend, the same thing will happen in any other product built on top of LLMs.

In this series, I use a different approach: an IDE with built-in AI agents. The AI helps write code and plan tasks, but the architecture and key decisions remain under human control.


Why did I choose Cursor?

Simply because I read that it is built on top of the popular VS Code editor. It seemed like a reasonable choice. I don’t think Antigravity would be worse; in practice, the result will be roughly the same, because the quality of the solution mostly depends on the model being used. The editor itself is just a shell that gives the model access to your project files and environment.


The story began in the summer of 2025, when I was discussing with DeepSeek an idea that had been in my head for almost 10 years: a social network of preferences, where users receive recommendations based on similarities in their personal ratings (restaurants, hotels, countries, hobbies, basically anything). And suddenly it said:

Let’s build it. We should use Next.js.

3 months later, I found myself presenting the product to the top management of a large corporation, and they were the ones who asked me to do it.

What’s funny is that, despite 20 years in IT as a founder, that had never happened to me before.

More recently, I also brought another long-postponed project to launch, one that had been sitting in a folder for years. I always assumed it would be too complex and expensive to build, and the topic itself felt risky enough that I didn’t want to invest money into it.


In this series, I’ll share the entire experience: real prompts, configurations, and pitfalls. But before we go further, we need to answer the most important question:

Should you even try this?

Short answer — yes, if you roughly understand these concepts:

  • frontend
  • backend
  • databases
  • HTML structure
  • CSS styling
  • JavaScript behavior
  • basic React concepts

\

:::tip If these ideas already make sense to you, feel free to scroll down to the "Choosing a Framework" section.

:::

\ If these terms sound unfamiliar, it’s better to take a moment to understand them now. What follows won’t feel like scrolling social media, but consider this: this journey saved me roughly $300,000 and a couple of years of development, hiring contractors, and building a team.


Frontend vs Backend

In simple terms, the frontend is what the user sees:

  • a website in a browser
  • a mobile application
  • a browser extension
  • any interface where users click buttons or read information

\

\ The backend is the part of the system that runs on servers somewhere on the internet.

It handles:

  • data processing
  • authentication
  • business logic
  • communication with databases

When a user clicks a button, the frontend sends a request to the backend. The backend processes the request and sends data back.

The interaction looks roughly like this:

User → Frontend → Backend → Database → Backend → Frontend → User

In practice, the frontend interacts with the backend through API routes: special URL addresses that the frontend sends requests to:

/api/articles
/api/login
/api/create-article

When the frontend calls one of these addresses, the server runs the necessary code:

  • verifies the user
  • queries the database
  • processes the data
  • and returns the result.

For example, the frontend might send a request like this:

GET /api/articles?author_id=535

The backend receives this request, retrieves the articles from the database, and returns them to the frontend.


What Is a Database?

A database stores the information used by the application. If you’ve used Excel or Google Sheets, the concept is very similar. Think of a database as a collection of tables. Each table is like a spreadsheet.

Users Table

| id | name | email | |----|----|----| | 1 | Alice | [email protected] | | 2 | Jack | [email protected] |

\n Articles Table

| id | name | email | |----|----|----| | 1 | 1 | First article | | 2 | 1 | Another article | | 3 | 2 | Jack's article |

\ In this example, one user can create many articles.

This simple structure of related tables forms the foundation of most software systems. In your own service there might be 30–50 tables, even if right now it feels like there will only be three.


HTML: Structure of the Page

HTML defines what exists on the page.

  • headings
  • paragraphs
  • buttons
  • images
  • containers

Example:

<div>
  <h1>Hello</h1>
  <p>This is a paragraph</p>
</div>

HTML elements form a nested structure called the DOM.

div
 ├── h1
 └── p

Every webpage in your browser is essentially a large tree of elements.

CSS: How Things Look

If HTML defines structure, CSS defines appearance.

  • colors
  • fonts
  • spacing
  • layout
  • positioning

Example:

/* CSS class that defines how the title looks */

.title {
  color: blue;
  font-size: 32px;
}

Applied like this:

<!-- HTML heading that uses the CSS class above -->

<h1 class="title">Hello</h1>

Combining Multiple Classes

One important concept in CSS is that elements can have multiple classes.

Example:

<!-- button with multiple classes -->

<button class="button button-primary button-large">
  Submit
</button>

Each class can control different aspects of styling.

/* base button style */
.button {
  border-radius: 6px;
}

/* button color style */
.button-primary {
  background: blue;
  color: white;
}

/* button size */
.button-large {
  padding: 16px 24px;
}

This flexibility is powerful. But it can also become confusing in large applications when styles start interacting with each other.

Why Tailwind Helps

This is one reason many modern projects use Tailwind CSS. Instead of writing large CSS files, Tailwind uses predefined utility classes.

Example:

<button class="bg-blue-500 text-white px-6 py-3 rounded-lg">
  Submit
</button>

<!-- bg-blue-500 = blue background -->
<!-- text-white = white text -->
<!-- px-6 = horizontal padding -->
<!-- py-3 = vertical padding -->
<!-- rounded-lg = rounded corners -->

Each class represents one small styling rule. This approach has a surprising advantage when working with AI tools like Cursor. AI tends to generate Tailwind layouts much more reliably than traditional CSS.

:::warning If you don’t explicitly instruct Cursor to use Tailwind, it may start embedding styles directly into each element.

:::

Example:

<!-- style written directly inside the button element -->

<button style="background: blue; padding: 12px;">

This works initially.

But later it becomes painful, because changing the design requires editing every component individually. Reusable classes allow you to change the design of the entire application by modifying only a few shared styles.

JavaScript and TypeScript

HTML defines structure. CSS defines appearance. JavaScript defines behavior.

Press enter or click to view image in full size \n

JavaScript allows the interface to react to user actions.

Example:

// when the user clicks the button, show a message

button.addEventListener("click", () => {
  alert("Hello!");
});

TypeScript is essentially JavaScript with additional type safety.

JavaScript:

// a simple function that adds two numbers

function add(a, b) {
  return a + b;
}

TypeScript:

// the same function, but with explicit types
// a and b must be numbers
// the function returns a number

function add(a: number, b: number): number {
  return a + b;
}

Most modern applications use TypeScript because it prevents many errors in larger systems.

Why We Will Use Next.js

In the rest of this series, we will build the example application using Next.js. Next.js is a framework built on top of React. React focuses on building user interfaces.

Next.js adds things like:

  • routing
  • server rendering
  • API endpoints
  • project structure
  • build tools

:::info You don’t need to deeply understand Next.js internals. But it helps to understand how React applications are structured.

:::

Fortunately, the core ideas are very simple. You only need to understand three things:

  • components
  • props
  • hooks

React Components

React applications are built from components.

A component is a reusable piece of interface.

Examples include:

  • buttons
  • navigation bars
  • comment blocks
  • modal windows

Example component:

// A simple React component.
// It renders a button.

function Button() {
  return <button>Click me</button>
}

Now it can be reused anywhere.

<Button />
<Button />
<Button />

Large applications become trees of components.

\

Props

Props are inputs passed into components.

Example:

// A simple React component.
// It renders a button and shows the text passed in props.label.

function Button(props) {
  return <button>{props.label}</button>
}

Usage:

// The same component can be reused with different labels

<Button label="Save" />
<Button label="Delete" />
<Button label="Cancel" />

Hooks

Hooks allow components to store state and react to user interactions.

Example:

// useState creates a piece of state inside the component.
// "count" stores the current value.
// "setCount" is the function used to update it.

const [count, setCount] = useState(0)

Now the component can update its internal state.

// When the button is clicked, the count increases by 1.
// The text updates automatically.

<button onClick={() => setCount(count + 1)}>
  Clicked {count} times
</button>

Hooks make components interactive.

:::info Summary:

  • If you have never encountered these concepts before, I understand how this might feel.
  • But you don’t need to master all of this at a professional level. You only need to understand the basic idea. If you have a technical mindset and can grasp these concepts, the journey becomes much easier.
  • Instead of randomly asking AI to generate something, you will be able to guide it properly. And that makes a huge difference.

:::

Before Moving Forward

Make sure you roughly understand:

  • frontend vs backend
  • databases as tables
  • HTML structure
  • CSS classes and styling
  • JavaScript behavior
  • React components, props and hooks

What’s next?

Before diving into a technical specification for your product, answer this: What stack will you use?

At first glance, this may seem like a purely technical decision. But when you build software with Cursor, the stack effectively becomes part of the instructions you give the AI. If you don’t define it in advance, the AI will start improvising, and I’d rather not even think about where that might lead.

Here I’ll describe the stack I ended up using myself. This setup worked extremely well for me and may help you avoid some of the problems I ran into at the beginning.

Choosing a Framework

If your product has a web interface (meaning users interact with it through a browser), you’ll need a framework that handles both the frontend and the backend.

For both services I built, I chose Next.js, and I never regretted that decision.

I should mention that I had never worked with Next.js before. I was familiar with things like PHP, Laravel, JavaScript, and similar technologies, but in this case I simply followed ChatGPT’s recommendation. And it worked.

:::tip The point is: even if you already know another stack, this might be a good opportunity to try something new.

:::

\

:::warning If you’ve been far from development altogether, you may run into challenges with client-side caching and application state management (these are necessary if you want to fully avoid things like page reloads while a user interacts with your service). That’s where experience really helps. In the next parts, I’ll describe the main things I ended up doing.

:::

In the end, this kind of polishing is definitely not required to bring a product to market. Once you have users and revenue, you can always hire a frontend developer to refine things further.

Where Will Your Server Run?

Once the framework is chosen, the next question is where the application will actually run. In other words: hosting.

Vercel

For my first project, I used Vercel.

This is a fairly natural choice when working with Next.js. Deployment (pushing your application to the server) happens automatically out of the box whenever you run git push.

However, over time, I ran into an unexpected issue: in some regions, the application simply isn’t accessible. Because of this, the first project remained on Vercel, but for the second one, I decided to try something different.

Fly.io

For the second project, I switched to Fly.io.

Deployment there is a bit more complex than on Vercel, but it can be automated. In the end, I actually liked Fly.io even more. It feels more flexible for scaling if the project starts to grow.

Interestingly, Fly.io doesn’t formally have a free tier, but if your monthly usage stays below $5, they don’t charge you anything at all.

Choosing a Database

There are two main approaches here:

  • The first option is to run your own database on your own server. This gives you full control and can be completely free.
  • The second option is to use Database as a Service.

For both of my projects, I chose the second approach because I wanted to move as fast as possible. I used Supabase.

Supabase provides a managed PostgreSQL database along with several extremely useful tools.

Why Supabase Was Convenient

  1. Supabase supports vector storage. This became important for one of my projects where data was stored as embeddings generated with the OpenAI embedding-3-small model. As AI becomes more integrated into software products, having native support for vector data becomes surprisingly valuable.
  2. Supabase includes built-in authentication. Users can log in using providers like GoogleGitHubemail and other providers.
  3. Supabase also provides file storage, which allows users to upload images and other assets without building separate infrastructure.
  4. Another very useful feature is support for RPC functions. In my second project I completely stopped allowing the backend to query database tables directly. Instead, everything goes through RPC functions. In practice, this significantly reduced code generation errors.
  5. Supabase also includes powerful security tools like Row Level Security (RLS) policies.

Supabase Drawbacks

  1. The first issue I encountered involved the built-in authentication system. Specifically, Google login behaves inconsistently for users accessing the application through Safari on iPhone. I only discovered this after about two months of development, and in practice it turned out to be almost impossible to fix. In my second project I ended up using only part of Supabase’s authentication system.
  2. The second drawback is pricing. Supabase technically offers a free tier, but in practice, you may still end up paying around $25–40 per month, even if the application is still in development and has no users. It’s not a huge amount, but it’s something to keep in mind.

Cursor + ChatGPT: Two Different Roles

For me, Cursor is the primary development environment. There are other IDE options, but Cursor worked very well in my case. Switching to something like VS Code and interacting with an AI assistant through the terminal is something I personally have no interest in trying.

The main downsides of Cursor are cost and frequent updates.

At some points, my spending reached $100 per day. Over time, I learned how to control those costs. Today, a realistic estimate is about $300 per month if you actively use powerful models.

Cursor also offers a base subscription for around $20, but relying on the cheapest model is practically impossible, and the limits for paid models are quite small.

Why ChatGPT Is Still Important

Even if you use Cursor, I strongly recommend having a ChatGPT Plus subscription.

My workflow usually looks like this:

  • Cursor → writing and modifying code
  • ChatGPT → discussing ideas and architecture

Inside Cursor, the model is optimized for code generation and stability. Outside Cursor, ChatGPT behaves more like a creative thinking partner.

A simple rule:

:::warning Don’t ask ChatGPT to write your production code

:::

It doesn’t make much sense. The same model inside Cursor, or especially models like Opus, will generate code much better.

Using ChatGPT for Visual Assets

Another unexpected use of ChatGPT was image generation.

My second project represents visual environments: digital parks with monuments, paths, and decorative objects. That required a large number of graphical assets. Instead of buying assets or hiring designers for every iteration, I generated most of the visuals directly with ChatGPT.

Since image generation is included in the ChatGPT Plus subscription, this saved a surprising amount of money during development and was simply very convenient.

Design Tools

Many developers use Figma to design interfaces before writing code.

Personally, I barely used it. Cursor can generate reasonable UI layouts on its own, and I simply adjust them manually afterward.

However, if you prefer designing interfaces first, Figma can still be very useful.

Google is also experimenting with tools that convert design layouts directly into code. One example is Google Stitch, which can generate an initial implementation from interface designs.

In theory, you can:

  • design the interface in Figma
  • generate templates with Stitch
  • then convert those templates into React components

Email and Small Infrastructure Pieces

Most applications eventually need to send emails.

For this, I used a simple service called Resend.

Later, you may also want to introduce caching using something like Redis, but in both of my projects, I postponed that step.

:::tip If the architecture is designed properly, caching can always be added later.

:::

Do You Need Docker?

In both projects, I managed to work entirely without Docker.

Vercel builds the project automatically (as I understand it, the service was created by the same team that developed Next.js). With Fly.io, you can use Docker to build the project locally on your machine, but you can also upload the files as they are and let the build run on their servers.

At one point, something broke, and Fly.io stopped picking up the files and starting the build. The common advice online is either to change the server region in the Fly settings or switch to local builds (which is where Docker becomes useful). But I solved it differently, by using a specific flag in the Fly deployment command, so I didn’t have to do either of those things. You can also just ask Opus how to fix it with minimal effort (without changing the server or installing Docker). It will usually suggest a workable solution.

Hardware Matters More Than You Think

One unexpected lesson had nothing to do with programming.

:::info Your hardware setup matters

:::

Cursor works much better when you have enough screen space to see multiple panels at the same time. I initially started development on a small 13-inch tablet. Technically it worked, but it was extremely uncomfortable.

Switching to a 27-inch monitor dramatically improved the workflow.

:::warning Cursor can also be fairly resource-intensive, so having a reasonably powerful computer definitely helps.

:::

\

Operating System

For context, I ran this entire experiment on Windows.

However, nothing in this stack actually depends on Windows, except for the AI’s constant attempts to generate shell commands using && (which can be fixed with a few rules I’ll describe later).

The same setup works perfectly well on macOS or Linux.

Minimal Stack Summary

If we simplify everything, my stack looks roughly like this:

  • Framework: Next.js
  • Database: Supabase
  • Hosting: Fly.io
  • IDE: Cursor
  • Chat: ChatGPT
  • Email: Resend

And that turned out to be more than enough to build real working products.

What Comes Next

Before writing any code, you need to clearly describe the product.

Most people using AI tools jump straight into coding. In my experience, that’s the fastest way to create a chaotic system.

:::info If you haven’t built a product with AI yet, honestly, I envy you. I still remember the feeling I had in the summer of 2025 when I first started experimenting with it.

:::

Now my advice may sound a bit strange:

Stop for a few days.

Take 3 - 5 days and resist the temptation to immediately install Cursor, Antigravity, or any other AI development platform.

Because the quality of your thinking at this stage will determine how painful (or how smooth) the next weeks or even months of development will be.

Every 10 minutes of thinking now can save hours of refactoring later.


Start With a Conversation

At this stage, your main goal is to clarify your idea. The easiest way to do that is to open ChatGPT and start discussing it using voice input (not the full voice conversation mode, but the speech-to-text button). Your native language works perfectly fine.

Just start talking. For example, explain:

  • What your product does
  • Who the users are
  • What problem it solves
  • What actions users will perform

The goal of this conversation is not to generate code. The goal is to gradually discover the structure of the future system.

During this discussion, you should also tell ChatGPT what technology stack you plan to use.

For example:

  • Next.js
  • TypeScript
  • Supabase
  • Tailwind

And explicitly ask ChatGPT not to generate code yet. Explain that you’ll write the code later in Cursor, but you want ChatGPT to describe how it would architect the system.

I’ve personally seen several people spend months circling around an idea without ever asking the AI this simple question.

Think About Data, Not Just Screens

One of the most important parts of this stage is designing the data model.

If you’ve never worked with databases before, imagine the system as a set of Excel spreadsheets.

Ask yourself questions like:

  • Can one user create multiple objects?
  • Do objects belong to categories?
  • Can categories contain multiple objects?
  • Are there relationships between objects?

For example:

  • one user → many articles
  • an article → a category… or maybe
  • an article → multiple categories and tags
  • an article → many comments that load on scroll
  • comments → reactions

Another important question is user roles. Will everyone be equal? Or will some users have additional privileges?

  • moderators
  • administrators

You can add roles later, but it’s much easier to plan for them early.

Ideally, your technical description should include:

  • table names (articles, comments, reactions)
  • column names (username, avatar, bio)
  • relationships between tables

Even if you plan to evolve the product gradually, a clear structure from the beginning can save you a huge amount of refactoring later.

In both of my projects, the database eventually ended up with about 30–40 tables. Here’s the structure from my second project:

Supabase Public Scheme

\ Your project will probably end up with a similar number. But for the initial technical specification, even 10 core tables is enough.

Job Queues

The most difficult concept for beginners is usually job queues. A queue is a table that stores tasks rather than objects like users or articles. You need a queue when your system interacts with external services.

For example, imagine that after a user publishes an article, you send it to an external service for translation or analysis.

:::warning You cannot reliably perform that operation instantly during article creation, external services may fail or respond slowly.

:::

The article itself must be created immediately (because that depends only on your application). But additional data can be added later through a background process.

For example, your articles table might look like this:

| id | authorid | picture | titleen | texten | titlees | text_es | |----|----|----|----|----|----|----| | 32 | 535 | one.jpg | Article 1 | Hello | | | | 33 | 535 | two.jpg | Article 2 | Next part | | |

После создания каждой статьи, она попадает в очередь на получение перевода от внешнего сервиса:

| id | entitytype | entityid | status | attempts | estextgenerated | |----|----|----|----|----|----| | 1 | articletext | 32 | processed | 1 | ==Hola== | | 2 | articletext | 33 | pending | 0 | |

Как только задание в очереди выполняется, триггер автоматически дополняет информацию о статье в основной таблице статей

| id | authorid | picture | titleen | texten | titlees | text_es | |----|----|----|----|----|----|----| | 32 | 535 | one.jpg | Article 1 | Hello | | ==Hola== | | 33 | 535 | two.jpg | Article 2 | Next part | | |

Queues for external services in Supabase are usually handled through Edge Functions.


In Supabase there are 2 different types of functions: RPC and Edge.

Remote Procedure Call

RPC is a function that replaces direct queries to your database tables. For example, instead of your server making a direct query to retrieve (SELECT) all articles belonging to a specific user (535):

SELECT *
FROM articles
WHERE author_id = 535;

I strongly recommend asking your AI assistant to create a function like this instead:

CREATE OR REPLACE FUNCTION get_user_articles(p_author_id bigint)
RETURNS TABLE (
  id bigint,
  author_id bigint,
  picture text,
  title_en text,
  text_en text,
  title_es text,
  text_es text
)
LANGUAGE sql
SET search_path = ''
AS $$
  SELECT
    id,
    author_id,
    picture,
    title_en,
    text_en,
    title_es,
    text_es
  FROM public.articles
  WHERE author_id = p_author_id
  ORDER BY id DESC;
$$;

Then, inside your project code, you simply call this function like this:

SELECT * FROM get_user_articles(535);

To make sure this approach always works correctly and consistently, add explicit rules to your technical specification (we will discuss it later):

  • never query the database directly from the client; always go through server API routes
  • forbid direct table queries inside the API; if a new data operation is needed and no RPC exists yet, create a migration with a new RPC function
  • always use SET search_path = '' inside RPC functions and explicitly reference the schema when accessing tables

:::info I won’t go deeper into this topic right now, but following these rules will save you a lot of headaches later.

:::

Edge functions

An Edge function runs outside the database and is typically used to interact with external services.

They run on JavaScript or TypeScript (Deno runtime) and can call RPC functions inside your database when needed.

That’s it. This was the most complex section about the database.

You might not fully understand it yet and that’s completely fine:

  • First, at this stage these are secondary details.
  • Second, during your discussion you can simply ask ChatGPT to find this article, “Cursor Your Dream,” and clarify anything you don’t understand. In my experience, it instantly understands the context and can explain queues, Edge functions, and whether you even need them.
  • Third, as I mentioned in Part 1, Cursor is very good at building database and backend architecture. You won’t be left alone with these problems.

Think About Components

If you already have some idea about the interface, you can describe it in terms of components.

For example:

  • Article component
  • User profile component
  • Modal windows
  • Navigation elements

An article component might have several modes:

  • view mode for readers
  • edit mode for authors
  • moderation mode for admins

If you think about components in advance, AI tools will later generate much cleaner code.

An Important Rule for Styling

Tell ChatGPT to include an instruction in the specification that Cursor should not use inline CSS styles, but instead use proper CSS classes, for example through Tailwind.

In one of my projects I forgot to mention this.

As a result, styling logic ended up scattered across dozens of components, and cleaning it up later was painful.

\

:::warning A Critically Important Note About Authentication:

  • If you plan to use Supabase, specify that JWT tokens should be generated by your application, not by the default Supabase authentication system.
  • If you’re new to authentication systems, this may sound strange. But this small detail can prevent serious problems later, especially when users sign in through Safari on iPhone.

:::

\

Sample Case Study (from my second project)

To make this more concrete, let me show you how this process actually worked for my second project, “Honoramma”.

The First Prompt

Here’s the very first prompt that started the discussion.

For many years I’ve had the idea of building a digital memorial.

It could be a platform where one group of users creates landscape maps, another places monuments, and others leave offerings — such as flowers or comments.

I think it could be a breakthrough idea because nothing like this seems to exist.

But I’m worried about legal issues. For example, what if someone creates a monument for a living person? Or creates a monument for someone like Michael Jackson — could that cause legal problems related to using the name?

Technically I imagine it as a website with an isometric map where monuments are placed.

Ideally we should find a good engine instead of building everything from scratch.

At that stage the prompt wasn’t technical at all. It was simply a starting point for discussion.

ChatGPT Response (shortened)

The idea of a digital memorial is interesting because it’s not just another social network. Your concept is closer to a digital space of memory, where people interact through symbolic actions: visits, comments, offerings.

The legal issue you mentioned — creating a monument for a living person — does exist. In some cases it could be interpreted as defamation or reputational harm.

However, platforms usually manage this risk through product design, not through total prohibition. For example:

— complaint and takedown systems \n — clear rules for user-generated content \n — framing memorials assymbolic spaces, not factual claims about death

Technically, for an isometric map on the web it’s usually best to use an existing rendering framework. For fast prototypes, good options include:

— Phaser for interactive tile-based scenes \n —PixiJS for flexible web rendering and UI integration

If you later want real 3D monuments, you could switch to Three.js, but for an MVP a 2D tile-based approach is usually much faster.

After that the discussion continued.

My Follow-Up Messages

I’m fine with pseudo-3D.

At one level, users create a map: they choose its size as a grid and fill it with grass, paths, and other elements through a visual editor.

At another level, users place monuments that may occupy different numbers of tiles, such as 1, 2, or 4.

There is also a third type of user: they don’t create maps or monuments, they simply leave offerings such as flowers.

Each map should have its own unique URL.

I also want the map owner to receive a percentage of purchases inside their map. For example, if someone buys a monument there, I might share 20% of the revenue with the map owner.

If someone leaves flowers at a monument, perhaps 20% goes to the monument owner and another 20% to the map owner.

I’m thinking of building the project using Next.js + Supabase. Which pseudo-3D engine would be best?

Okay. Now expand the technical description, gather everything into a single document, and add an introduction explaining the problem and the product.

Markdown (.md) File with the Spec

After several conversations, the technical specification was ready. The same will happen for you. Make sure to ask for the final spec to be generated in Markdown format and copy it into a text file. Or have it create an .md file right away. You will definitely need this file at later stages.

But instead of sending it straight to Cursor, ask yourself this:

Which part of the product is the most important to you, or the most representative?

This matters because your first prompt for Cursor may differ from the technical spec. We’ll get to that later.

For me, that part was the map editor mechanics. So I decided to build only that first (without authentication, a database, or a backend).

My Final Prompt to ChatGPT

Write a prompt for Cursor where the main goal is to create a map editor. For now it should work without authentication and without Supabase. Even if the map cannot be saved yet, that’s fine.

The main goal is to feel the mechanics of the map before building the entire product. Ideally this should be a component that can later be integrated into a full system. During map creation we should define slots where users will later place monuments.

ChatGPT Response

Below is the final instruction that eventually produced the working prototype in Cursor.

You are a senior frontend / game engineer.

We are building only a prototype of a map editor (isometric pseudo-3D) as an isolated component in order to explore the core interaction mechanics.

Strict Constraints

No authentication. No Supabase, database, Stripe, or any backend components. No additional product screens. The goal is only the interactive mechanics of editing the map, slots, and monument placement.

Output Format

Implement this as a self-contained React component (React + TypeScript) that can later be integrated into a Next.js application.

The component must:

*— maintain **local state \n *— expose a public API (props / callbacks)

Technologies

— React + TypeScript \n — PixiJS + pixi-viewport

Core Product Model (IMPORTANT)

When a map is created, the owner defines SLOTS — rectangular areas on the grid where other users will later be able to place monuments.

In this prototype we implement both:

— the slot editor \n — monument placement

All data is stored locally.

Entities (In-Memory)

Grid — NxM tiles (grass, path)

Slot — Rectangle defined as x, y, w, h \n kind: monument \n id

Monument occupies exactly one slot \n Properties:

size(1x1 | 1x2 | 2x2) \n slotId \n rotation(optional) \n id

Prototype Functionality (Editor MVP)

Generate an NxM map (default: 20 × 20). Isometric projection.

Camera controls:

— pan (drag) \n — zoom (3 fixed zoom levels)

Tools

— Paint grass \n — Paint path \n — Slot tool (create / delete slot, rectangle sizes: 1×1, 1×2, 2×2) \n — Place monument (monuments can only be placed on an existing slot of matching size) \n — Eraser (deletes monument or slot depending on what is under the cursor)

Rules

— Paths cannot be covered by slots. \n — Slots cannot intersect. \n — A monument can only be placed into afree slot of matching size. \n — Slots and monuments must never overlap.

Selection

Clicking a slot or monument selects it (highlight with a frame).

A small info panel (React div) appears on the right showing:

— type \n — coordinates \n — size \n — id

Export / Import State (JSON, In-Memory)

Button Export JSON → outputs current state into a textarea.

Button Import JSON → loads state from textarea.

UX Details

Toolbar on top or left containing:

— tool selection \n — slot size selector (1×1 / 1×2 / 2×2) \n — Export / Import buttons

The cursor mode should be clearly visible (label showing current tool)

Architectural Requirements (Important for Future Scaling)

Separate model (grid / slots / monuments) from renderer (Pixi layers).

Create Pixi Application and viewport only once. Do not recreate them on every state change.

Use useEffect with proper cleanup:

— destroy app \n — remove listeners \n — cancel animation frames

Do not store Pixi objects in React state. Store them in refs.

Handle container resize correctly using ResizeObserver.

Attach pointer events to viewport/stage once, and remove them on unmount.

Use depth sorting for isometric rendering (for example x + y or y) so objects overlap correctly.

Task

First propose a minimal file structure:

mapEditor.tsx \n model.ts \n isoMath.ts \n render.ts

Then implement a minimal working prototype (TypeScript) so I can paste the component into an empty React / Next.js project and immediately see the editor working.

At the end include a short list of “things to improve later” (maximum 8 items).

Do not add anything beyond what is specified above.

Don’t Rush to the Next Step

Your task right now is to think about your idea. Discuss it. Refine it.

In my experience, it’s also important to focus on the MVP — the minimal version of the product that is still sufficient for a user to understand what the product is and what core problem it solves.

Two successful startups in my life actually began as nothing more than demos, even simple presentations. Today, AI tools simply allow us to build real products instead of demos, and test them on real traffic much faster.

You should also think not only about the product itself, but about the path to market.

Several of my projects stalled exactly at the point where I had no good answer to basic go-to-market questions.

So before writing code, try to clarify two things:

  • what the product is
  • how it reaches its first users.

In the end, you should have two documents

The first one is the full technical specification in the form of a Markdown (.md) file. This document will live in the root of your project and will be continuously read and updated by the AI during development.

The second one is the first working prompt — the prompt you will send to Cursor as your very first task. And this will only be the beginning. As development progresses, you will end up writing hundreds of prompts like this.

Next

In the next article (coming soon), we’ll finally move to the technical part: installing Cursor and generating the first real working code.

And this is where everything becomes both very exciting and a little chaotic.

\ \ \

Hybrid Observability Unifies Metrics, Logs, Traces, and Data Into a Single Pane of Glass

2026-03-18 22:08:27

Modern cloud-native systems generate a torrent of telemetry data from infrastructure metrics and application logs to distributed traces and even data pipeline metrics. Hybrid observability involves bringing all these observability signals together into a unified plane for monitoring and analysis.

Instead of juggling separate tools for logs, metrics, traces, and data-level metrics, engineers aim to correlate them on one platform for holistic insight. The payoff is significant: when the three classic pillars of observability are correlated, they provide a unified, contextualized view of system behavior that is essential for detecting performance bottlenecks, debugging failures, and optimizing reliability.

In this article, we’ll explore what hybrid observability means, why it’s needed, and how to achieve it. We’ll discuss the challenges of siloed signals, the role of open tools like OpenTelemetry and Grafana, architectures that unify infrastructure and data-layer observability, best practices for implementation, and key trade-offs such as complexity, cost, and vendor lock-in.

Why Hybrid Observability?

Today’s IT environments are highly distributed and dynamic, think microservices, multi-cloud deployments, serverless functions, and real-time data pipelines. Traditional monitoring with isolated metrics or individual log analysis is no longer sufficient for understanding issues in such complex systems. Hybrid observability arises from the need to break down data silos and get a holistic picture of system health. Each telemetry signal offers unique insights; metrics quantify behavior, logs provide detailed event context, and traces map end-to-end request flows, but their true power comes to light when they’re combined. If these signals remain in separate buckets, engineers face blind spots that slow down troubleshooting.

Organizations have learned this the hard way. With siloed monitoring stacks, a simple outage often requires jumping between consoles CloudWatch for AWS metrics, Kibana for logs, APM tools for traces and mentally stitching together timelines. One report notes that teams end up manually correlating timestamps across three different consoles to find root cause, an approach far too slow for real-time incident response. The dream of a single integrated observability view – sometimes called a single pane of glass has become a priority for many. In hybrid cloud environments, observability must provide a correlated view of all telemetry data, not separate dashboards for logs, metrics, and traces. Hybrid observability means unified visibility no matter where an application runs or what type of data it emits, all relevant signals can be viewed and analyzed together. This unified approach is needed to accelerate incident response, improve cross-team collaboration, and ensure nothing falls through the cracks in complex, distributed systems.

Moreover, modern applications don’t stop at traditional metrics and logs. Data-level metrics like the health of data pipelines, stream processing jobs, or database replication lag are increasingly critical. A hybrid observability plane includes not just infrastructure and application signals, but also data-layer indicators that DevOps and DataOps teams care about. By monitoring these alongside system metrics, teams can connect infrastructure behavior with data outcomes. For instance, an observability platform might correlate a container CPU spike with a drop in records processed by a Spark job, revealing a causation that would be hidden in siloed tools. In short, hybrid observability provides end-to-end insight from the bare metal (or cloud VM) to the user experience and data quality, all in one view.

Challenges of Siloed Observability Signals

Achieving this unified vision is easier said than done. Historically, the industry evolved separate tools for each observability pillar: specialized log management systems, time-series databases for metrics, tracing frameworks, and so on. Running these in isolation leads to several challenges:

\

  • Data Fragmentation and Context Gaps: When telemetry data is fragmented across different systems, it’s difficult to piece together the full story. As one research paper notes, organizations struggle with data fragmentation [and] context propagation issues when logs, metrics, and traces aren’t correlated. Each tool might show part of an incident, but without a common context engineers must manually align events. This slows down root cause analysis dramatically. A survey of teams revealed that engineers often waste time correlating data by hand not for the faint of heart, hopping between dashboards and comparing timestamps. Siloed data means limited context, forcing guesswork in diagnostics.

\

  • Slower Incident Response: Siloes directly impact Mean Time to Repair (MTTR). In a critical outage, teams might see an alert from a metrics monitor but then have to query logs in a separate system to understand why. Without unified observability, this context-switching delays resolution. In hybrid cloud setups, the risk is even higher observability data is siloed, which can slow down incident response and ultimately risk customer satisfaction. The lack of a unified view means on-call engineers spend precious minutes gathering clues from disparate sources instead of immediately pinpointing the issue.

\

  • Excessive Alert Noise: Disconnected monitoring tools often produce redundant or unactionable alerts. Each system might fire off its own alerts for what is essentially the same problem. This contributes to alert fatigue. As the research highlights, excessive alert noise is a common consequence of siloed observability. Alerts lack context, leading to false positives or missing the forest for the trees. A unified approach can correlate signals to generate smarter alerts but achieving that requires integration.

\

  • High Costs and Tool Sprawl: Using many disconnected tools can be expensive and operationally complex. Licensing or running multiple platforms adds cost and overhead. Data might be duplicated across systems, wasting storage. Teams also must maintain expertise in each tool. An observability leader described how fragmented monitoring stacks led to tool sprawl along with increased costs and complexity. Similarly, Observe Inc. notes that many organizations hit a cost ceiling as their telemetry grows, because your monitoring tools cost a lot more than expected every year and complexity keeps growing with more services and more data. Siloed solutions often don’t scale economically; each additional data source raises costs linearly in separate systems.

\

  • Blind Spots and Missed Insights: Perhaps the biggest risk of all is what you don’t see. If certain signals aren’t integrated, you may miss early warning signs.

In summary, siloed observability makes it harder to see the big picture and react quickly. Fragmented data, multiple UIs, and disjointed alerts translate into slower fixes and potentially missed problems. These pain points are driving the push toward hybrid observability to unify signals and eliminate the inefficiencies of the old, siloed approach.

Unifying Metrics, Logs, Traces – Tools and Technologies

Fortunately, the industry is coalescing around open standards and interoperable tools to enable unified observability. Here are some of the key technologies and approaches helping teams build a single observability plane:

\

  • OpenTelemetry for Standardized Telemetry: OpenTelemetry (OTel) has emerged as a pivotal open-source framework for collecting metrics, logs, and traces in a consistent way. It provides language SDKs to instrument your code and a unified data model for all telemetry. By adopting OTel, organizations can ensure that all services emit observability data in a common format with shared context (e.g. trace IDs). This greatly simplifies correlation for instance, an incoming HTTP request trace can carry an ID that gets logged in the application logs and associated with metrics, tying the three pillars together. As one engineer describes, “OpenTelemetry and distributed tracing eliminate the problem of fragmented monitoring. With a single collector and consistent data model, telemetry from containers, functions, APIs, and databases can be unified”. The OTel project also includes a Collector, which acts as a central telemetry pipeline. The Collector can receive data from various sources, process or enrich it, and export it to one or multiple backends.

\

  • The Grafana Ecosystem (Prometheus, Loki, Tempo, etc.): On the tooling front, the open-source Grafana stack has become a popular solution for unified observability. Grafana itself is a visualization and analytics UI that can bring together varied data sources in one dashboard. With projects like Prometheus for metrics, Loki for logs, and Tempo (or Jaeger) for traces often dubbed the “LGTM” stack teams can deploy an end-to-end observability platform. Prometheus is the de facto standard for metrics in cloud-native environments, offering a robust time-series database and query language (PromQL). Grafana Loki provides log aggregation using a design similar to Prometheus, making logs scalable and queryable via LogQL. Grafana Tempo stores distributed traces at scale. When wired together, these tools allow for cross-navigation: you can graph a metric in Grafana, then pivot directly to related logs or traces. Grafana’s interface supports linking these signals – for example, by embedding a trace ID in logs, you can click from a log entry to view the full distributed trace in Tempo. One case study described how Grafana enabled viewing metrics, logs, and tracing side by side, where a user can drill down from a metric to corresponding logs, and from logs to the trace – all in the same console. This kind of integration is the essence of a unified observability plane. It eliminates context-switching; an engineer investigating an issue can seamlessly follow the trail of clues across data types.

\

  • Data Lake and Big Data Integrations: Another approach gaining traction is leveraging data lake technologies to store and query observability data. The idea is to dump all telemetry into a scalable data lake or lakehouse, often backed by cheap cloud object storage, and then use analytical query engines to derive insights. This approach promises unification at the data layer: rather than maintaining separate specialized databases for each signal, raw telemetry is centralized. Correlating logs, metrics, and traces “directly in your data lake” enables faster troubleshooting at much lower cost.

\

  • Observability Pipelines: To support the above tools and architectures, many teams employ an observability pipeline, a central routing system that ingests telemetry from various sources and outputs it to the desired destinations in the right format. We touched on OpenTelemetry Collector, which is one such pipeline. There are also vendor-neutral pipeline products. The pipeline concept is important for hybrid observability because it provides a middleware layer to aggregate and normalize data. An observability pipeline can collect data from existing agents, transform or tag it and then send it to multiple backends potentially a combination of a real-time monitoring system and a data lake. This centralization means you manage telemetry flow in one place instead of configuring dozens of integrations point-to-point. It can improve data quality, reduce noise and ease tool integrations in a heterogeneous stack. Essentially, the pipeline becomes part of your unified observability plane, abstracting away the differences between various sources. Modern pipelines even allow dynamic routing for instance, sending only high-priority traces to a costly APM service, while streaming all data to cheap storage for later analysis. This helps strike a balance between completeness and cost, as we’ll discuss in trade-offs.

In practice, building a hybrid observability architecture often means combining these elements. For example, you might instrument all apps with OpenTelemetry, use the Collector to funnel data to a Prometheus/Loki/Tempo stack for day-to-day monitoring and dashboards, and also export everything to a data lake for long-term retention and advanced analysis. The good news is that many tools are designed to integrate: Grafana can query data from both time-series databases and data lakes; OpenTelemetry can export to numerous endpoints. There are also all-in-one commercial platforms that offer metrics, logs, and traces under one roof though with potential lock-in costs, as noted later. Regardless of the path, the core idea is unification use consistent instrumentation, preserve shared identifiers across telemetry streams and converge data into as few panes or stores as practical. This lays the groundwork for the next section, which covers best practices to implement hybrid observability successfully.

Best Practices for Implementing Hybrid Observability

Adopting a unified observability strategy can be a significant undertaking. Here are some best practices and actionable insights to guide engineering and platform teams:

\

  1. Standardize Instrumentation Early with OpenTelemetry: Start by using OpenTelemetry (or similar open standards) across all new services and components. By baking uniform telemetry into the code (or via auto-instrumentation libraries), you ensure that every metric, log, and trace speaks the same language. This makes later integration much easier. It also future-proofs your data if all telemetry is OTel-compliant, you can switch backends or tools without re-instrumenting. Early adoption is key; retrofitting instrumentation into dozens of microservices later is a harder path. Encourage developers to use OTel APIs for custom metrics and spans so that domain-specific signals (like data pipeline metrics or business events) are also collected in the same plane.

    \

  2. Use a Central Telemetry Pipeline (Aggregator): Implement an observability pipeline to centralize the flow of telemetry data. A central pipeline lets you handle data scaling, transformations, and routing in one place. For instance, you can add common tags to all data as it passes through, enabling easy filtering and correlation later. You can also enforce consistency (such as timestamp formats or trace ID propagation) and drop low-value data globally (for example, sampling debug logs). The pipeline approach reduces duplication of effort rather than configuring every tool separately, you manage data handling in one layer. It also makes it simpler to incorporate new telemetry sources or send data to new destinations as needs evolve.

    \

  3. Correlate Data Through Consistent Identifiers and Metadata: To break down silos, you must link data at the meta-level. Use consistent labels, naming, and IDs across systems. A trace ID is the golden link between traces, logs, and metrics – ensure that trace IDs are included in your logs (many logging frameworks support adding them) and that metrics are tagged with high-level context like service or request identifiers when applicable. Also standardize on key dimensions such as service names, host names, user IDs, or transaction IDs so that a given value can be searched across all data sources. This consistency enables powerful queries like “fetch all logs and metrics for service=X during trace Y”. Many modern tools automatically do some of this, but it relies on you having injected that ID into the logs. Context propagation libraries from OpenTelemetry help ensure that as a request flows through microservices, a common context (with IDs) is carried along. Leverage those to maintain end-to-end visibility. Essentially, think about observability data as connected design your telemetry emitters to output information that will later allow joining the dots.

    \

  4. Unify Monitoring Across Layers (Infrastructure, Application, Data): Don’t limit observability to just one part of the stack. Best practice is to implement multi-layered monitoring combine infrastructure metrics, application performance metrics/traces, and data-level metrics into your observability platform.

    \

  5. Prioritize and Filter for Signal-to-Noise: One pitfall of collecting all the things is the risk of drowning in data. Effective observability doesn’t mean storing every log line forever or tracing every single request in full detail. A best practice is to focus on high-value telemetry and manage the rest smartly. This can involve setting retention policies, sampling traces and aggregating metrics. Modern observability pipelines and tools support these data management tactics. The goal is to reduce noise and cost without sacrificing critical visibility. One strategy is to analyze usage: identify which metrics and logs are actually queried or shown on dashboards, and consider dropping or archiving those that aren’t used. Another strategy is event filtering for instance, filter out known benign log messages before indexing, or exclude metrics for ephemeral throwaway environments. By tuning the data volume, you keep the observability platform lean and focused, which improves performance and lowers storage costs. Always test that your filters aren’t too aggressive you don’t want to accidentally cut out data that could be vital in a rare incident. A good practice is to route filtered-out data to cheaper storage (like a data lake) rather than deleting it outright, so you have the option to dig into raw data if needed later.

    \

  6. Choose Scalable, Interoperable Tools (Avoid Lock-In): When designing a hybrid observability solution, technology choices matter. Opt for tools that embrace open standards and can integrate with others. This avoids getting trapped with a single vendor. Vendor lock-in is a real concern – many have learned the pain of high switching costs after investing heavily in one monitoring product. To mitigate this, use open-source or open-format solutions where possible.

    \

  7. Foster an Observability Culture and Skills: Lastly, remember that tools alone won’t magically deliver value – your team’s practices are crucial. Encourage a culture where developers and SREs proactively use observability data in development and operations. Train teams on the unified observability platform so they know how to navigate from a dashboard metric to the relevant logs and traces. Develop runbooks that leverage the multi-signal nature of your tooling. Make sure to include observability considerations in the SDLC: e.g., as new services are built, they must include telemetry, and as new data pipelines are created, their key metrics are defined and collected. Integrating observability with DevOps processes (CI/CD) is also a best practice.

By following these practices, standardizing on open telemetry, centralizing its collection, correlating via common context, unifying across layers, managing data smartly, using open tools, and investing in team know-how, you’ll set a strong foundation for hybrid observability. Next, we’ll examine the trade-offs and challenges you should keep in mind as you pursue this path.

Conclusion

Hybrid observability is rapidly becoming a must-have in modern engineering organizations. As systems grow more distributed and layered, the ability to observe across all signals and all layers in one unified plane is critical for maintaining reliability and agility. By unifying metrics, logs, traces, and data-level metrics, teams gain a holistic understanding of their applications and infrastructure that simply wasn’t possible with siloed tools. This leads to faster troubleshooting, more informed decision-making (since you can see how infrastructure issues impact business KPIs and vice versa), and ultimately more resilient services.

Implementing hybrid observability is a journey – it involves cultural change, new tools, and architecture considerations – but the rewards are significant. The best results come when you embrace open standards (like OpenTelemetry) and design your observability platform to be scalable and flexible. We’ve seen that open-source stacks and data lake approaches can offer unified observability without the downsides of proprietary lock-in, giving organizations full control over their telemetry. Meanwhile, vendors are also evolving to provide unified solutions as customers demand integration across the board.

As you move forward, remember that observability is not a one-time project but an ongoing capability to nurture. Keep iterating on what data you collect, how you correlate it, and how you present it to users. Solicit feedback from your engineers – are the unified dashboards actually helping them solve issues faster? Are there noise issues to tune out or gaps to fill? Over time, you can refine the hybrid observability plane to be the central nervous system of your tech environment, where signals from anywhere are intelligently brought together into insights.

In an era where digital systems are the backbone of business, having this unified observability is akin to having X-ray vision into your infrastructure and applications. It empowers teams to be proactive, not just reactive – spotting patterns and anomalies that span multiple domains (infrastructure, application, data) and addressing them before they impact users. As one article noted, unified observability using open standards and distributed tracing is no longer an option – it needs to be the baseline for modern engineering teams. By following the practices discussed and being mindful of trade-offs, engineering and platform teams can implement hybrid observability to drive greater reliability, performance, and confidence in their systems. It’s an investment that pays off the next time you’re on-call at 3 AM and, instead of scrambling through five tools in panic, you have a single, clear pane of insight telling you exactly what’s wrong – and how to fix it.

\