Introducing Frames

What is Frames?

Frames is a video sharing app for the SafeNET. You can find its home on github here: https://github.com/Frames-Proj/frames. It is implemented as an electron app and is built on the Frames Protocol. Both the app and the protocol are designed to encourage connectivity between videos so that users can easily traverse a web of videos. The main way that Frames does this is by structuring videos in a reply tree. Users are encouraged to reply to existing videos and engage in a conversation.

Can I see Frames in Action Right Now?

Sort of. We’ve been testing frames against a pinned version of the mock launcher (which you can get here: https://github.com/Frames-Proj/mock-safe-launcher). In the early days we were able to test against the live network a bit, but we have not been able to test the full-scale app against a live network. I’ve made a short demo video showcasing the capabilities of frames, which you can find here: https://www.youtube.com/watch?v=avbeVxxTLPI. Everything you see in the video is done using the NFS, DNS, structured data, appendable data, and data-id APIs.

If you just want to muck about with Frames yourself, you can clone the mock-safe-launcher repo listed above and use the provided scripts to build yourself a launcher. Then the following steps should get you to the point of playing around with frames

In one terminal, run the run.bash script from the mock-safe-launcher repo. Wait for the launcher to pop up (it may take a while).
In another terminal do:
git clone https://github.com/Frames-Proj/frames
cd frames/app && make setup && make
npm start

Now play around.

What Still Needs to be Done?

Lots of stuff! The most obvious is migrating the backend over to the new authenticator API, which we plan on doing over the summer. Beyond that, the user-profile stuff needs more polish and thought, and we need to think harder about attack scenarios. We would really love to see contributors from the community pitch in to get this done. I can see Frames being a strong early app for the SafeNET, and I want to see it get done.

How close to ready is Frames?

If it were not for the need to migrate to the authenticator, I would say that Frames is feature complete. There are still a few bugs that would need to be worked out before a release, and we would need to do a beta cycle or two where we ask folks to break the protocol. Obviously, Frames can’t be released until the network is released and Frames itself gets migrated to the authenticator workflow.

How can I start hacking on Frames?

The app code lives in the app directory. Our hand-rolled SAFE client lives in db/low-level, but you probably won’t have to touch that. The app itself is built with React and written in typescript, both of which are pretty easy to pick up if you have programming experience. The Makefile in the app directory contains several useful commands for building the app. I usually run make watch while I’m editing code so that any file changes trigger a recompile automatically. All of the app code lives in app/client. The protocol code as well as general utility code lives in app/client/ts while the UI code all lives in app/client/components.

It can be a little hard to find your way around the git repo, so I’m happy to hop on a video call to help anyone who is interested in getting set up for frames development.

Why Video Sharing?

Video sharing seems like a fairly simple thing that people have been shown to want.

Will Other Apps be able to use the Frames Protocol?

It will be a little tricky to do this right off the bat. The code that implements the Frames Protocol is fairly baked into the app itself, but our long term plan is to release a separate {type,java}script library that others can use to interact with Frames data directly. I’m not sure how much this has been discussed on the forum, but it seems obvious to me that one of the strongest aspects of the SafeNET is the fact that all apps share the same data store so easy interaction is both easy and inevitable. This is a huge feature of the SafeNET from an app perspective, and we definitely plan to support it.

Do you have any ideas about the app development experience?

Thanks for asking! I plan on making a different thread to talk about my wishlist as an app developer, and trying to start working towards a list of best practices for creating SAFE apps.

How Much Time Can You Spend on Frames?

I have been working on Frames on the train to work for the last couple of days, but I have not have much time to spend on the forums. I plan on continuing to work through the summer, but I may be fairly show in looking at the forum and responding to questions. I will try to find the time to run through and answer a bunch of questions all at once. My sponsors know a lot about my vision for the project, and I’m sure they can speak to most of the questions anyone could have.

Thanks and Apologies

I would like to thank the project sponsors @Nigel and @BIGbtc for lending their support through the project so far. I would also like to thank @whiteoutmashups for hoping on a few video calls to talk about the app with me. I would also like to apologies to the same folks for making this post so late (to make up for it there are new features as you can see in the linked video when I play around with the ‘me’ and ‘history’ pages).

37 Likes

Absolutely awesome stuff here Ethan and Abdi snd all the Tufts team. Very honored to have participated with you all. I see big things from you guys. !! Congrats.

6 Likes

All without an ICO :astonished: 10 points just for that :grin:
Kidding aside, looks great cant wait to see it live!

12 Likes

I’m definitely opposed to an ICO. It is going to be developed as an open source project, and I think too much focus on money is just counterproductive. To make this happen we have to write code, too much of anything else just gets in the way.

16 Likes

@dirvine look at how your vision has inspired others! This project and everyone who works on it bring us all closer to each other and what we all believe in collectively. But to address this fantastic post.

I hope now is an okay time to open up the idea of some cross pollination. I was just listening back to some safe crossroads podcasts with @Seneca and at the time Harmen said something along the lines of open sourcing the decorum protocol once things were further along with Safe. Mutable data is right around the corner now. Speaking with @edapa previously, he had shown interest in using decorums web of trust model for moderation etc in Frames. This would greatly increase the apps usability and success.
I thought it would also be interesting to suggest to Harmen that further down the road as folks contribute to Frames and it matures that the Frames protocol could be used on @Seneca’s forum application for imbedded videos in people’s posts :slight_smile: I wonder if others would see the beauty in this. I think it would really give the safe networks app ecosystem a really polished feel as the alphas roll out.

I hope in the name of open source projects others help to contribute to Ethan, Abdi, Nicholas, Ian, and Grahams hard work. This app is so cool to see running and the Tufts team did an amazing job. I’m rooting for Frames!!!

14 Likes

Wow nice to see a SAFE Network specific app, especially a video sharing app.

7 Likes

Well done @edapa and all at Tufts who worked on this.

How wonderful :slight_smile: what began as a request for help from Tufts University students wanting to build an app on SAFEnetwork for their course has been running in the background and is pretty much ready for the next test network. I hope it’s not too hard to port to the new API because I want to see it live :slight_smile:

Really great to see this, and high five to @Nigel, @BIGbtc and @whiteoutmashups for helping. The Project SAFE community shines again :slight_smile:

Wish I had time to play but I’m buried in DIY and getting ready for a move. If anyone wants to post some screen shots I’d love to see them.

10 Likes

11 Likes

Thanks @4M8B, looks nice. I must try and find time to play! But… the swans opposite are hatching today so I’m doing ‘Spring watch’ whenever I have a break :hatching_chick: :grin:

4 Likes

Very very glad to see you bring frames into the light! Have been playing with it for a while and will be great to have more eyes on it now. Looking forward to helping everywhere I can!

Will be a great example app for the community, and I hope it shows people how ready things are, and how possible it is to create things even at this early point in the network

Go Frames& it’s dev team!! Hope this inspires others working in the dark to go public with their SAFE projects! The more people working on a vision, the better!

10 Likes

Thanks @Nigel, I know we have talked about it one sponsor calls a bunch, but I really strongly believe that app interaction is going to be one of the strongest selling points of the SafeNET. Hackers are going to try to abuse our protocols all the time, and we should design around preventing that, but at the same time we have so much to gain from helping other people to use our app protocols.

12 Likes

I’m so glad to see someone else playing around with Frames!

9 Likes

Ethan, would you or the team like to blog a little about the project some time. I’m sure the community would like to hear about your process, learnings, challenges, solutions, or maybe just bits about what each of you contributed, enjoyed etc? Various takes could be interesting and maybe as a guest post on the @MaidSafe blog! :slight_smile:

6 Likes

Anyone here who has Twitter take the opportunity to blast some positive words about Frames :slight_smile: and if you can fit it in also mention the call to arms in helping code it. Glad @4M8B and @whiteoutmashups are digging in but let’s get more folks in on this. If it helps, I double dog dare you all :grin:

5 Likes

So said I can only like your post once Ethan, want to give it at least 100 likes for sure ;-). I like the openness and the spirit behind the project, also watched the video and hope to touch it in the coming days. Keep up the great work!

On it!

4 Likes
9 Likes

Hi @happybeing, I was thinking of doing a series of this-week-in-frames posts in the style of the this-week-in-rust posts that the rust core team publishes (I guess these are also in the style of safe dev updates). I have lots of ideas about good practices for safe network app design and thoughts about the development experience overall. I could include a section talking about some frames development topic in each weekly update. I think just posting here would make the most sense because the Safe community hangs out here and the interested people will be able to see the info quickly.

On an unrelated note, I’ve really enjoyed your contributions on this forum. It has been great to have a technical voice to listen to here. If you are at all interested in contributing to Frames, I would be super willing to help you get set up (though it may take me a while to figure out a good time).

15 Likes

That sounds brilliant Ethan, please post away!

As for me, I’m not able to offer time for now getting ready for a boat move/trip (I live on a canal boat) but maybe there are ways I can help out? I’m still active in the forum as you can see, moderate the reddit and do a bit using my social networks. When the API is ready I’ll be porting my demos to that so just not much time :slight_smile:

I liked the Frames video demo posted on reddit!

2 Likes

Sounds good, anyone remember when I used to make these for SAFE? :smiley: was fun

I still have a few templates I made for these if u want

6 Likes

I totally understand if you don’t have the bandwidth. Even just being available to message with me on whatsapp or something about figuring out the new API to share your experience getting it to work would be great.

2 Likes