PlebLab / Top-Builder

Welcome to PlebLab's Startup Day, a dynamic gathering for Bitcoin startups, featuring the Top Builder competition as its centerpiece. This event is a hub of activity, offering builder sessions, workshops, announcements, and speaker panels, all aimed at fostering growth and learning within the Bitcoin community.
https://pleblab.dev
7 stars 0 forks source link

[Top Builder 2024]: hodlbod (Coracle_R2) #21

Open staab opened 5 months ago

staab commented 5 months ago

🏗️ Top Builder 2024 Application Form to track progress through Round 1 - 3 ~ Currently in Round 1

📝 Instructions

  1. Only complete this form if you have been chosen for Top Builder, by PlebLab.
  2. Provide detailed information to assist the judges in evaluating your project.

🧑‍🤝‍🧑 The Team

💡 The Idea

📚 Additional Information

📌 Submission Type

🚀 Current Project Progress

⏳ Round 1 Milestone

📝 Submission Complete

📅 Top Builder Program Structure

Registration Opens: Monday, December 18, 2023

Round 1: January 13 - February 10, 2024

Round 2: February 10 - 24, 2024

Round 3: Starting February 24, 2024

Final Round at Startup Day: March 14, 2024

staab commented 5 months ago

Version 0.4.1 released

Changelog and announcement

This was mostly a maintenance release, as lots of things continue to come up, although I did manage to check off items 1 and 3 of my milestone 1 goals.

One big shift in focus was back toward continued refinement of closed groups due to the interest of a potential pilot customer. This is the main stated goal of Coracle, so it's worthy of the attention I'm giving it. I'm in the midst of fixing several bugs related to relay selection and NIP 44 encryption support (or lack of it). I'm also exploring the creation of a new iteration of Coracle for the purpose of a white-labeled multi-tenant deployment. Expect more on this next round.

staab commented 5 months ago

Proxies considered harmful

Item number 5, "Write first version of "smart" relay proxy that handles NIP 65 transparently" was a stretch goal for this round. I started writing it using khatru (you can see my progress here), but have abandoned the project due to some timely conversations, one of which you can find here.

The summary is that proxies have the ability to reduce bandwidth requirements, and implement some routing logic on behalf of clients, but they have two problems:

staab commented 4 months ago

Final Milestone 1 Update

I did manage to integrate NIP 46 this week, which took some doing and help from Pablo and Jeff, but it's done (sort of, the spec needs work and will likely change soon). I also re-designed the onboarding flow to put keys and relays in there place, and help people choose who to follow based on topical lists. I'm really happy with the result!

Here's a video summary of the whole milestone:

https://coracle.us-southeast-1.linodeobjects.com/coracle-topbuilder-1.mp4

The one thing left to do is to record the onboarding videos. I would do it tonight, but I'm already saying um way too much. I'll hit that early tomorrow.

staab commented 4 months ago

Round 2 Milestone Goals

The focus this round will be on making Coracle work for platforms like Phantom Power Music, churches (which I have another pilot customer interested in doing), and small groups (like my local bitcoin meetup). The big part of this is implementing access controls on selected relays based on either an external data source (for platforms) or based on group membership. This will require a custom relay implementation. The other part of this is simplifying onboarding for new users through configurable membership auto-approvals and onboarding links with access control baked in.

In check-list form:

Some other goals not directly related to the main work include:

You can see the full issue list here

staab commented 4 months ago

2.1 Update

This week went great. I learned a chunk of Go so that I could hack on fiatjaf's khatru relay in order to create a relay that can enforce my custom auth policies. This includes simple relay admission, as well as NIP 87 group-based admission, in which the relay uses a member key to decrypt messages as they come in and keep the member list updated.

I also started working on invite links — the front-end is done, next week I'll add support to my custom relay to handle the invite codes to reduce the friction involved in joining a closed relay or group. I'll also draft a NIP to allow clients to send these claims using a new event kind.

Other things:

Additionally, and not mentioned in my goals, I drafted a NIP after a conversation with one of my pilot clients, who would like to find a way to get a feed of music in their instance of Coracle.

Next week I'll be finishing signup links, and doing design-related updates. I have contracted a local designer who is going to help me with the marketing copy. He'll have something to me by Friday, so the copy might not be completely done by then, but the ball is now rolling.

Here's a quick demo of what I've gotten done

staab commented 4 months ago

2.2 Update

This week I managed to check everything off my list, and demo the first ever Coracle "platform" deployment to a pilot customer. The way I'm approaching that is to rent a single VPS and set up multiple instances of coracle/triflector behind a single nginx reverse proxy. This was my stretch goal for this week, and it happened ✅

A quick summary of what I did this week:

Here's a quick demo of the progress this week