<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abednego Edet</title>
    <description>The latest articles on DEV Community by Abednego Edet (@edet).</description>
    <link>https://dev.to/edet</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F60240%2F471d9594-ecfb-47e2-8fbb-a8729cd423b4.jpg</url>
      <title>DEV Community: Abednego Edet</title>
      <link>https://dev.to/edet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/edet"/>
    <language>en</language>
    <item>
      <title>Understanding Valyu: AI-Native Search, and a CLI Tool to Experiment Faster</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Fri, 06 Feb 2026 16:49:13 +0000</pubDate>
      <link>https://dev.to/edet/understanding-valyu-ai-native-search-and-a-cli-tool-to-experiment-faster-21di</link>
      <guid>https://dev.to/edet/understanding-valyu-ai-native-search-and-a-cli-tool-to-experiment-faster-21di</guid>
      <description>&lt;p&gt;AI systems are increasingly judged not by how well they generate text, but by how accurately they retrieve and reason over information. This is where search infrastructure becomes critical. Traditional search APIs were built for humans. &lt;strong&gt;Valyu is built for AI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This article introduces what Valyu is, what it enables, and then walks through an unofficial CLI tool I built to make experimenting with Valyu faster and more practical from the command line.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Valyu?
&lt;/h3&gt;

&lt;p&gt;Valyu is an AI-native search and retrieval platform designed specifically for modern AI workloads such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Retrieval-Augmented Generation (RAG)&lt;/li&gt;
&lt;li&gt;AI agents&lt;/li&gt;
&lt;li&gt;Research automation&lt;/li&gt;
&lt;li&gt;Data-grounded LLM applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of returning loosely ranked links, Valyu focuses on structured, relevance-optimized results that are easier for AI systems to consume and reason over.&lt;/p&gt;

&lt;p&gt;At a high level, Valyu provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unified access to web, academic, proprietary, and structured data&lt;/li&gt;
&lt;li&gt;Results optimized for LLM context windows&lt;/li&gt;
&lt;li&gt;Rich metadata and content extraction&lt;/li&gt;
&lt;li&gt;A single API designed to replace fragmented search pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core idea is simple: if AI systems are going to reason accurately, they need search results that are already structured, filtered, and relevance-aware.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Valyu Matters for Developers
&lt;/h3&gt;

&lt;p&gt;When building AI systems today, developers often spend significant time stitching together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web search APIs&lt;/li&gt;
&lt;li&gt;Scrapers&lt;/li&gt;
&lt;li&gt;Embedding pipelines&lt;/li&gt;
&lt;li&gt;Ranking and filtering logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Valyu reduces that complexity by acting as a search abstraction layer for AI. Instead of optimizing for human browsing, it optimizes for downstream reasoning.&lt;/p&gt;

&lt;p&gt;This makes it especially useful when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building RAG pipelines&lt;/li&gt;
&lt;li&gt;Powering autonomous agents&lt;/li&gt;
&lt;li&gt;Running repeatable research tasks&lt;/li&gt;
&lt;li&gt;Experimenting with AI workflows that depend on up-to-date or external knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Experimenting with Valyu
&lt;/h3&gt;

&lt;p&gt;Valyu provides SDKs and APIs that integrate cleanly into applications. However, when you’re still exploring the platform, writing code for every experiment can slow things down. This is where quick, disposable workflows become valuable.&lt;/p&gt;

&lt;p&gt;New Valyu users receive $10 in free credits, which makes it easy to experiment, test ideas, and understand how the platform behaves before committing it to production use. That free tier pairs well with lightweight tools that reduce setup friction.&lt;/p&gt;

&lt;p&gt;To make experimentation easier, I built an unofficial command-line tool called &lt;code&gt;valyu-cli&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This tool is not an official Valyu product. It exists purely to simplify the process of interacting with Valyu during exploration, testing, and local workflows.&lt;/p&gt;

&lt;p&gt;Instead of writing a script or setting up a full project, the CLI lets you issue queries, extract content, and run research tasks directly from your terminal.&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ed3t" rel="noopener noreferrer"&gt;
        ed3t
      &lt;/a&gt; / &lt;a href="https://github.com/ed3t/valyu-cli" rel="noopener noreferrer"&gt;
        valyu-cli
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      CLI for Valyu DeepSearch API
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;∇ Valyu CLI&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/valyu-cli" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/84a72ee1a17f8e69f3dfb5d3c7e9006a0337d4e355848289281140e5aacbff41/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f76616c79752d636c69" alt="npm"&gt;&lt;/a&gt;
&lt;a href="https://github.com/ed3t/valyu-cli/blob/main/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7cf0489a586bec9d06738ac259ff42436ff9fa3f68043ffbb5d8c3f35f17ab63/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f656433742f76616c79752d636c69" alt="License"&gt;&lt;/a&gt;
&lt;a href="https://github.com/ed3t/valyu-cli/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/99c1a58c9ab495af506ce79e0e4ae32fcf051155ade60c0d7109771445ff9e0a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f656433742f76616c79752d636c69" alt="Release"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;CLI for &lt;a href="https://valyu.ai" rel="nofollow noopener noreferrer"&gt;Valyu's&lt;/a&gt; DeepSearch API.&lt;br&gt;
Search, extract contents, and run DeepResearch from the terminal. Built on the official &lt;a href="https://github.com/valyuAI/valyu-js" rel="noopener noreferrer"&gt;valyu-js&lt;/a&gt; SDK.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;yarn global add valyu-cli
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
npm install -g valyu-cli&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Run without installing:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npx valyu-cli search &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;your query&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt; Node.js 18+&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick Start&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Set your API key (or use --api-key)&lt;/span&gt;
&lt;span class="pl-k"&gt;export&lt;/span&gt; VALYU_API_KEY=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;your-api-key&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Search&lt;/span&gt;
valyu search &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;machine learning transformers&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; --max 5

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Extract content from URLs&lt;/span&gt;
valyu contents https://example.com --summary

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Create a DeepResearch task and wait for the result&lt;/span&gt;
valyu deep-research create &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;AI safety research summary&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; --wait&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Get your API key: &lt;a href="https://platform.valyu.network" rel="nofollow noopener noreferrer"&gt;Valyu Platform&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Authentication&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Environment variable (recommended):&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;export&lt;/span&gt; VALYU_API_KEY=&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;your-api-key&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Config file:&lt;/strong&gt; Create &lt;code&gt;~/.valyu/config&lt;/code&gt; or &lt;code&gt;.valyu/config&lt;/code&gt; in your project:&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;apiKey=your-api-key
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Or use &lt;code&gt;VALYU_API_KEY=your-api-key&lt;/code&gt; as the key name. The CLI reads &lt;code&gt;apiKey&lt;/code&gt; or &lt;code&gt;VALYU_API_KEY&lt;/code&gt; from the file.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Override per run:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;valyu search &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;query&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ed3t/valyu-cli" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;




&lt;h3&gt;
  
  
  What the CLI Tool Does
&lt;/h3&gt;

&lt;p&gt;The CLI wraps common Valyu API operations into simple terminal commands. Its main capabilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching Valyu directly from the command line&lt;/li&gt;
&lt;li&gt;Extracting structured content from URLs&lt;/li&gt;
&lt;li&gt;Running DeepResearch tasks and waiting for results&lt;/li&gt;
&lt;li&gt;Outputting results as JSON for scripting or storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is intentionally minimal and designed for developers who want fast feedback loops.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing the CLI
&lt;/h3&gt;

&lt;p&gt;You can install the tool globally or run it on demand.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; valyu-cli
&lt;span class="c"&gt;# or&lt;/span&gt;
yarn global add valyu-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also run it without installing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx valyu-cli search &lt;span class="s2"&gt;"your query"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Authentication
&lt;/h3&gt;

&lt;p&gt;Set your Valyu API key as an environment variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;VALYU_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-api-key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or via a config file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~/.valyu/config
&lt;span class="nv"&gt;apiKey&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your-api-key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also override the key per command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu &lt;span class="nt"&gt;-k&lt;/span&gt; &lt;span class="s2"&gt;"your-api-key"&lt;/span&gt; search &lt;span class="s2"&gt;"your query"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example Usage
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Search Valyu
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu search &lt;span class="s2"&gt;"latest AI research trends"&lt;/span&gt; &lt;span class="nt"&gt;--max&lt;/span&gt; 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;More advanced search (custom sources, filtering, and JSON output):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu search &lt;span class="s2"&gt;"transformer architecture improvements"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--type&lt;/span&gt; proprietary &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--sources&lt;/span&gt; valyu/valyu-arxiv &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--relevance&lt;/span&gt; 0.7 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max&lt;/span&gt; 10 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--json&lt;/span&gt; &lt;span class="nt"&gt;--save&lt;/span&gt; search.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Extract structured content from a page
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu contents https://example.com &lt;span class="nt"&gt;--summary&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Custom summary prompt and longer extraction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu contents https://example.com &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--summary-prompt&lt;/span&gt; &lt;span class="s2"&gt;"Provide 5 key takeaways as bullet points."&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--length&lt;/span&gt; medium
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Run DeepResearch and wait for completion
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu deep-research create &lt;span class="s2"&gt;"Overview of quantum computing"&lt;/span&gt; &lt;span class="nt"&gt;--wait&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Request markdown + PDF (the CLI prints the markdown output and the PDF URL if available):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu deep-research create &lt;span class="s2"&gt;"AI safety research summary"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--model&lt;/span&gt; heavy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--format&lt;/span&gt; markdown,pdf &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--wait&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the status of a DeepResearch task later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;valyu deep-research status &amp;lt;task-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All commands can output raw JSON, which makes the tool useful in shell scripts or lightweight pipelines. I built this CLI because I didn’t want to write code every time I wanted to understand how Valyu would respond to a query.&lt;/p&gt;

&lt;p&gt;When you’re evaluating infrastructure tools, speed matters. Being able to run a command, inspect the output, tweak a query, and run it again makes it much easier to form an opinion about whether a platform fits your use case.&lt;/p&gt;

&lt;p&gt;This tool exists purely to support that phase of work. If you end up using Valyu in production, the SDKs are the right place to be. If you’re still exploring, the CLI keeps things simple.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced options (quick reference)
&lt;/h3&gt;

&lt;p&gt;The CLI supports additional flags beyond the examples above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Global flags (all commands):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-k, --api-key &amp;lt;key&amp;gt;&lt;/code&gt;: override API key for a single command&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--json&lt;/code&gt;: output raw JSON (useful for scripting)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--save &amp;lt;path&amp;gt;&lt;/code&gt;: write output to a file&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-v, --verbose&lt;/code&gt;: log request details to stderr&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-q, --quiet&lt;/code&gt;: minimal output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Search flags:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-t, --type &amp;lt;all|web|proprietary|news&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-n, --max &amp;lt;1-100&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--sources &amp;lt;comma,separated&amp;gt;&lt;/code&gt; / &lt;code&gt;--exclude-sources &amp;lt;comma,separated&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--relevance &amp;lt;0-1&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--max-price &amp;lt;number&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--start-date &amp;lt;YYYY-MM-DD&amp;gt;&lt;/code&gt; / &lt;code&gt;--end-date &amp;lt;YYYY-MM-DD&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--length &amp;lt;short|medium|large|max&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Contents flags:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--summary&lt;/code&gt; / &lt;code&gt;--summary-prompt "&amp;lt;instruction&amp;gt;"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--effort &amp;lt;normal|high|auto&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--length &amp;lt;short|medium|large|max&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--max-price &amp;lt;number&amp;gt;&lt;/code&gt; (USD)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DeepResearch flags:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-m, --model &amp;lt;fast|heavy&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--format markdown,pdf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--wait&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--poll-interval &amp;lt;ms&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Final thoughts
&lt;/h3&gt;

&lt;p&gt;Valyu solves a real problem in the AI ecosystem: search designed for reasoning systems, not browsers. If retrieval quality matters to your application, it’s worth understanding how it works.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;valyu-cli&lt;/code&gt; tool is a small, unofficial addition meant to make that exploration faster. Combined with Valyu’s free credits, it lowers the barrier to actually testing ideas instead of just reading documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Valyu: &lt;a href="https://valyu.ai" rel="noopener noreferrer"&gt;https://valyu.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Valyu CLI: &lt;a href="https://github.com/ed3t/valyu-cli" rel="noopener noreferrer"&gt;https://github.com/ed3t/valyu-cli&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Automatically Deploy Laravel Applications with Amezmo - Modern deployment Tool for PHP</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Thu, 05 Jan 2023 00:16:35 +0000</pubDate>
      <link>https://dev.to/edet/automatically-deploy-laravel-applications-with-amezmo-modern-deployment-tool-for-php-2809</link>
      <guid>https://dev.to/edet/automatically-deploy-laravel-applications-with-amezmo-modern-deployment-tool-for-php-2809</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.amezmo.com/about" rel="noopener noreferrer"&gt;What is Amezmo?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Amezmo is a managed Laravel hosting platform without the pain of managing a VPS, they provide automated deployments, automatic SSL, Remote MySQL, and so much more.&lt;br&gt;
Using Amezmo you get the power of a VPS but without the complexity and time commitment required to maintain the server for hosting your PHP apps, helping you focus on what's important. For zero-downtime PHP deployments, You'll typically use a tool like &lt;a href="https://envoyer.io" rel="noopener noreferrer"&gt;Envoyer&lt;/a&gt;, but that requires using a VPS provider like Digital Ocean, or AWS. Hosting with Amezmo servers includes zero-downtime PHP deployment which is of course what we want.&lt;/p&gt;
&lt;h3&gt;
  
  
  Why &lt;a href="https://amezmo.com/" rel="noopener noreferrer"&gt;use Amezmo&lt;/a&gt;?
&lt;/h3&gt;

&lt;p&gt;Amez­mo dif­fers from oth­er offer­ings like Forge, in that it is backed by docker and has inte­grat­ed deploy­ments similar to Envoyer and also takes care of the VPS part of the equa­tion for you.&lt;br&gt;
As an alternative to &lt;a href="https://dev.to/asapabedi/deploying-laravel-5-applications-on-shared-hosting-without-the-use-of-ssh--16a6"&gt;hosting Laravel on shared hosting&lt;/a&gt;, in this post, we’ll go over how to host a Laravel app on Amezmo. The end result is a complete Laravel application that’s production-ready, database-driven, and set up for automatic, zero-downtime deployments each time we push to our repository on GitHub and we’ll be taking advantage of all the features Laravel has to offer like Queues and scheduled tasks that aren't possible using shared hosting.&lt;br&gt;
Hosting with Amezmo gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continuous delivery with automated deployments&lt;/li&gt;
&lt;li&gt;Efficient queues powered by Redis&lt;/li&gt;
&lt;li&gt;HTTPS domain with automated certificate renewals&lt;/li&gt;
&lt;li&gt;Laravel task scheduler&lt;/li&gt;
&lt;li&gt;Automated database backups and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Getting started
&lt;/h1&gt;

&lt;p&gt;I assume you already know how to &lt;a href="https://laravel.com/docs/7.x/installation" rel="noopener noreferrer"&gt;create a laravel project with composer locally&lt;/a&gt; and &lt;a href="https://docs.github.com/en/github/importing-your-projects-to-github/adding-an-existing-project-to-github-using-the-command-line" rel="noopener noreferrer"&gt;initialize a git repository&lt;/a&gt;, this guide aims at hosting your Laravel project using Amezmo for both staging and production (public access) environments.&lt;/p&gt;

&lt;p&gt;If you’re used to hosting Laravel apps with shared hosting, or even a VPS, then we should highlight the difference between shared hosting and Laravel cloud hosting. The major disadvantage of shared hosting, especially for Laravel apps, is that we have less control over the actual server and ultimately, we lose the ability to use some of the advanced Laravel features like queues, and task scheduling.&lt;/p&gt;

&lt;p&gt;Other issues with deploying laravel apps on shared hosting are that modern development doesn’t use FTP to upload code and many providers don’t offer automated deployments with Git. These days we use Git to deploy our Laravel apps, even if they are just simple apps.&lt;/p&gt;

&lt;p&gt;With VPS hosting, you get all the power you need, but the tradeoff is the time it takes to configure the VPS for hosting Laravel apps.&lt;/p&gt;
&lt;h2&gt;
  
  
  If you haven’t signed up for Amezmo yet, you can do so &lt;a href="https://www.amezmo.com/register" rel="noopener noreferrer"&gt;here&lt;/a&gt;.
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1 &amp;gt; Create a Linux container on Amezmo
&lt;/h3&gt;

&lt;p&gt;Assuming your code is already hosted on Github&lt;br&gt;
It is time to launch your Linux container instance to deploy your Laravel project on Amezmo. This instance will be where your Laravel project is both hosted on and deployed to. Login to your Amezmo account and launch a new application server from Instances &amp;gt; New&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqybekv1v347p4392zw7p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqybekv1v347p4392zw7p.jpg" alt="A screenshot of the Amezmo new application wizard step 1" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the new application form, use "your-laravel-app-name" for the Name, and use any fully qualified top-level domain that you'd like.&lt;br&gt;
Eg. &lt;strong&gt;myappdomain.com&lt;/strong&gt;&lt;br&gt;
Amezmo will generate a private domain name for you by default when you create a new application. &lt;br&gt;
You have an option to choose a server location for your region as well. After filling out the form, press Next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fau4awpm8wvxn5ffh7mgj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fau4awpm8wvxn5ffh7mgj.jpg" alt="A screenshot of the Amezmo new instance button" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2 &amp;gt; Configure instance settings to suit your needs
&lt;/h3&gt;

&lt;p&gt;If your app uses MySQL and Redis, do check or uncheck where applicable. You can be able to set PHP versions for specific applications, PHP 7.4 is selected by default. Click the blue Launch button to finish setting up your application server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftn4l09cx44kaho2sw5oo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftn4l09cx44kaho2sw5oo.jpg" alt="A screenshot of the Amezmo new application wizard step 2" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3 &amp;gt; Git Wizard
&lt;/h3&gt;

&lt;p&gt;After your instance launches, navigate to the Git tab and choose GitHub, where you have other options like GitLab and Bitbucket to choose from, but in this instance, we're using Github. From here you'll authorize Amezmo &lt;strong&gt;read-only&lt;/strong&gt; access to your repository. Amezmo will create a unique deploy key and set up a webhook for automated deployments.&lt;/p&gt;

&lt;p&gt;In the repository selection form, choose your repository, (your-laravel-app-name) from the Git repository dropdown. Type master for your Branch, and ensure you've chosen "Laravel" as the application type. Upon changing the application type, Amezmo will fill out the public document root field for you.&lt;/p&gt;

&lt;p&gt;Leave "Automatically install Composer packages" checked, and click the Continue button. In the next step, you'll choose your domain name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcatmhm0l9etm92ufz02i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcatmhm0l9etm92ufz02i.jpg" alt="A screenshot of the Amezmo Git wizard repo selection step" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  4 &amp;gt; Add a custom domain
&lt;/h3&gt;

&lt;p&gt;When you first launched your instance, you provided a custom fully qualified domain name to use for your app. In the Domain Name step of the wizard, you'll set this domain to map to your git repository. Choose your domain from the dropdown menu as seen in the screenshot below.&lt;/p&gt;

&lt;p&gt;If you haven't validated your custom domain yet, you can always use the private domain provided by Amezmo, which is set up automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvi7q3f2jcakis289v50w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fvi7q3f2jcakis289v50w.jpg" alt="A screenshot of the Amezmo Git wizard domain name selection step" width="800" height="247"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  5 &amp;gt; Automated deployments
&lt;/h3&gt;

&lt;p&gt;As mentioned earlier, our development workflow is Git-first, meaning that we won't edit files directly on the server using Amezmo. All updates to your application will happen through Git. When you push your code to GitHub, Amezmo will automatically start a new zero-downtime deployment for you.&lt;/p&gt;

&lt;p&gt;In the wizard, choose the first option, "Yes", and click the Finish button. After this step, you're done with the Git wizard, and next is to add a Cron job and a Worker process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2nkvjkit0z4l6fjyty5x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2nkvjkit0z4l6fjyty5x.jpg" alt="A screenshot of the Amezmo Add Worker form" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  6 &amp;gt; Setting up the Laravel task scheduler
&lt;/h3&gt;

&lt;p&gt;Since the Laravel task scheduler is invoked by a Cron job, let's go the Crontab and add a new entry. Choose a name for the Cron entry.&lt;/p&gt;

&lt;p&gt;By default, Amezmo will pre-fill the Command field since it knows that your app is a Laravel app. Choose @minutely for the schedule or any other as the case may be, and click the "Add Cron Entry" button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fymdzdpunl71ent24wyfj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fymdzdpunl71ent24wyfj.jpg" alt="A screenshot of the Amezmo Add Worker form" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  7 &amp;gt; Setup the Laravel Queue worker
&lt;/h3&gt;

&lt;p&gt;Finally, add a new worker process that will run in the background on your server. The process will run the Redis-powered Laravel queue in the background.&lt;/p&gt;

&lt;p&gt;Similar to the previous step, Amezmo will also pre-fill the Command field based on the fact that you imported a Laravel application. The full command, as can be seen in the screenshot below, is as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan queue:work --sleep=3 --tries=3 -vvv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Based on the arguments in the above command, your queue will sleep for 3 seconds if there are no jobs to process, and will attempt to complete a job 3 times it is considered permanently failed. Bypassing the &lt;code&gt;-vvv&lt;/code&gt; argument, you're telling Laravel to log/show extra information to standard output, so we know that our background queue worker is running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkp3s9au4n5ljs77heu0u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkp3s9au4n5ljs77heu0u.jpg" alt="A screenshot of the Amezmo Add Worker form" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  8 &amp;gt; What you've done so far
&lt;/h3&gt;

&lt;p&gt;You're using Amezmo to host and deploy your Laravel application. You've imported a Laravel application to your Amezmo server instance, and you're all set up for automated, zero-downtime deployments. Each time you run git push on the command line, Amezmo will begin the deployment process.&lt;br&gt;
Your app will be available live using your specified domain name or one generated by Amezmo.&lt;/p&gt;

&lt;p&gt;As an advanced option, you can run scripts between each step of your deployment process and install NPM packages, and Composer packages instead of having Amezmo manage package installation. For example, of the available deployment hooks, see the &lt;code&gt;.amezmo&lt;/code&gt; directory in the &lt;a href="https://github.com/amezmo/demo.amezmo.com" rel="noopener noreferrer"&gt;Amezmo Laravel Demo Application on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So that's pretty much what you need to know to get started with using this amazing tool.&lt;br&gt;
Don't forget to drop your comments if you need further assistance or clarity concerning this post or if you have just anything to say.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Happy coding guys! 🚀&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Useful Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amezmo.com/pricing/" rel="noopener noreferrer"&gt;Amezmo Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://amezmo.com/register/" rel="noopener noreferrer"&gt;Register on Amezmo&lt;/a&gt; to get a 30 Days Free Trial.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amezmo.com/docs/" rel="noopener noreferrer"&gt;Amezmo Documentations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag__user ltag__user__id__244096"&gt;
    &lt;a href="/amezmo" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F244096%2F71cbd001-6754-4b09-b9e8-99ce41e956d2.png" alt="amezmo image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/amezmo"&gt;Amezmo&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/amezmo"&gt;All-in-one PHP Hosting and Deployment for Laravel, CraftCMS, WordPress, and many more frameworks!&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Will be available to answer questions relating to Amezmo Generally&lt;/p&gt;

</description>
      <category>hosting</category>
      <category>laravel</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A quick look at Gutenberg Block Editor</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Sun, 04 Nov 2018 05:41:35 +0000</pubDate>
      <link>https://dev.to/edet/a-quick-look-at-gutenberg-block-editor-hm8</link>
      <guid>https://dev.to/edet/a-quick-look-at-gutenberg-block-editor-hm8</guid>
      <description>&lt;p&gt;WordPress is setting up the brand new editing experience for its next major release version 5.0. There are mixed reactions from people all over the globe for this huge change in WP.&lt;br&gt;
But as the release of WordPress version 5 is coming closer, it is necessary to update your development skills. In this tutorial, I’ll share my little knowledge of Gutenberg development. Here I’ll show you how you can create a static &amp;amp; rich text block in Gutenberg.&lt;/p&gt;

&lt;p&gt;Before further proceeding, I want to clear one thing, to develop Gutenberg custom blocks you don’t need much knowledge of PHP. Knowledge of JavaScript is required especially ES6 standards, React JS &amp;amp; Node environments is required. If you don’t have basic knowledge of these technologies I’ll recommend you to get some knowledge of these first.&lt;/p&gt;

&lt;p&gt;Let the tutorial begin 🥁&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Setting Up the Gutenberg Block Development Environment&lt;/strong&gt;
&lt;/h3&gt;



&lt;p&gt;Setting Up the Gutenberg Block Development Environment&lt;br&gt;
To get started with Gutenberg custom block development you’ll need node js installed on your computer. You can download nodejs from &lt;a href="https://nodejs.org/en/download/" rel="noopener noreferrer"&gt;here&lt;/a&gt; &amp;amp; with it npm will also get installed in your machine. Then go to create guten block github &lt;a href="https://github.com/ahmadawais/create-guten-block" rel="noopener noreferrer"&gt;repository&lt;/a&gt; to get the instructions of installing basic setup of gutenberg custom block plugin.&lt;/p&gt;

&lt;p&gt;Using your terminal or command prompt, go to your local WP install and within &lt;code&gt;wp-content/plugins/&lt;/code&gt;  directory run the command below.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-guten-block my-block&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After running this code create-guten-block package will start downloading in the directory. When it completes its downloading process you’ll get this kind of file structure within the my-block folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSIDE: /local_dev_site/wp-content/plugins/my-block

├── .gitignore
├── plugin.php
├── package.json
├── README.md
|
├── dist
|  ├── blocks.build.js
|  ├── blocks.editor.build.css
|  └── blocks.style.build.css
|
└── src
   ├── block
   |  ├── block.js
   |  ├── editor.scss
   |  └── style.scss
   |
   ├── blocks.js
   ├── common.scss
   └── init.php
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now run this 2 commands mentioned below.&lt;br&gt;
&lt;code&gt;cd my-block&lt;/code&gt;&lt;br&gt;
&lt;code&gt;npm start&lt;/code&gt;&lt;br&gt;
Now, we can start getting our hands dirty with some Gutenberg development coding.&lt;/p&gt;

&lt;p&gt;Here in this file structure, we have to work for new blocks development in &lt;code&gt;src/block/&lt;/code&gt;  folder within this directory we can create our own block directory and have its files in it.&lt;br&gt;
Start with a simple example.&lt;/p&gt;

&lt;p&gt;Start Developing a Basic Static Gutenberg Block&lt;br&gt;
Within &lt;code&gt;src/block/&lt;/code&gt;  create another directory for our block called &lt;code&gt;/basic-block/&lt;/code&gt;. Then create 2 files called &lt;code&gt;index.js&lt;/code&gt;  and &lt;code&gt;editor.css&lt;/code&gt;  in it and add this block in &lt;code&gt;src/blocks.js&lt;/code&gt;  by adding this code below&lt;br&gt;
&lt;code&gt;import './block/basic-block';&lt;/code&gt;&lt;br&gt;
Now, we can add our codes in the newly &lt;code&gt;index.js&lt;/code&gt;  file in our own block &lt;code&gt;basic-block/&lt;/code&gt;  folder and it will render properly in our WP install.&lt;/p&gt;
&lt;h6&gt;
  
  
  This is the full code for a static block in Gutenberg. After adding this code now we can see our block in add block area.
&lt;/h6&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import './editor.css';

const { registerBlockType } = wp.blocks;
const blockStyle = {backgroundColor: '#900', color: '#fff', padding: '20px'};

registerBlockType('myblock/basic-block', {
    title: 'Basic Block',
    icon: 'images-alt',
    category: 'common',
    edit: function( {className} ) {
        return (
            &amp;lt;div className={className}&amp;gt;
                &amp;lt;p className='my-p'&amp;gt;Hello Editor World!&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;
        );
    },
    save: function() {
        return (
            &amp;lt;p style={blockStyle}&amp;gt;Hello Outer World!&amp;lt;/p&amp;gt;
        );
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8trct4dsp7dc2fkc6c1m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8trct4dsp7dc2fkc6c1m.png" alt="output" width="401" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me explain this code for you.&lt;br&gt;
&lt;code&gt;registerBlockType('myblock/basic-block', {...});&lt;/code&gt;&lt;br&gt;
We need to use this code above to register any block in Gutenberg, here we have to provide our block name first. And a complete block name can be divided into 2 parts, first part myblock is your plugin name and later after / provide your block name such as here I provided  basic-block. To work registerBlockType as intended we need to first get it from wp.blocks  by the code.&lt;br&gt;
&lt;code&gt;const { registerBlockType } = wp.blocks;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, within our registerBlockType function, we need to provide some basic settings data for our block.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;title: It will provide the title/name our block in add block section.&lt;/li&gt;
&lt;li&gt;icon: It will define the icon we want to use for our block in add block section. Here I have used a dashicons icon.&lt;/li&gt;
&lt;li&gt;category: It defines where in the add block section you wish to make available your block. There are currently 5 categories present where we can put our blocks.

&lt;ul&gt;
&lt;li&gt;common&lt;/li&gt;
&lt;li&gt;formatting&lt;/li&gt;
&lt;li&gt;layout&lt;/li&gt;
&lt;li&gt;widgets&lt;/li&gt;
&lt;li&gt;embeds&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;edit: Here we can provide how we want to render our block in our editor.&lt;/li&gt;
&lt;li&gt;save: This is where we can define how it should render the block in our theme.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this example, I have provided static data for both backend and frontend. In the edit part, within the function, I have returned some HTML data with a hello world message, but this is not the HTML, its called JSX. It is an easy way to include HTML (which looks like, but not exactly HTML) within JavaScript and created by React js dev team at Facebook.&lt;br&gt;
Here I have given the wrapper div element a class of &lt;code&gt;className&lt;/code&gt;  which we can get in our props in edit and save. This &lt;code&gt;className&lt;/code&gt; consists of the value of our complete block name with &lt;code&gt;wp-block-&lt;/code&gt; at the beginning. So it will output as &lt;code&gt;wp-block-myblock-basic-block&lt;/code&gt; in our HTML. This will help to define our design CSS in the &lt;code&gt;editor.css&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;Now in the &lt;code&gt;editor.css&lt;/code&gt; file add this CSS codes as below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.wp-block-myblock-basic-block {
    color: green;
    background-color: #cfc;
    border: 2px solid #9c9;
    padding: 20px;
}
.wp-block-myblock-basic-block .my-p {
    font-size: 12px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This CSS file will render the design of the block in our editor only. For the design of frontend, we can define in a separate file or in this case I have used a js constant within the index.js file which I have used in save part of my code.&lt;br&gt;
&lt;code&gt;const blockStyle = {backgroundColor: '#900', color: '#fff', padding: '20px'};&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This &lt;em&gt;blockstyle&lt;/em&gt; constant have some styling codes which are again not the CSS codes as you can see the &lt;code&gt;backgroundColor&lt;/code&gt; here. This &lt;em&gt;blockstyle&lt;/em&gt; is used in return of save part of our as the p element styles. I have provided the different styles for backend and frontend to show you the difference of styles which are getting rendered in both the area.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95x2jq28x6ne8fmcjcod.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95x2jq28x6ne8fmcjcod.png" alt="output" width="622" height="127"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frolrt1ggcmn5zur7fb9h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frolrt1ggcmn5zur7fb9h.png" alt="output" width="535" height="75"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, this is it. Here you learned how to create your first simple static block in Gutenberg. Later I will show you how you can create a rich text block in Gutenberg which works with dynamic data.&lt;/p&gt;

</description>
      <category>gutenberg</category>
      <category>wp</category>
    </item>
    <item>
      <title>Suggest a WYSIWYG Editor for me</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Tue, 04 Sep 2018 21:55:06 +0000</pubDate>
      <link>https://dev.to/edet/choose-a-wysiwyg-editor-for-me-124j</link>
      <guid>https://dev.to/edet/choose-a-wysiwyg-editor-for-me-124j</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ljcwneeqsfvpzr94tet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ljcwneeqsfvpzr94tet.png" alt="WYSIWYG" width="800" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>TANGO_Twitter-Clone</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Thu, 24 May 2018 21:36:42 +0000</pubDate>
      <link>https://dev.to/edet/tangotwitter-clone-36el</link>
      <guid>https://dev.to/edet/tangotwitter-clone-36el</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn16mvckaxd1rae9z9eq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn16mvckaxd1rae9z9eq9.png" alt="TANGO" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What I built
&lt;/h1&gt;

&lt;p&gt;A twitter like single page application (SPA) made with Vue.js, GraphQL and Pusher implemented on Laravel&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;The project lives &lt;a href="http://projectpage.feedia.co" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Account&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email: &lt;a href="mailto:asapabedi@gmail.com"&gt;asapabedi@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Password: freefall&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;

&lt;p&gt;source code hosted on &lt;a href="https://github.com/asapabedi/TANGO_Twitter-clone" rel="noopener noreferrer"&gt;GITHUB&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How I built it
&lt;/h1&gt;

&lt;p&gt;I first built a GraphQL API using Laravel then used Vue.js, Vue router for frontend and Pusher for real-time activities.&lt;/p&gt;

&lt;h1&gt;
  
  
  Additional Info
&lt;/h1&gt;

&lt;p&gt;Using Vue.js, Vuex and Pusher, I built a SPA application, I allowed the auth part to be taken care of by laravel out of box authentication, so once a user logs in it will load the single page application. Although, it is not a perfect replica of twitter but it has some of its key features. In this app a user can send tweets and replies, follow and unfollow users, all are done through pusher channels.&lt;/p&gt;

</description>
      <category>pushercontest</category>
      <category>laravel</category>
      <category>graphql</category>
      <category>vue</category>
    </item>
    <item>
      <title>NTFS vs exFat and FAT32</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Thu, 17 May 2018 22:55:58 +0000</pubDate>
      <link>https://dev.to/edet/ntfs-vs-exfat-and-fat32-328h</link>
      <guid>https://dev.to/edet/ntfs-vs-exfat-and-fat32-328h</guid>
      <description></description>
      <category>explainlikeimfive</category>
    </item>
    <item>
      <title>Explain Vue.js like I'm five</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Mon, 05 Mar 2018 08:38:00 +0000</pubDate>
      <link>https://dev.to/edet/explain-vuejs-like-im-five--1257</link>
      <guid>https://dev.to/edet/explain-vuejs-like-im-five--1257</guid>
      <description></description>
      <category>explainlikeimfive</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Deploying Laravel 5 applications on shared hosting without the use of SSH</title>
      <dc:creator>Abednego Edet</dc:creator>
      <pubDate>Sat, 03 Mar 2018 09:35:51 +0000</pubDate>
      <link>https://dev.to/edet/deploying-laravel-5-applications-on-shared-hosting-without-the-use-of-ssh--16a6</link>
      <guid>https://dev.to/edet/deploying-laravel-5-applications-on-shared-hosting-without-the-use-of-ssh--16a6</guid>
      <description>&lt;p&gt;First, it is well discouraged to use a shared hosting for your Laravel 5 app. There are other very cheap web hosting starting from USD $7 per month.&lt;/p&gt;

&lt;p&gt;But some clients (- very low budget clients ) or circumstance (for instance, you want to have something tested and move on) might call for you to use shared hosting.&lt;/p&gt;

&lt;p&gt;I particularly had to host an app recently on a shared host. I noticed there were fragmented and incomplete articles on how to this on the Internet. So I decided to come up something complete.&lt;/p&gt;

&lt;p&gt;I will cover the following here:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;How to deploy your app to shared hosting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to migrate your databases without running migration commands!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step one:&lt;/p&gt;

&lt;p&gt;I assume you've finished building your app – at least a functional app that is working on your localhost. I also assume you are using Laravel 5.0 – although this article would be relevant for Laravel 5.1.&lt;/p&gt;

&lt;p&gt;Let's say your laravel project is named laravel50 with the following folder structure:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsnlqbaitllzbubtk76h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsnlqbaitllzbubtk76h.png" alt="Your Project Structure" width="299" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: I advise you to leave everything as it is including the .htaccess file.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Compress the entire project folder on your local machine. You'll get a zip file – laravel50.zip&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open your shared hosting cPanel.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nu55dcfhqw66u54fdqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nu55dcfhqw66u54fdqz.png" alt="cPanel Home on shared hosting" width="600" height="289"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on ‘File Manager’&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on ‘Upload’&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upload the laravel50.zip to the root directory – &lt;em&gt;not the public_html.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extract the laravel50.zip. Your cPanel file manager should be looking something close to this:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai6pk7deuv143xb3b89t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai6pk7deuv143xb3b89t.png" alt="cPanel File manager" width="600" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open the laravel50 folder and MOVE the CONTENTS of the public folder to your cpanel’s public_html folder. You can as well delete the empty public folder now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the public_html folder and locate the index.php file. Right-click on it and select Code Edit from the menu.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This will open up another tab showing the cpanel code editor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;change the following lines (22 and 36) from&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`require __DIR__.'/../bootstrap/autoload.php';
 ...
 $app = require_once __DIR__.'/../bootstrap/app.php';`

 to

`require __DIR__.'/../laravel50/bootstrap/autoload.php';
 ...
 $app = require_once __DIR__.'/../laravel50/bootstrap/app.php';`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;NB: According to your projects folder name&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Please do not change the contents of your .htaccess file (Unless you know what you are doing 🙂)&lt;br&gt;
the .htaccess file should look something like this.&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 `&amp;lt;IfModule mod_rewrite.c&amp;gt;
                  &amp;lt;IfModule mod_negotiation.c&amp;gt;
                  Options -MultiViews
                  &amp;lt;/IfModule&amp;gt;

                  RewriteEngine On

                # Redirect Trailing Slashes…
                  RewriteRule ^(.*)/$ /$1 [L,R=301]

                # Handle Front Controller…
                  RewriteCond %{REQUEST_FILENAME} !-d
                  RewriteCond %{REQUEST_FILENAME} !-f
                  RewriteRule ^ index.php [L]
                  &amp;lt;/IfModule&amp;gt;`
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If everything went well, going to &lt;a href="http://yourdomain.com" rel="noopener noreferrer"&gt;http://yourdomain.com&lt;/a&gt; should throw database errors (if you have models running on your app). Not to worry! The next phase is migrating your databases to your shared hosting.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Migrating your tables&lt;/h2&gt;

&lt;p&gt;One sweet thing about Laravel Framework is that it enables you to quickly setup defined databases with a single command &lt;code&gt;php artisan migrate&lt;/code&gt;. Since we are using shared hosting, we can not do this without the use of SSH. This can be done easily if you have up to 10 tables. Its straightforward so let's start:&lt;/p&gt;

&lt;p&gt;Create a database on your web host.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Most cPanel comes with PHPMyAdmin and Mysql Database Wizard. Use the Mysql Database wizard to create a [Database and User] then assign the user to the database allowing all privileges. Note down the username and password you'll need that soon.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use the cpanel's PHPMyAdmin to create your tables. To do this efficiently, open up PHPMyAdmin on your local machine. For each table structure create the exact structure on your cPanel’s PHPMyAdmin.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fol9n9r0wp8wsm6906pqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fol9n9r0wp8wsm6906pqj.png" alt="This is an Example" width="614" height="343"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There's another way of importing and exporting databases from a local machine.&lt;br&gt;
login to PHPMyAdmin from your computer locate the database your project uses, from the toolbar find the export tool.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkguxsw7d238rdc62llse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkguxsw7d238rdc62llse.png" alt="This is an Example" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
After exporting move over to your shared hosting and do the same, but this time we are using the import tool&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkhlx1hqvhac0cy13280.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkhlx1hqvhac0cy13280.png" alt="This is an Example" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
If successfully uploaded you'll see the 'Success Message"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On your cpanel file manager, navigate to laravel50 (or your laravel project directory). Go to &lt;code&gt;config/database.php&lt;/code&gt; . Right-click and select ‘Code Edit’. Locate line 55 – Your MySQL configuration Section.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Change the username and password to your MySQL username and password from your cpanel (You noted Earlier).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ensure that these details are entered correctly.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If all goes well, you should have your site working fine now. So go ahead and try it out.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
