<?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: Ekim Kael</title>
    <description>The latest articles on DEV Community by Ekim Kael (@ekimkael).</description>
    <link>https://dev.to/ekimkael</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F74988%2F9607210e-d174-4a30-bea2-9e88769bc5f5.png</url>
      <title>DEV Community: Ekim Kael</title>
      <link>https://dev.to/ekimkael</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ekimkael"/>
    <language>en</language>
    <item>
      <title>How a Reading Problem Turned Into a Listening App</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Mon, 03 Aug 2026 13:07:00 +0000</pubDate>
      <link>https://dev.to/ekimkael/how-a-reading-problem-turned-into-a-listening-app-1g4o</link>
      <guid>https://dev.to/ekimkael/how-a-reading-problem-turned-into-a-listening-app-1g4o</guid>
      <description>&lt;p&gt;For the past few months, I've been working on a listening app, and I'd like to take you along for the journey — from where it all started to where it's going.&lt;/p&gt;

&lt;p&gt;Through this series, I'll share the ideas, challenges, mistakes, and small victories that have shaped &lt;strong&gt;Orateur&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But before we dive into the technology, let's go back to the very beginning.&lt;/p&gt;

&lt;h2&gt;
  
  
  How did the idea come about?
&lt;/h2&gt;

&lt;p&gt;Like many people, I subscribe to several newsletters and receive dozens of interesting articles every week. Every time I see one, I tell myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"I'll read it later."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I open it in a new browser tab and move on with my day. The problem is... &lt;strong&gt;"later" almost never comes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I finally return to that tab, the article is often long, a notification pops up, I get distracted, or I simply lose the motivation to start reading.&lt;/p&gt;

&lt;p&gt;Eventually, I close the tab without having read a single paragraph. After a few weeks, my browser turns into a graveyard of forgotten tabs. I'm pretty sure I'm not the only one this happens to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Another challenge: articles in English
&lt;/h2&gt;

&lt;p&gt;There was another issue as well. Many of the articles I wanted to read were written in English. Although I can read and understand English fairly well, spending twenty or thirty minutes reading a technical article requires much more mental effort than reading in French. After a while, it becomes tiring, and I often end up giving up.&lt;/p&gt;

&lt;p&gt;So I started asking myself a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if I could simply listen to these articles while doing something else?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The spark
&lt;/h2&gt;

&lt;p&gt;With the rise of AI, one day I had the idea of asking it to read an article I was genuinely interested in. That very article eventually became the demo article available on the Orateur website.&lt;/p&gt;

&lt;p&gt;Being Claude Code, it naturally went into full &lt;em&gt;over-engineering&lt;/em&gt; mode. All that because at the time it couldn't read(no TTS feature built yet), so it built an actual web app to read that specific article. I quickly realized it could become much more than a fun experiment. So I began automating the entire workflow.&lt;/p&gt;

&lt;p&gt;The goal was simple: paste an article's URL, fall back to copying and pasting its text whenever extraction wasn't possible, or import the content directly from PDF, Markdown, or plain text files. At that point, I was no longer building a proof of concept. I was building &lt;strong&gt;Orateur&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  One idea led to another...
&lt;/h2&gt;

&lt;p&gt;The project quickly kept growing. I no longer wanted to simply listen to articles. I wanted the whole experience to feel effortless. One URL, one click, a few seconds later, your article was ready to listen to. Little by little, that small web app evolved into a real application&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm most proud of
&lt;/h2&gt;

&lt;p&gt;Surprisingly, importing articles isn't the feature I'm most proud of.&lt;/p&gt;

&lt;p&gt;The real milestone was integrating an AI speech model capable of producing voices that sound far more natural than the default voices available on our phones and computers. And there's something even better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It works completely offline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the models are downloaded and installed, you only need an internet connection to fetch an article. Everything else---from text processing to playback---runs locally on your device. That was incredibly important to me.&lt;/p&gt;

&lt;p&gt;I wanted Orateur to remain useful anywhere, even with a slow, expensive, or completely unavailable internet connection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give Orateur a try
&lt;/h2&gt;

&lt;p&gt;If you're curious, you can already try the web version of Orateur:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://orateur.digitalekim.net" rel="noopener noreferrer"&gt;https://orateur.digitalekim.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The mobile app and a browser extension are currently in development.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;This is only the beginning. In this first article, I shared the story behind why I started building Orateur. But the most interesting part is still ahead.&lt;/p&gt;

&lt;p&gt;In the next episode, We'll talk about how I went from the robotic text-to-speech voices built into our devices to AI-powered voices that sound surprisingly natural—while still running entirely offline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trust me... getting there was far from easy.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>react</category>
      <category>pwa</category>
    </item>
    <item>
      <title>How to build a React Native android application locally with Expo 50</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Wed, 03 Jul 2024 04:48:30 +0000</pubDate>
      <link>https://dev.to/ekimkael/how-to-build-a-react-native-android-application-locally-with-expo-50-27e4</link>
      <guid>https://dev.to/ekimkael/how-to-build-a-react-native-android-application-locally-with-expo-50-27e4</guid>
      <description>&lt;p&gt;If you have sensitive information that you don't want to get on the Internet and share with Expo, or if you don't have the money to wait your turn in the queue, it's possible to build your application locally, and that's what we're going to look at today. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;IMPORTANT: You're more likely to get it right if you're on macOS or Linux. For Windows you need to have WSL installed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. eas(Expo Application Service) account
&lt;/h2&gt;

&lt;p&gt;First of all, go to &lt;a href="https://expo.dev/" rel="noopener noreferrer"&gt;https://expo.dev/&lt;/a&gt; and create an account. Otherwise it will be difficult to follow this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Install eas-cli
&lt;/h2&gt;

&lt;p&gt;EAS CLI is the command-line application you'll use to interact with EAS services from your terminal. To install it, run the following command:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install -g eas-cli


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  3. Login to your account
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

eas login


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  4. Configuring the build
&lt;/h2&gt;

&lt;p&gt;To configure your project's build, use the command&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

eas build configure


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command also initiates your project on your account on the expo servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Credentials.json
&lt;/h2&gt;

&lt;p&gt;This part is important when you want to produce the version of your application that will go on the AppStore or Google Play Store. It contains the credentials and certificates your application will need to be signed and recognized by the Play Store (in our case).&lt;/p&gt;

&lt;p&gt;If the credentials are located on your machine, you must specify this in the eas.json file, otherwise it will look for them in your online project. To do this, you can add this line to your eas.json file on the appropriate build profile.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

credentialsSource: 'local'


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  6. Java 17
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fz2x8e84yfftx4zlw4v2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fz2x8e84yfftx4zlw4v2n.png" alt="screenshot of error log when java 17 is not used"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You must have Java installed on your machine, otherwise you'll get the above error. Version 17 is the recommended one. I haven't tested higher versions, so I can't say.&lt;/p&gt;
&lt;h2&gt;
  
  
  7. Environment variables
&lt;/h2&gt;

&lt;p&gt;When you do a local build, &lt;strong&gt;EAS secrets&lt;/strong&gt; are not supported. Instead, you need to use environment variables. If you have environment variables, expo will not take .env.local into account. So you'll need to create an .env file and then delete it every time you finish a build.  Don't add your &lt;code&gt;.env&lt;/code&gt; file to your &lt;code&gt;.gitignore&lt;/code&gt; file - it will be ignore.  We'll look at how to automate the whole process from step 5 onwards in a future article.&lt;/p&gt;
&lt;h2&gt;
  
  
  8. Files not to be committed:
&lt;/h2&gt;

&lt;p&gt;As I said earlier, the informations contained in these files are sensitive, so it must not be possible to find them online:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;credentials.json&lt;/li&gt;
&lt;li&gt;Your keystore file (.jks)&lt;/li&gt;
&lt;li&gt;.env&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  9. Launch the build
&lt;/h2&gt;

&lt;p&gt;Once all the elements are ready, you just need to know the profile for which you want to produce the application and launch the command:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

eas build --platform android --profile (development/preview/production) --local 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fh3fzswzl9dr4rswac2w0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fh3fzswzl9dr4rswac2w0.png" alt="screenshot of build startup"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you take the time to observe you'll see that Expo logs everything it does during the process and in the first 2 lines you can see that it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;loads environment variables&lt;/li&gt;
&lt;li&gt;Uses local credentials (if specified)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the process has started, you wait a few minutes for it to finish and tell you where to find your application's compiler file, and voila!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5nhj5f3dxxhxpwdsclyy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5nhj5f3dxxhxpwdsclyy.png" alt="screenshot of build completed without errors"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;Some of the options available when building online are not available locally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can only do one build at a time and for one specific platform (android or iOS).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You'll have to update the &lt;code&gt;expo.android.versionCode&lt;/code&gt; or &lt;code&gt;expo.ios.buildNumber&lt;/code&gt; yourself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Caching is not supported.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You must ensure that the environment has all the necessary tools: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js/Yarn/npm &lt;/li&gt;
&lt;li&gt;Fastlane (iOS only)&lt;/li&gt;
&lt;li&gt;CocoaPods (iOS only)&lt;/li&gt;
&lt;li&gt;Android SDK and NDK&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;I hope you've found this article useful, and I'll see you soon to automate the process. Ciao!&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>tutorial</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>How do you stop repeating yourself ?</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Tue, 28 Sep 2021 08:07:26 +0000</pubDate>
      <link>https://dev.to/ekimkael/how-do-you-stop-repeating-yourself-1n8d</link>
      <guid>https://dev.to/ekimkael/how-do-you-stop-repeating-yourself-1n8d</guid>
      <description>&lt;p&gt;Do you guys have something like feature helpers?&lt;br&gt;
Like you want to make login or authentication, you grab it/clone/copy it to your application and you're ready to go? &lt;/p&gt;

&lt;p&gt;II'm building React/Nextjs app everyday and I feel a bit tired to have to repeat the process on each project&lt;/p&gt;

</description>
      <category>help</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Chakra UI: Theme - Update Tab style</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Sun, 05 Sep 2021 07:54:34 +0000</pubDate>
      <link>https://dev.to/ekimkael/chakra-ui-theme-update-tab-style-1cdl</link>
      <guid>https://dev.to/ekimkael/chakra-ui-theme-update-tab-style-1cdl</guid>
      <description>&lt;p&gt;I'm working on a project with &lt;strong&gt;Chakra UI&lt;/strong&gt; where I need to create a navigation but it's more like tabs so I chose to use Chakra UI Tabs. I'm personally not a fan of the approach of writing CSS rules in components so I always prefer to modify the theme to fit my needs.&lt;/p&gt;

&lt;p&gt;In this case, I really needed my Tabs to look like a classic &lt;code&gt;navbar&lt;/code&gt; so I took the &lt;code&gt;unstyled&lt;/code&gt; &lt;strong&gt;variant&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;Tabs variant="unstyled"&amp;gt;
  &amp;lt;TabList&amp;gt;
    &amp;lt;Tab&amp;gt;Tab 1&amp;lt;/Tab&amp;gt;
    &amp;lt;Tab&amp;gt;Tab 2&amp;lt;/Tab&amp;gt;
  &amp;lt;/TabList&amp;gt;
  &amp;lt;TabPanels&amp;gt;
    &amp;lt;TabPanel&amp;gt;
      &amp;lt;p&amp;gt;one!&amp;lt;/p&amp;gt;
    &amp;lt;/TabPanel&amp;gt;
    &amp;lt;TabPanel&amp;gt;
      &amp;lt;p&amp;gt;two!&amp;lt;/p&amp;gt;
    &amp;lt;/TabPanel&amp;gt;
  &amp;lt;/TabPanels&amp;gt;
&amp;lt;/Tabs&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;And here is how to change the style of a &lt;code&gt;Tab&lt;/code&gt; in the &lt;code&gt;theme&lt;/code&gt; file 👇🏾&lt;br&gt;
The first thing to note is that all child styles end up in Tabs.&lt;br&gt;
So if you want to change &lt;code&gt;Tablist&lt;/code&gt; or &lt;code&gt;TabPanel&lt;/code&gt;, it will also be done in the Tabs attribute at the theme file.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

export const theme = extendTheme({
    Tabs: {
      variants: {
        unstyled: {
          paddingY: '4',
          marging: '0',
          tab: {
            _selected: {
              color: 'white',
              boxShadow: 'none',
            },
          },
        },
      },
    },
  },
});


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fd8xyqpq7b4nrr0q25ur3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fd8xyqpq7b4nrr0q25ur3.png" alt="Screen Shot 2021-09-05 at 08.53.43"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>styledcomponent</category>
      <category>emotion</category>
    </item>
    <item>
      <title>Back to yarn 1x after migrating to the 2x "Berry" version</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Sat, 24 Apr 2021 17:18:31 +0000</pubDate>
      <link>https://dev.to/ekimkael/back-to-yarn-1x-after-migrating-to-the-2x-berry-version-2798</link>
      <guid>https://dev.to/ekimkael/back-to-yarn-1x-after-migrating-to-the-2x-berry-version-2798</guid>
      <description>&lt;p&gt;If you are like me and wanted to test yarn 2x "Berry" and a few seconds later you were doing &lt;code&gt;npm uninstall -g yarn&lt;/code&gt; and then &lt;code&gt;npm install -g yarn&lt;/code&gt; but the version still was 2x, you can revert to the 1x version by doing:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yarn set version 1.22.10&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;(knowing that 1.22.10 is the version I want to use)&lt;br&gt;
Bye 👋 ✌️ &lt;/p&gt;

</description>
      <category>help</category>
      <category>yarn</category>
      <category>npm</category>
    </item>
    <item>
      <title>Flickering with React/Nextjs</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Sat, 27 Mar 2021 17:24:43 +0000</pubDate>
      <link>https://dev.to/ekimkael/flickering-with-react-nextjs-4ok5</link>
      <guid>https://dev.to/ekimkael/flickering-with-react-nextjs-4ok5</guid>
      <description>&lt;p&gt;&lt;a href="https://media.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%2Fjeeo93ajtm7t7h186da7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fjeeo93ajtm7t7h186da7.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi guys, i've this behavior happening when i try to test my authentication. &lt;br&gt;
I wonder if someone have already deal or knows how to deal with it.&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

</description>
      <category>help</category>
      <category>javascript</category>
      <category>react</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Customers chats integration with React</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Fri, 22 May 2020 06:57:26 +0000</pubDate>
      <link>https://dev.to/ekimkael/customers-chats-integration-with-react-4lfn</link>
      <guid>https://dev.to/ekimkael/customers-chats-integration-with-react-4lfn</guid>
      <description>&lt;p&gt;Does anyone here have already add those customers live chats? stuff like: &lt;strong&gt;Tawk&lt;/strong&gt; with React? I copied the code they give me and put it on the index html but it didn't work&lt;/p&gt;

</description>
      <category>react</category>
      <category>questions</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How to manage a team when deadlines are short</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Sat, 01 Sep 2018 07:58:35 +0000</pubDate>
      <link>https://dev.to/ekimkael/how-to-manage-a-team-when-deadlines-16ob</link>
      <guid>https://dev.to/ekimkael/how-to-manage-a-team-when-deadlines-16ob</guid>
      <description>&lt;p&gt;I recently got a job as a designer.Last week I was promoted to head the frontend and design team.Yeah!✨🎈🎉🎊&lt;/p&gt;

&lt;p&gt;No, no yeah!!&lt;/p&gt;

&lt;p&gt;The joy disappeared very quickly because I have to manage my team but I'm lost on one thing in particular: scheduling tasks.&lt;/p&gt;

&lt;p&gt;As far as design is concerned, I'm still okay (but I'm interested in new approaches) but I don't know how to plan the tasks from the frontend.&lt;/p&gt;

&lt;p&gt;We will use ReactJS as framework.so if there are methodologies we can use with thanks.&lt;/p&gt;

&lt;p&gt;One of the major concerns is time.&lt;/p&gt;

&lt;p&gt;I wanted to start on Brad Frost's atomic design but you need an MVP by the end of the month and the boss wants results every week.&lt;/p&gt;

&lt;p&gt;How to deal with it?&lt;/p&gt;

&lt;p&gt;Any help is appreciated&lt;/p&gt;

</description>
      <category>help</category>
      <category>discuss</category>
      <category>manage</category>
      <category>planning</category>
    </item>
    <item>
      <title>React, React-Router and Fetch API</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Mon, 09 Jul 2018 17:12:36 +0000</pubDate>
      <link>https://dev.to/ekimkael/react-react-router-and-fetch-api-2gi5</link>
      <guid>https://dev.to/ekimkael/react-react-router-and-fetch-api-2gi5</guid>
      <description>&lt;p&gt;I'm having a problem with my React.&lt;/p&gt;

&lt;p&gt;I use React-Router and the Fetch API.&lt;/p&gt;

&lt;p&gt;So... I have a list of products and when I click on one, I am redirected to a route to display more details on the product in question but also to display the other products.&lt;/p&gt;

&lt;p&gt;Say: &lt;code&gt;reactapp.com/all&lt;/code&gt; for all products&lt;/p&gt;

&lt;p&gt;&lt;code&gt;reactapp.com/p/productID&lt;/code&gt; my two URLs&lt;/p&gt;

&lt;p&gt;My problem:&lt;/p&gt;

&lt;p&gt;When I am on &lt;code&gt;reactapp.com/p/productID&lt;/code&gt; and I click on another product, the URL is updated but the product information is not updated.&lt;/p&gt;

&lt;p&gt;When I click a second time, the product information I previously clicked is displayed &lt;br&gt;
I don't know if you understand me.I have a data restriction at the moment.so I can't deploy so you can see it.&lt;br&gt;
Please if you've understood what i mean, help me&lt;/p&gt;

</description>
      <category>react</category>
      <category>help</category>
      <category>beginners</category>
      <category>fetchapi</category>
    </item>
    <item>
      <title>Let's talk about clients</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Fri, 29 Jun 2018 13:36:50 +0000</pubDate>
      <link>https://dev.to/ekimkael/lets-talk-about-clients-1hgp</link>
      <guid>https://dev.to/ekimkael/lets-talk-about-clients-1hgp</guid>
      <description>&lt;p&gt;Hi,&lt;br&gt;
I think there are freelancers here too.&lt;br&gt;
So I really started this activity as a developer this year, and although I like working from everywhere and (sometimes) at times that suit us, I struggle.&lt;br&gt;
Then I humbly come to you for help.&lt;br&gt;
I'd like to know how you're doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;find clients&lt;/li&gt;
&lt;li&gt;what to do, what not to do&lt;/li&gt;
&lt;li&gt;If possible, is it better to meet the client when they contact you first?&lt;/li&gt;
&lt;li&gt;how do you establish your prices (are there apps that make your work easier?)
etc...
Here I would like us to linger more on the Internet but everything is good to take. Even on the field, it could help someone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>GraphQL these questions that we ask ourselves but that the tutos do not address</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Tue, 19 Jun 2018 11:13:17 +0000</pubDate>
      <link>https://dev.to/ekimkael/graphql-these-questions-that-we-ask-ourselves-but-that-the-tutos-do-not-address-11g9</link>
      <guid>https://dev.to/ekimkael/graphql-these-questions-that-we-ask-ourselves-but-that-the-tutos-do-not-address-11g9</guid>
      <description>&lt;p&gt;I was supposed to start a job today and all my schedule was done around that but for lack of any confirmation from the client and the team leader, I still looked on the internet.productivity level: 0, energy level: 0.it's when I remember that yesterday I was well surprised to know by doing a little waking that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WordPress can be converted to REST API which returns JSON responses and then&lt;/li&gt;
&lt;li&gt;GatsbyJS could recover them and with React in the background, transform all that into a static site or even a PWA.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Being a JAM Stack aspiring I was very quickly interested but having already tried to know what all the components of this Stack are for, I still block on a super powerful concept and tool that gives it a lot of charm I named: GraphQL&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;So...what is GraphQL?&lt;/li&gt;
&lt;li&gt;What's the point?&lt;/li&gt;
&lt;li&gt;How does it work?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the documentation you will find answers to these questions. I also advise you the post of: &lt;a href="https://dev.to/grigorkh/what-is-graphql-4n9j"&gt;Grigor Khachatryan&lt;/a&gt;&lt;br&gt;
There are many tutorials that also talk about it but which for me treats it badly because it launches itself all very quickly to the writing of GraphQL queries that to answer many rather important questions on which the novices stumble.&lt;br&gt;
Personally here are the questions I ask myself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why do I compare GraphQL to REST?&lt;/li&gt;
&lt;li&gt;Can't it be added to REST?&lt;/li&gt;
&lt;li&gt;one thing I like about REST is the way it allows us to write urls which is pretty sexy, so what about GraphQL?&lt;/li&gt;
&lt;li&gt;Using enough ExpressJS/HapiJS are there solutions to integrate GraphQL to these frameworks?&lt;/li&gt;
&lt;li&gt;At what level does GraphQL appear in an MVC architecture?(for example)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I just realized I've already found an answer to a question.&lt;br&gt;
These stupid questions can be turning in the heads of many I'm sure unless I'm the only one (ohh shame!!!!)&lt;/p&gt;

&lt;p&gt;On the documentation they give an excellent resource: &lt;a href="http://howtographql.com" rel="noopener noreferrer"&gt;how to graphql&lt;/a&gt;.I looked at the proposed route and it helps to answer some questions so I check it out.I'll get on it soon.&lt;/p&gt;

&lt;p&gt;you can add the questions you ask yourself in comments&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>graphql</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to make many http requests with react</title>
      <dc:creator>Ekim Kael</dc:creator>
      <pubDate>Wed, 13 Jun 2018 13:47:42 +0000</pubDate>
      <link>https://dev.to/ekimkael/how-to-make-many-http-requests-with-react-1ooj</link>
      <guid>https://dev.to/ekimkael/how-to-make-many-http-requests-with-react-1ooj</guid>
      <description>&lt;p&gt;Hi, please i'm stuck.&lt;br&gt;
is somebody knows how to make many request in a react component or route?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;componentDidMount = () =&amp;gt; {
    const { match: { params } } = this.props
    fetch(`/w/${params.work}`)
      .then(res =&amp;gt; res.json())
      .then(work =&amp;gt; this.setState({ work }))

    fetch('/works')
      .then(res =&amp;gt; res.json())
      .then(otherWorks =&amp;gt; this.setState({ otherWorks }))
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;something like this that works.&lt;br&gt;
I'm a beginner with &lt;strong&gt;React&lt;/strong&gt; so i don't really want things like &lt;strong&gt;Redux&lt;/strong&gt;&lt;br&gt;
i just want a beginner way.The first fetch work but not the second&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>help</category>
      <category>fetchapi</category>
      <category>react</category>
    </item>
  </channel>
</rss>
