Homepage screenshot

Keeper DApp — Case Study

A Google Keep–style decentralized note app built using a Motoko backend canister and a React frontend.
Lightweight, private, and fully on-chain.


Background / Why This Matters

Most note-taking apps rely on centralized databases.
I wanted to explore what happens when:

The goal was to see how far a small, fast, fully decentralized UX could go.


Project Goal

Build a simple, private, low-latency note app where:


My Role

I built the entire project:


Architecture Overview

Frontend

Backend (Motoko)

Authentication


How It Works (Flow)

  1. User creates or edits a note.
  2. Optimistic UI updates instantly (no waiting).
  3. Notes are added to a write buffer.
  4. Buffer flushes periodically → Motoko canister writes.
  5. Notes stored in stable memory, remain across upgrades.

This flow makes the app feel like a central server exists — even though it doesn’t.


Key Challenges & Solutions

1. Cycle Cost & Write Efficiency

Problem:
Frequent writes to the canister were expensive and unnecessary.

Solution:

Why it mattered:
Made the app practical and cheap to run.


2. “Certificate Not Found” in Local Development

Problem:
Local agents on the IC require fetching a root key.
Without it, calls fail and debugging becomes painful.

Solution:
Conditional initialization:

if (process.env.DFX_NETWORK === "local") {
  const agent = new HttpAgent({ host: "http://localhost:4943" });
  await agent.fetchRootKey();
  dkeeper_backend = createActor(canisterId, { agent });
} else {
  dkeeper_backend = createActor(canisterId, { agent: new HttpAgent() });
}
Impact:
Local DX became smooth and predictable.

3. Stable-Structure Design


Outcomes / Learnings

Even though this project is private, it taught me:

This project became a strong foundation for future decentralized work.


Final Thoughts

Keeper DApp helped me understand what “small, decentralized apps” really feel like to build. It’s simple, but it taught me more about on-chain persistence and cycle-aware design than much larger projects.