# Leykha
> ### Ley-Kha · लेख · ಲೇಖ
>
> Leykha is an experimental toolchain to facilitate personal blogging on IPFS. You will not type a single ipfs command.
### PURPOSE:
The purpose of this document is to serve as a design notes for building a personal blogging toolkit powered by IPFS.
## USER STORIES
### USER STORY 1: INSTALLATION
`npm install -g leykha`
As an aspiring blogger, I need to be able to download the leykha CLI into my system and accessible across my system globally.
### USER STORY 2: SETUP
`leykha setup`
`export LEYKHA_SECRETS=~/.leykha/credentials.json`
Once leykha CLI is downloaded, I need to optionally be able to paste my credentials of the following pinning providers:
1. Infura
2. Cloudflare
3. IPFS Piñata
4. MoiBit
5. Temporal
>//TODO: Add any other API based pinning platforms
### USER STORY 3: INITIALIZATION
`leykha init --name "<BLOG-PROJECT-SITE-NAME>"`
Once API credentials are added, I should be able to run the `init` subcommand to make sure that a new folder is created under the PWD. The new folder created will have a json/yaml file that maintains the file organization and metadata information about the site/blog/project.
### USER STORY 4: EDITING
As a leykha user, I should be able to draft new blog posts/sites by writing new content in a Markdown(.md) file under folders/sub-folders of choice.
`leypa add`
Once the content is drafted and finalized, I should be able to run the `add` subcommand that can convert the markdown file into a static HTML webpage(.html) file.
Also, based on the location of the markdown file, the json/yaml file organization tree will be updated accordingly to facilitate proper linking to new files on the site.
### USER STORY 5: PUBLISHING
`leypa publish`
Once done with the adding part, I should be able to run the `publish` subcommand. Internally, leypa should be able to add the converted/updated files to IPFS, pin them based on the credentials shared and confirm the publishing by returning the hash back to the console.
## FAQ
**1. Will there be a DNS support?**
**2. Will this enable censorship-resistant blogging? If yes, how exactly is this enabled and enforced?**
**3. How can we handle copyright issues?**