All projects

Mycelium / Custom tools · Community coordination

Find the people behind a shared need.

Mycelium explores a practical community question: who can help, what is happening nearby in your network, and how do you make the first connection?

Independent full-stack prototype · Built by Kevin Manner

The situation

Useful skills and resources are often difficult to find even within a community. A list of profiles misses the context: what someone offers, what a group needs, and the relationships that could make an introduction relevant.

An example of a custom application that gives related people, groups, events, and messages a shared structure.

One concrete example

Make an offer and find a relevant group.

  1. Input

    In the fictional sample community, add the offer “Bicycle repair for community events” to a profile, then search organizations for “repair”.

  2. What happens

    The preview stores the offer in its temporary profile data and filters the sample organizations by the search term.

  3. Observable result

    The next profile read includes the new offer, and the organization search returns Repair Cafe. Both behaviors have dedicated preview checks.

  4. Human review

    A visitor can inspect the profile and group details to decide whether the connection is relevant. This search is separate from the full stack’s semantic matching.

The preview uses fictional, in-memory data and resets on refresh. Its predefined connections and scores are illustrative; this example does not demonstrate live matching or real community outcomes.

Read the preview behavior checks
Mycelium sample community homepage with events, messages, connections, profiles, and organizations.
The no-account preview uses fictional people, groups, events, and example connections.

What I built

I designed and built this independent full-stack prototype with AI-assisted development. My work connects the product model and user journeys to a Next.js interface, FastAPI services, relational data, graph discovery, and a sample environment that can be explored without creating an account.

Where it stands

The sample preview demonstrates interactions with fictional, temporary data; its match scores are illustrative. The full stack is intended for local use while deployment controls are developed. Production scale, abuse resistance, and real-world matching relevance have not been established.

The next useful improvement

Test whether people find the proposed connections useful, and refine the first-contact experience using that feedback before expanding the platform.

Technical decisions, workflow, and verification

Next.js / TypeScript · FastAPI · PostgreSQL / pgvector · SQLAlchemy · NetworkX

Follow the workflow

  1. Describe an offer or need

    People, organizations, and events share a model for what they offer and what they are looking for. For example, a member offers bike repair while a community event needs a repair volunteer.

  2. Discover relevant connections

    The application supports semantic matching between offers and needs, alongside discovery influenced by relationship distance. Sample preview connections are predefined.

  3. Start with a shared context

    A first message can begin through a group or event. Membership, participation, and messaging rules give that interaction a place and a purpose.

  4. Follow the relationship

    Profiles, groups, events, messages, and network views provide different ways to understand the same connected community data.

Decisions and tradeoffs

One database, several kinds of relationship

PostgreSQL stores relational records and vector data; bounded recursive queries support graph discovery. Shared transactions simplify the prototype, while larger graphs would require workload and query testing.

Local context instead of a universal score

Relationship distance and individual visibility choices influence discovery. The design avoids a single global reputation score; graph proximity is context, not proof of trustworthiness.

A preview with a clear boundary

A separate sample mode makes the interface easy to inspect with fictional data. A refresh resets changes. Database-backed authentication and real embedding behavior belong to the full local stack.

Explore the evidence

Explore the sample community locally

The repository includes a no-account frontend preview, a short tour, and synthetic data. It needs no API keys, database, or email account.

Open the preview instructions

Follow the data and service design

Public source covers typed nodes and relationships, membership, messaging, graph-distance discovery, and vector matching. A Compose setup provides the database-backed demo and local email inbox.

Explore the source

Review the recorded checks

The September 4, 2026 verification record reports 120 backend tests and 4 preview behavior tests passed, both frontend build modes passed, and a fresh Compose stack accepted the synthetic seed.

Read verification notes