Giter Club home page Giter Club logo

mumblr's Introduction

mumblr: blogging, decentralized.

Micro-blogging in the vein of tumblr. Remember tumblr? Me too. A simpler age of blogging. Longer than a tweet. Shorter than a Medium post. Lighter. More ephemeral. More fun. On the surface, mumblr is "self-hosted" microblogging in the spirit of tumblr. But beneath the surface lie some surprises...

Conceptually, mumblr consists of two components:

  • A User Interface for writing blog posts in markdown and storing them to IPFS.
  • A static site generator that reads blog posts from IPFS, generates a static website, and writes that site to IPFS.

What makes mumblr different from other blogging platforms?

  • No user accounts. Rather than creating an account with a username and password, mumblr asks for your permission to access to write and read data on your behalf. This permission is secured by a private key that resides in your browser and never leaves your local machine; all requests go directly from your browser to the IPFS network.
  • You own your data. The mumblr user interface requests access to storage in IPFS that belongs to you and is secured by your keys. This storage is accessible by your keys using other IPFS-enabled applications such as Fission Drive.
  • Bring your own client. As a consequence of You own your data, you can edit the data mumblr creates directly, bypassing mumblr's user interface. For example, you could use a CLI tool to place additional markdown files in IPFS and mumblr will see them the next time you load the user interface.
  • No backend. Mumblr is a simple front-end application. There are no servers. Every action is initiated by the front-end application loaded in your browser. The storage layer is backed by IPFS.
  • Separation between content and presentation. Mumblr's conceptual architecture separates the "writing" process from "site generation." Technically, each function can be used independently. You can use mumblr's UI to write posts. Or not. You can use mumblr's static site generator to generate the blog. Or not. They go together like peanut butter and jelly, but each is delicious on it's own.

How mumblr works

Mumblr inherits much of the above functionality from Fission's WebNative library. WebNative handles a lot for mumblr, letting mumblr focus on it's unique function: the user interface for writing and the static site generation. Here are a few things handled by WebNative:

  • authentication with WebCrypto and UCAN: the creation of keys in the user's browser and the delegation of permissions from the user to mumblr via UCANs.
  • storage with WNFS: creating and managing a filesystem for the user in IPFS, wrapping IPFS with some handy methods for reading and writing to that file system.

WebNative also provides an app publishing system, but I'm not currently taking advantage of that.

Watch me build it

Livestream of building mumblr

I've been livestreaming most of my work on mumblr. You can view past livestreams in this playlist.

FAQ

Q: What's IPFS?

A: IPFS stands for Interplanetary File System. It's a distributed, peer-to-peer, content-addressed storage protocol. If you want a simple analogy, it's BitTorrent meets the Internet Archive. Going a bit deeper, it's a powerful and future-proof way of storing content on the web.

Q: Is the "m" in mumblr capitalized or lowercase?

A: Mumblr prefers to be capitalized when at the beginning of a sentence. When occurring within a sentence, mumblr prefers to be lowercase.

mumblr's People

Contributors

jessmartin avatar luiscmartinez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

mumblr's Issues

Failed to register/update a ServiceWorker for scope ‘https://auth.fission.codes/’

When I try to authenticate via fission, I get a spinning yellow icon in the button and this error in console:

Failed to register/update a ServiceWorker for scope ‘https://auth.fission.codes/’: Storage access is restricted in this context due to user settings or private browsing mode. exchange.html:32:32

Uncaught (in promise) DOMException: The operation is insecure. exchange.html:32

Partitioned cookie or storage access was provided to “https://auth.fission.codes/exchange.html” because it is loaded in the third-party context and dynamic state partitioning is enabled.

In: Firefox 103.0b2 (64-bit) on Fedora 36

Works in: Brave 1.40.107 Chromium: 103.0.5060.53 (Official Build) (64-bit)

I did not manage to try in a Firefox instance without my extensions, as the fission authentication failed with some error I think is not mumblr related

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.