Textile Update | December 2018

business Jan 09, 2019

Here’s how Textile finished out 2018, and a bit about our focus in 2019

Reindeer Toy
Photo by Tim Gouw / Unsplash

Happy new year to everyone! 2018 was a bang-up year for Textile, from modest beginnings, to an early POC, to our current suite of software tools and apps. As we finish out the last year, we look forward to what 2019 will bring to us and our users/community. In this post, we’re celebrating the end of the year with a brief review of the past month, along with some highlights from the past year.


As always, the Textile team has been actively engaging with users on social media, our blog, and our Slack channel — come join us! We’ve also started publishing more articles on our own technology, with a view towards introducing bit and pieces of our new Textile stack to developers interested in easy dweb integrations. For sure you’ll want to check out how to build a simple decentralized version control system, and how you can use Textile to build easy integrations with third-party apps. While you’re at it you might also want to see our post on using Textile’s frameworks to transmit meaningful, large data over IPFS. All posts from the past month.

We’ve also started putting out some cool demos, which we’ll try to do more of as we think of fun things to try out! In particular, check out this demo we put together to highlight how Textile Schemas work (bonus points, it’s entirely hosted on IPFS!).

Top 5 Posts from Last Year

Speaking of posts, here are the top 5 Textile posts in terms of actual reads from the past year:

Public Slack Q & A

Discussion on our public Slack channel has started to take off, so we thought we’d share (well, paraphrase) some recent conversations to give you can idea of the things we’re discussing over there:

Your blog post states: “Textile operates in a completely zero-knowledge framework. Private by design.” What is meant by this?
Here’s a useful post to help explain this a bit. Basically “everything you do on a Zero Knowledge system is encrypted before it is sent [anywhere] and the key to the encryption is also never revealed to the vendor [i.e., textile]”.

At the code level how are all your parts structure? From top to bottom (dag, ipld, ipns etc), how do you use them? What’s the basic quick view?
Ok, here goes… a user’s account information is published to an IPNS record. Their account (or wallet) is accessible via their mnenomic phrase, which is a cryptographic password. That wallet contains links to their threads, which contain links to their data (i.e., photos), which contain links to files, metadata, etc. All the content (i.e., files, metadata, etc) are stored on IPFS, initially added via the user’s (local/mobile) peer. Threads are essentially DAGs (though we don’t use the IPLD DAG structure there, we use ‘raw’ protobufs which are smaller in our case). The data referenced by threads are indeed IPLD DAGs. Side note: we’re actually working on some documentation in our wiki to make this information a lot more accessible… Plus we’re in the process of creating public diagrams for much of this!

Can you join a thread and start participating right away without getting a full log?
Yes! Threads can get arbitrarily long, but we just slowly fill them out backward tracing back the DAG. This avoids the bottleneck of having to completely bootstrap a new peer before allowing them to participate.

Is there a way to have Textile use an existing IPFS Peer instance instead of whatever is the default?
Not quite yet… but what you can do is export the Textile IPFS repo path and use that from vanilla IPFS:

export IPFS_PATH=~/.textile/repo
ipfs config Addresses.API "/ip4/"
ipfs daemon

Basically, textile ‘disables’ the IPFS API by setting its address to nil… this step re-enables it by setting it back to its default. Then you can start the IPFS daemon as per normal. Of course, only one daemon can access your repo at a time, so you can’t, for instance, have Textile and ‘vanilla’ IPFS running at the same time on the same repo.

Technology News

Now to Textile tech news… there has been a recent storm of releases as we move closer to our impending Textile Photos release. There are a lot of changes under the hood. From the addition of our Schemas framework, to major updates to threads, encryption, and sharing. Also big changes to Textile Cafes and the services they provide. Wallets and accounts are much more explicit in the new tooling, and we think developers are really going to like the streamlined workflows that these new APIs will facilitate. For those interested in learning more about these new features in general, please check out our wiki, which is being updated almost daily. With that in mind, here are some specific highlights worth sharing:

Textile is hiring!

If you’re interested in the future of the web and decentralized mobile systems, get in touch. Seriously, do it, we’d love to hear from you. We’re just starting the hiring process, so the full positions have yet to be fully scoped out, but you can bet we’re looking for dweb enthusiasts with experience in the tools and technologies that Textile produces and writes about regularly. Join us on our Slack channel if you have questions!


Alright, consider yourself updated! If you’re excited about Textile — or just want to learn more about our apps, ideas, and vision for the future — feel free to reach out on Slack, or share your thoughts on Twitter. If you’re a fellow decentralized web developer, let us know what cool distributed web projects you’re working on — we’d love to hear about it, and maybe discuss your employment future! In the mean time, sign up for our wait-list to get earlier access to Textile Photos, or our mailing list to get updates about new features and progress. And for those of you already on the wait-list, we promise some codes are coming soon… this new release will be well worth the wait!

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.