GithubHelp home page GithubHelp logo

ceramicnetwork / docs Goto Github PK

View Code? Open in Web Editor NEW
22.0 7.0 42.0 50.37 MB

Ceramic developer documentation site https://developers.ceramic.network

Home Page: https://developers.ceramic.network

HTML 100.00%
ceramic documentation

docs's Introduction

Ceramic Docs

This repo contains code and markdown files for the Ceramic documentation site. View the full site at developers.ceramic.network.

Contributing

We welcome all contributions – big and small. To contribute, make your change and submit a PR to this repo describing what you've done.

Installation

Follow these steps to run the site locally and test your changes if they're substantial.

Install pip

sudo apt-get install pip3

Mac with Python3 and Homebrew

brew install python3

Install mkdocs and related dependencies

pip3 install mkdocs mkdocs-material mkdocs-redirects

Build and run the docs server

mkdocs serve

Webserver with built docs should now be running and can be connected to in a browser at localhost:8000

Maintainers

License

Fully open sourced under MIT and Apache 2.

docs's People

Contributors

0xm1kr avatar arcticdex avatar avious00 avatar ayushm2003 avatar bshambaugh avatar cyphercider avatar dazuck avatar decentralgabe avatar gvelez17 avatar haardikk21 avatar itali43 avatar justinapetr avatar lfeld avatar manubi avatar mattdavis0351 avatar michaelsena avatar oed avatar paullecam avatar pvanroos avatar qbig avatar rdasika avatar smrz2001 avatar stbrody avatar stephhuynh18 avatar sterahi avatar stoneric avatar ukstv avatar v-stickykeys avatar vindecodex avatar zachferland avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

Add custom CSS elements

We can add a few basic CSS styles which will allow us to create more visually interesting content layouts, which will increase comprehension and developer success. I'll follow up here with more detail.

Improve guide for running ceramic

  • Run Ceramic:
    • run/index.md
    • JS Ceramic:
      • run/js-ceramic/index.md
      • Running in the cloud: run/js-ceramic/running-in-the-cloud.md
      • Local installation: run/js-ceramic/installation.md
      • Switch networks: run/js-ceramic/switch-networks.md
      • Data persistence: run/js-ceramic/stream-management.md
      • Upgrades: run/js-ceramic/upgrades.md
      • Backup and Restore: run/js-ceramic/backup-and-restore.md
      • Advanced Options: run/js-ceramic/configuration-and-advanced-usage.md
      • Troubleshooting: run/js-ceramic/troubleshooting.md

Clean up core flows

Based on the personas of the audience and what they're likely trying to accomplish or what they're looking for

Write intro/foundational topics

- Foundational Topics:
  - docs/foundational-topics/index.md
  - Networks: docs/foundational-topics/networks.md
  - Streams: docs/foundational-topics/streams.md
  - Accounts: docs/foundational-topics/accounts.md
  - Transactions: docs/foundational-topics/transactions.md
  - Nodes and Clients: docs/foundational-topics/nodes-and-clients.md
  - Consensus: docs/foundational-topics/consensus.md

Write docs/advanced

  • Advanced:
    - index.md
    - Standards:
    - docs/advanced/standards/index.md
    - Stream program standards:
    - docs/advanced/standards/stream-programs/index.md
    - CIP-3 JSON Storage (TileDocument): index.md
    - CIP-17 Crypto Account Links (CAIP10Link): index.md
    - Application standards:
    - docs/advanced/standards/application-protocols/index.md
    - CIP-11 Account-based indexing (IDX): docs/advanced/standards/application-protocols/cip-11-account-based-stream- indexing.md
    - Data model standards:
    - docs/advanced/standards/data-models/index.md
    - Data model universe: index.md
    - Data model examples and patterns: index.md
    - Account standards:
    - CIP-4 3ID DID: authentication/3id-did/method.md
    - PKH DID: index.md
    - Key DID: authentication/key-did/method.md
    - CIP-40 NFT DID: authentication/nft-did/method.md
    - CIP-50 Safe DID: authentication/safe-did/method.md
    - Indexing: docs/advanced/indexing.md
    - Storage and backup: docs/advanced/storage-and-backup.md
    - Privacy and access control: docs/advanced/privacy-and-access-control.md

Create intro/getting started guide

This is somewhat more involved as ideally we can set up the infrastructure first:

  • an embedded web shell, where a user clicks to connect, generates them a throwaway account, and they can paste code and have it execute using ceramic.js, did.js, key did provider and resolver,
  • Then we actually have to create the guide, which ideally is the user actually creating a simple hello world application like a microblog or social network application. I think this consists of 4 or 5 steps:
  1. Deploy schemas (post, postIndex)
  2. Store data (create two posts, add to post index)
  3. Add to account (add post index to cip-11)
  4. Query (query back)
  5. Discover ()

Need to work through this

Write docs/* utility pages

  • Project:
    - docs/project/index.md
    - Roadmap: docs/project/roadmap.md
    - Governance: docs/project/governance.md
    - Code of Conduct: docs/project/code-of-conduct.md
    - Security Issues: docs/project/security-issues.md
  • Community:
    - docs/community/index.md
    - Ways to contribute: docs/community/how-to-contribute.md
    - Chat & discussion forums: docs/community/chat-and-discussion-forums.md
    - Social media: docs/community/social-media.md

Adding schema to "Writes" section

this commit removed the placeholder (non-working) schema from the write example, but I wonder if it would be helpful to include something like this preceeding the example, so that the user creates the doc with a real schema

  const schema = await ceramic.createDocument("tile", {
    content: {
      $schema: "http://json-schema.org/draft-07/schema#",
      title: "QuickStartSchema",
      type: "object",
      properties: {
        foo: { type: "string" },
      },
      required: ["foo"],
    },
    metadata: {
      controllers: [ceramic.did.id || ""],
      family: "schema",
    },
  })

On another note, I wonder if it would make sense to have a higher-level method to create a ceramic schema, similar to textile collections, that would type check the schema to ensure it's a valid JSONSchema prior to creating a document and returning a schema URL.

Another question... is there a "catalog" of predefined ceramic schemas somewhere? With the project I am trying to start up, WorldGraph, I hope to use interoperable schemas for linked data, similar to this example from schema.org, so that someone can browse the totality of linked data on ceramic using these known schemas. If this is an area that the ceramic team is interested in exploring, as it's a key capability for my project, I would be happy to research and come up with some proposals for a sort of schema registry. Let me know!

Set up MkDocs material insiders

This will give us access to insiders features such as "was this page helpful", code annotations, better versioning, and other helpful things.

Add instructions for peerlist PR approval

-In your PR, you must include a description of setup for data persistence of multi address, Ceramic State Store and IPFS Repo. This is a critical step, as otherwise if your node restarts for any reason it will regenerate this file with a new address and all other nodes on the network will lose connection to your old multi address. (I feel like this part gets kind of lost in the box under data persistence, so might be good to be explicit here)
-You can view the multi address in the config file that IPFS creates. By default, it will be located in a directory call IPFS. The multi address includes the PeerID at the end. (I just noticed Catalyst guys seemed lost here, so might be helpful?)
-When you submit your PR, that will automatically trigger a test to make sure you’re successfully connected to the network. If this fails, we will reach out to you to triage the issue. Make sure there are no firewalls blocking your instance and that your port is properly exposed.

And include a link to this in the peerlist README

Write docs/intro pages

[ ] Introduction: docs/introduction/index.md
[ ] How Ceramic Works: docs/introduction/how-ceramic-works.md
[ ] Why Ceramic?: docs/introduction/why-ceramic.md
[ ] Ceramic compared to...: docs/introduction/comparisons.md

but not the getting started guide, which is in a different story

Improve welcome page

Include a summary on what Ceramic is and link to new pages that have been recently added

Write intro/foundational-topics

- Foundational Topics:
  - docs/foundational-topics/index.md
  - Networks: docs/foundational-topics/networks.md
  - Streams: docs/foundational-topics/streams.md
  - Accounts: docs/foundational-topics/accounts.md
  - Transactions: docs/foundational-topics/transactions.md
  - Nodes and Clients: docs/foundational-topics/nodes-and-clients.md
  - Consensus: docs/foundational-topics/consensus.md

Set up mike for versioning

This should be available through mkdocs insiders and somehow needs to be build into our deployment process on gh pages.

Write docs/ceramic-stack

- Ceramic stack:
  - Intro to the stack: docs/ceramic-stack/introduction-to-the-stack.md
  - Stream programs:
    - docs/ceramic-stack/stream-programs/index.md
    - Stream program libraries: index.md
  - Data models:
    - docs/ceramic-stack/data-models/index.md
    - Data model libraries: index.md
    - Deploying data models: index.md
    - Composability: docs/ceramic-stack/data-models/composability.md
  - Client APIs:
    - docs/ceramic-stack/client-apis/index.md
    - Ceramic APIs:
      - docs/ceramic-stack/client-apis/ceramic/index.md
      - Ceramic JavaScript APIs: docs/ceramic-stack/client-apis/ceramic/javascript.md
      - Ceramic HTTP API: docs/ceramic-stack/client-apis/ceramic/http-api.md
    - Account APIs: 
      - docs/ceramic-stack/client-apis/accounts/index.md
      - Account JavaScript APIs: docs/ceramic-stack/client-apis/accounts/javascript.md
  - Development frameworks: docs/ceramic-stack/development-frameworks.md

Document how to subscribe to updates on a stream

There are 2 things that should be covered.

When you load a Stream the content won't change by default - the handle you get has the state as of the point in time when it was loaded. But if you call .subscribe() on it, then the Stream handle will get subscribe to updates to the underlying log, and the contents within the Stream object can change over time

Some examples on how an app can subscribe to changes to a stream and take action on each new update. This is a little bit complicated/confusing right now because Stream is an Observable of StreamState, which means that if you subscribe to it the updates you get have a new StreamState object which is fairly low level and most devs won't know what to do with it. I wonder if we should try to change this so that Stream is an Observable of new Stream objects each tied to the point in time of each new state? So then app code could call subscribe() with a callback that gets a new Stream object each time, which will be more what they are accustomed to dealing with

Improve docs for 3ID Connect

We got a request from DNS.XYZ to improve our 3ID Connect docs so people can build similar type systems using the same standards and implementation. Specifically they asked us to document:

  • how message signing works and what the messages are and how they need to be the same for DIDs generated to be the same
  • but this is also a good opportunity to better document 3ID Connect since it is such a core piece of tooling for many developers building applications on Ceramic

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.