> ## Documentation Index
> Fetch the complete documentation index at: https://nmem.guoxudong.io/llms.txt
> Use this file to discover all available pages before exploring further.

# From the community

> Community articles and original X posts about building a knowledge map with Nowledge Mem.

export const CommunityTweet = ({id, author, handle, locale = "en"}) => {
  const mount = useRef(null);
  const [status, setStatus] = useState("loading");
  useEffect(() => {
    const host = mount.current;
    let disposed = false;
    let generation = 0;
    let timer;
    if (!window.__communityXWidgets) {
      window.__communityXWidgets = new Promise((resolve, reject) => {
        if (window.twttr?.widgets) {
          resolve(window.twttr);
          return;
        }
        const script = document.createElement("script");
        script.src = "https://platform.twitter.com/widgets.js";
        script.async = true;
        const timeout = setTimeout(() => {
          script.remove();
          reject(new Error("X widgets timed out"));
        }, 15000);
        script.onload = () => {
          clearTimeout(timeout);
          if (window.twttr?.widgets) resolve(window.twttr); else reject(new Error("X widgets unavailable"));
        };
        script.onerror = () => {
          clearTimeout(timeout);
          script.remove();
          reject(new Error("X widgets unavailable"));
        };
        document.head.appendChild(script);
      });
      window.__communityXWidgets.catch(() => {
        delete window.__communityXWidgets;
      });
    }
    const widgets = window.__communityXWidgets;
    let theme = document.documentElement.classList.contains("dark") ? "dark" : "light";
    const render = () => {
      const version = ++generation;
      clearTimeout(timer);
      setStatus("loading");
      const target = document.createElement("div");
      host.replaceChildren(target);
      const current = () => !disposed && generation === version;
      timer = setTimeout(() => {
        if (current()) setStatus("unavailable");
      }, 20000);
      widgets.then(twitter => {
        if (!current()) return;
        return twitter.widgets.createTweet(id, target, {
          theme,
          lang: locale === "zh" ? "zh-cn" : "en",
          dnt: true,
          width: 550
        });
      }).then(element => {
        if (!current()) return;
        clearTimeout(timer);
        setStatus(element ? "ready" : "unavailable");
      }).catch(() => {
        if (!current()) return;
        clearTimeout(timer);
        setStatus("unavailable");
      });
    };
    render();
    const observer = new MutationObserver(() => {
      const next = document.documentElement.classList.contains("dark") ? "dark" : "light";
      if (next !== theme) {
        theme = next;
        render();
      }
    });
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => {
      disposed = true;
      clearTimeout(timer);
      observer.disconnect();
      host.replaceChildren();
    };
  }, [id, locale]);
  return <div className="community-tweet">
      <div ref={mount} className="community-tweet-embed" />
      {status !== "ready" && <div className="community-tweet-fallback">
          <span className="community-tweet-author">{author} <span>@{handle}</span></span>
          <p role="status">{status === "loading" ? locale === "zh" ? "正在加载 X 原帖…" : "Loading the original X post…" : locale === "zh" ? "暂时无法加载，可前往 X 阅读原帖。" : "This post could not load. Read the original on X."}</p>
          <a href={`https://x.com/${handle}/status/${id}`} target="_blank" rel="noopener noreferrer">
            {locale === "zh" ? "在 X 查看原帖" : "View original on X"} ↗
          </a>
        </div>}
    </div>;
};

<div className="community-hero">
  <p className="community-eyebrow">Shared experiences · Not a lesson</p>
  <h1 className="community-display">How people build their knowledge map with Nowledge Mem.</h1>
  <p className="community-lede">Explore in-depth articles and everyday experiences shared on X.</p>
</div>

<div className="community-jump-links" role="navigation" aria-label="Community sections">
  <a href="#articles">Articles <span>03</span></a>
  <a href="#x-posts">X posts <span>06</span></a>
</div>

<section className="community-section" aria-labelledby="articles">
  <div className="community-section-heading">
    <h2 id="articles">Articles</h2>
    <p>Setups, workflows, and lessons from long-term use.</p>
  </div>

  <div className="community-articles">
    <a className="community-share-card" href="https://x.com/guoxudong_/status/2092604004245332474" target="_blank" rel="noopener noreferrer">
      <span className="community-share-source"><Icon icon="newspaper" /> X article</span>
      <span className="community-share-author">Xudong Guo · Chinese · Aug 26, 2026</span>
      <span className="community-share-title" role="heading" aria-level="3">Stop making agents start over: build a shared memory hub with Nowledge Mem</span>
      <p className="community-share-excerpt" lang="zh-CN">把 Mac mini 作为常开的 Nowledge Mem 中枢，让 MacBook、Linux 服务器、手机和接入的 Agent 使用同一份长期记忆。</p>
      <span className="community-share-footer"><span>x.com</span><span>Read article <span aria-hidden="true">↗</span></span></span>
    </a>

    <a className="community-share-card" href="https://x.com/HaraAmami/status/2091523661077561348" target="_blank" rel="noopener noreferrer">
      <span className="community-share-source"><Icon icon="newspaper" /> X article</span>
      <span className="community-share-author">Amami Hara · Japanese · Aug 23, 2026</span>
      <span className="community-share-title" role="heading" aria-level="3">Project memory for AI, seen by the world's first user</span>
      <p className="community-share-excerpt" lang="ja">私は Nowledge Mem の世界初のユーザーだ。…分断された記憶は、長期プロジェクトにおいては記憶がないのとほとんど変わらない。</p>
      <span className="community-share-footer"><span>x.com</span><span>Read article <span aria-hidden="true">↗</span></span></span>
    </a>

    <a className="community-share-card" href="https://x.com/hbyxabc/status/2093326775862599708" target="_blank" rel="noopener noreferrer">
      <span className="community-share-source"><Icon icon="newspaper" /> X article</span>
      <span className="community-share-author">HB · Chinese · Aug 28, 2026</span>
      <span className="community-share-title" role="heading" aria-level="3">What should a memory product look like in the agent era?</span>
      <p className="community-share-excerpt" lang="zh-CN">「数字记忆」会成为下一代知识工作的基础设施。每个人都应该尽可能早地搭建自己的数字记忆系统。</p>
      <span className="community-share-footer"><span>x.com</span><span>Read article <span aria-hidden="true">↗</span></span></span>
    </a>
  </div>
</section>

<section className="community-section" aria-labelledby="x-posts">
  <div className="community-section-heading">
    <h2 id="x-posts">X posts</h2>
    <p>Original posts, with their own words, images, and videos.</p>
  </div>

  <div className="community-posts">
    <CommunityTweet id="2024709980474224830" author="海拉鲁编程客" handle="hylarucoder" locale="en" />

    <CommunityTweet id="2087498315478991214" author="Asada-Yuki" handle="AsadaYuki_Art" locale="en" />

    <CommunityTweet id="2088491404326801734" author="Amami Hara" handle="HaraAmami" locale="en" />

    <CommunityTweet id="2094954769374978414" author="Xudong Guo" handle="guoxudong_" locale="en" />

    <CommunityTweet id="2095446709790982626" author="Otter" handle="otterpal24" locale="en" />

    <CommunityTweet id="2098395942001238493" author="YAYOI の 夢" handle="Yayoi_no_yume" locale="en" />
  </div>
</section>

<p className="community-foot">Written about your own setup or experience? Share it on <a href="https://x.com/NowledgeMem">X</a> and it may join the list. · Back to learning → <a href="/essentials">Essentials</a></p>
