Inspiration: The First Message Is the Hardest

I founded a coding club, and I noticed the hardest part isn't the code. It's the first message: "Does anyone want to work with me?" Members stay quiet because they don't want to post a phone number or personal details in a group chat; they don't know who has matching skills, and opportunities get lost in the chat scroll. I wanted a place where asking for help feels as easy as looking at the night sky.

A Sky Where Every Post Is a Star

Polaris is a live star-sky for a coding club. A member writes a "signal" like they would text a friend, and it becomes a star on a shared sky. When someone answers, a gold line connects the two stars. An AI keeper:

  • cleans every post and removes personal details before anything is stored
  • suggests teammates based on skills and goals
  • finds opportunities (internships, hackathons) and checks links and deadlines, and members approve each one before it goes on the sky
  • handles unsafe messages by posting nothing and showing a calm card with 911 and 988

How the Sky Is Built

  • Creao agent on Claude Sonnet 5.5 does the core work: cleaning, safety check, teammate matching, and opportunity search. Every post goes through it.
  • SpacetimeDB is the live backend. Subscriptions push new stars and lines to every member instantly, and reducers enforce the rules on the server (members only, 200 characters, you can't answer your own signal, two people can't answer the same star at once).
  • React + Vite for the sky and the layered panels, with a small Node keeper server that holds the Creao API key so it never reaches the browser.
  • Figma [Make, Design, and Slides: write only what you actually used] for the prototype and the workflow.

When the Sky Got Cloudy

  • The agent's answers sometimes held several JSON blocks, so I built a parser that finds the real result.
  • Creao rate-limited me with 429 errors, so the server now waits and retries.
  • Opportunity searches returned expired programs, so the agent gets today's date and the server drops anything dated in the past.
  • Keeping the API key safe in a public repo, which meant a separate server and a gitignored secrets file.

Stars I'm Proud Of

A complete safety flow built in one weekend, working solo: personal details removed before storage, a crisis gate that posts nothing, a report button, and humans approving every opportunity. It runs end to end with a real agent and a live shared database.

What the Stars Taught Me

An AI agent is only as useful as the rules around it. Most of the work was not the AI call but making its output safe, current, and reliable. I also learned how much a live database like SpacetimeDB simplifies a shared experience.

Charting the Next Constellation

Real sign-in with SpacetimeAuth and club roles, hosting the keeper so the club doesn't depend on my laptop, an admin view for reports, and a separate sky for any club that wants one.

Built With

Share this project:

Updates

Submission history