This repository contains the project submissions for the Lugano Plan B Pubky Hackathon.
Purpose: stress-test Pubky Core (SDK) by building real, runnable outputs. Expose friction, validate design assumptions, and ship usable demos.
Repository: pubky/hackathon-2025
-
Fork the repository.
-
Clone your fork locally.
-
Create a subfolder at repo root for your project:
- Use team or individual name, no spaces. Prefer
kebab-case. - Example:
super-team/orjane-doe/. - If you want your project to be a stand alone repository. Feel free commit it here as a gitsubmodule
- Use team or individual name, no spaces. Prefer
-
Build only inside your subfolder.
-
Include README.md, MIT LICENSE, and all required assets to build/run.
-
Open a Pull Request from your fork to the main repo when done.
Suggested Git hygiene:
- One PR per project folder.
- No history rewriting after presentations begin.
- Keep PR scope to your folder.
| Phase | Date | Time | Activity | Notes |
|---|---|---|---|---|
| Pre-event Prep | Oct 6–13 | - | Post ideas on Slack | Gather minimal feedback; cut weak ideas |
| Team Formation (sheet) | Oct 6–13 | - | Announce teams (pairs ideal) | Teams confirmed before travel |
| Kickoff | Oct 21 | 1 h | Overview | Goals, tools, scoring, prizes |
| Day 1 | Oct 22 | ~6–8 h | Build session | Breaks as needed |
| Day 2 (AM) | Oct 23 | 30–45 min | Quick team updates | Progress, pivots, blockers |
| Day 2 | Oct 23 | ~6–8 h | Build session | - |
| Day 2 (PM) | Oct 23 | 1–1.5 h | Final presentations | Show deliverables |
| Day 2 (PM) | Oct 23 | ~1 h | Voting + prizes | Popular vote, scoring, awards |
| Plan B (if needed) | Oct 24 AM | 0.5 h | Announce winners | Only if delayed |
During the broader meetup/conference you may continue polishing, documenting, or hardening. Key demos may be promoted to roadmap items and require a proper wrap-up.
- Runnable demo: live website (e.g. github page), desktop binary, CLI, APK, or equivalent.
- Source code under your subfolder with reproducible build steps.
- README.md: what it does, why it matters, setup/run steps, architecture sketch.
- Feedback form (mandatory): frictions, surprises, failures, misunderstandings, and time-wasters. Feedback form here.
- License:
MITfile in your subfolder. - Presentation (2–3 min outcome, +2–3 min architecture if useful).
- PR to the main repo from your fork. Do not commit tokens or secrets!
Primary materials:
Rust:
- Crate: https://crates.io/crates/pubky/0.6.0-rc.6
- Docs: https://docs.rs/pubky/0.6.0-rc.6/pubky/index.html
- Examples: https://github.com/pubky/pubky-core/tree/main/examples/rust
Javascript:
- NPM package: https://www.npmjs.com/package/@synonymdev/pubky/v/0.6.0-rc.6
- Examples: https://github.com/pubky/pubky-core/tree/main/examples/javascript
Two kind of development environments:
Rust
You can embed an ephimeral testnet using the pubky-testnet crate for full local development.
cargo add pubky-testnet@=0.6.0-rc.6Check out examples/testnet to learn how to create from a tiny app performing signup/put/get against an ephemeral local testnet.
You can also run it as a separate process by:
cargo install pubky-testnet --version 0.6.0-rc.6
pubky-testnet
# then instantiate the sdk facade with Pubky::testnet()Javascript
Run a local testnet:
# Requires the rust toolchain. Install with:
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install pubky-testnet
pubky-testnetJust make sure you always instantiate the testnet version of the SDK by
const pubky = Pubky.testnet();Check out examples/testnet to learn how to create from a tiny app performing signup/put/get the local testnet.
-
Staging homeserver public key:
ufibwbmed6jeq9k4p583go95wofakh9fwpp4k734trq79pd9u1uy -
Staging homeserver requires invitation codes to create users. You can generate invitation codes by running:
curl -X GET \
"https://admin.homeserver.staging.pubky.app/generate_signup_token" \
-H "X-Admin-Password: voyage tuition cabin arm stock guitar soon salute"- Use Pubky SDK for Pubky-supported features.
- Collaborate in person during build days.
- One project per team; teams ideally of two.
- No self-voting. Violations mean disqualification.
| Criteria | Description | Weight |
|---|---|---|
| Complexity | Original, extensive, or technically deep use of Pubky to achieve goals | 15% |
| Creativity / Practicality | Goes beyond “Hello World”; novel and broadly useful | 15% |
| Readiness | Boolean. Live, interactive demo usable without cloning | 10% |
| Team Presentation | ~5 min: what, why, learnings, Pubky’s role | 15% |
| Feedback | Clear documentation of process and friction points | 15% |
| Popular Vote | Participants vote; self-vote = disqualification | 15% |
| AI Vote | Average of ChatGPT and Claude to: Rate this project from 0 to 10 {all codebase} |
15% |
| Boss’ Vote | John’s personal vote | Tie-breaker |
Total weighted points = 100. Tie resolved by Boss’ vote.
- 1st: Amazon vouchers $500 split across team + Pubky Champion title + Pubky Crown
- 2nd: Amazon vouchers $300 split across team
- 3rd: Amazon vouchers $200 split across team
- Most Innovative Project: Amazon vouchers $100 split across team
- Do not commit secrets, tokens, or private packages.
- Verify
.gitignorebefore first commit. Usegit statusto confirm no sensitive files are tracked. - Keep dependencies minimal and documented.
- Provide deterministic build steps.
- ~5 minutes per team.
- Show the live demo first, then architecture and key Pubky flows.
- Highlight frictions and proposed fixes if any.
Happy hacking!