<?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: Farukh Saifi</title>
    <description>The latest articles on DEV Community by Farukh Saifi (@farukh).</description>
    <link>https://dev.to/farukh</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%2F281745%2Fa6366695-861b-4892-9e87-c178d2d80940.jpeg</url>
      <title>DEV Community: Farukh Saifi</title>
      <link>https://dev.to/farukh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/farukh"/>
    <language>en</language>
    <item>
      <title>There's something off in the "dev with AI or die" narrative</title>
      <dc:creator>Farukh Saifi</dc:creator>
      <pubDate>Tue, 26 Aug 2025 22:42:42 +0000</pubDate>
      <link>https://dev.to/farukh/theres-something-off-in-the-dev-with-ai-or-die-narrative-4j77</link>
      <guid>https://dev.to/farukh/theres-something-off-in-the-dev-with-ai-or-die-narrative-4j77</guid>
      <description>&lt;p&gt;It's everywhere, &lt;a href="https://bsky.app/profile/jcoglan.com/post/3lvvyclmq2s23" rel="noopener noreferrer"&gt;it's eating up every other dev topic debate&lt;/a&gt;: learn to dev with AI or you'll be replaced. As a dev, I can't help but feel threatened by these claims. Way more than I should.&lt;/p&gt;
&lt;p&gt;I mean, I love hacking around with the new cool toy as much as anybody. I use code assistants all day long, from Cursor tab to RefactAI. I felt so clever when I automated ticket creation with Jira MCP with full codebase and commit history knowledge. I felt not so clever when my "instant" refactoring took me a full day to review and rewrite to fix "just that little bug". I love automating my work as much as the next dev, but I also love to measure the results of automation.&lt;/p&gt;
&lt;p&gt;So when big names come up with dull articles about the &lt;a href="https://ashtom.github.io/developers-reinvented" rel="noopener noreferrer"&gt;"4 levels of dev with AI"&lt;/a&gt; which is that close to "top 5 agents to pop up a unicorn out of thin air in 2025", I feel something weird. They use code assistants dozens of times less than I do, yet they see "evidence" of a total world transformation I don't even see the beginning of in my day-to-day use.&lt;/p&gt;
&lt;p&gt;Where is &lt;a href="https://ml-site.cdn-apple.com/papers/the-illusion-of-thinking.pdf" rel="noopener noreferrer"&gt;the collapse of LLM reasoning&lt;/a&gt;? Where are &lt;a href="https://research.google/blog/better-language-models-without-massive-compute/" rel="noopener noreferrer"&gt;the small models winning in the end&lt;/a&gt;? Where are the control groups? Show me the data, I'll believe you. Where are the failures too? I've experienced more than one, surely you have data about that too if you're a big tech CTO, no? And then again, why prophesy so much before having the data? The natural move would be to train your team, maybe even a bit secretly, then outperform everybody and finally brag once you have secured the win. Right?&lt;/p&gt;
&lt;p&gt;There must be something else.&lt;/p&gt;
&lt;h2&gt;
&lt;br&gt;
&lt;a href="https://dev.to/etienneburdet/theres-something-off-in-the-dev-with-ai-or-die-narrative-1975#something-else-is-often-money"&gt;&lt;/a&gt;"Something else" is often money&lt;/h2&gt;
&lt;p&gt;The first obvious reason is of course to have people burn billions in LLM tokens. This kind of narrative is really effective with C-levels who aren't really using it daily. It make them feel they are losing ground on a huge competitive advantage and they'll force their teams to use LLMs for everything.&lt;/p&gt;
&lt;p&gt;There is a nice side effect: you get social experimentation for free. I mean, hacking around commands, cursorRules and CLAUDE.md files is fun, but really the final product will have most of it baked in. But people are doing it for free—nope, people are paying to do that! They are running the experimentation at scale while burning tokens, documenting failures on the way. How convenient for an LLM provider?&lt;/p&gt;
&lt;p&gt;And last but not least: hype drives capital. &lt;a href="https://www.politico.com/newsletters/digital-future-daily/2023/12/01/5-questions-for-meredith-whittaker-00129677" rel="noopener noreferrer"&gt;Meredith Whittaker puts it better than anybody&lt;/a&gt;:&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%2Fpu3u1ik4l97usmeacyxb.png"&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%2Fpu3u1ik4l97usmeacyxb.png" alt=" " width="800" height="690"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, that a token dealer overhypes their product, I get why. That other "big money people" would be so eager to buy it that they wouldn't run A/B testing or measure gains? There's a bit more than FOMO or paying rent forever to an LLM provider. When I hear &lt;em&gt;"Most of your code will be written by AI"&lt;/em&gt;, I can't help but hear &lt;em&gt;"now I own your means of production, so you better keep a low profile"&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;
&lt;br&gt;
&lt;a href="https://dev.to/etienneburdet/theres-something-off-in-the-dev-with-ai-or-die-narrative-1975#the-good-ol-dehumanization-dream"&gt;&lt;/a&gt;The good ol' dehumanization dream&lt;/h2&gt;
&lt;p&gt;How many times have we seen a desperate look from a PO, customer or designer that says &lt;em&gt;"But, it's just a form, why is it that hard? You lazy devs will invent anything to avoid working&lt;/em&gt;". Because, we are a bunch of unmanageable weirdos aren't we? Sometimes I wonder if I don't ship software just to prove I'm an uncontrollable smartass. Why do we always have an obscure HN link that makes our CEO's "big vision" fall flat? Why is there always one of us to run a script proving financial forecasts are wrong? Why do we keep inventing squads and guilds and chapters and epics? Can't we just sit—not STAND—at our desks and do as the boss says?&lt;/p&gt;
&lt;p&gt;Now, if you're managing a lot of devs, I get the temptation: &lt;em&gt;"I have a big vision for humanity—that incidentally makes me rich and famous, but that's not the point—AI transforms that into a polished product".&lt;/em&gt; No more &lt;em&gt;"what about… ?&lt;/em&gt;", no more pushbacks. No more human messiness. And if humans are not happy, the "big boss" can now close the precious token tap and give it to someone else. This would be much simpler, right? This would be all too tempting to make the devs more replaceable, more interchangeable, wouldn't it? Truly, I find it hard to ignore the power dynamics behind all of that.&lt;/p&gt;
&lt;p&gt;It's a pattern we've seen before, from the Luddites to mines, from silk workers to the automotive industry or agriculture. With any wave of automation, there's also a shift of power that gets pushed. Whether it's wages, whether it's unions, whether it's outsourcing, there's often a power struggle that goes far beyond the actual productivity gain. And power is where we believe it is, right? (Yes, I'm totally citing Game of Thrones as the top of my philosophical references).&lt;/p&gt;
&lt;h2&gt;
&lt;br&gt;
&lt;a href="https://dev.to/etienneburdet/theres-something-off-in-the-dev-with-ai-or-die-narrative-1975#be-careful-what-you-wish-for"&gt;&lt;/a&gt;Be careful what you wish for&lt;/h2&gt;
&lt;p&gt;For the sake of argument again, let's admit that AI indeed replaces a good part of "the work". Now let me put a caricatured problem to emphasize things. We have two teams designing the same product. One is business school only with zero tech or design knowledge and automates engineering and design with AI. The other one is a group of hacky devs and UX who will automate PPTs, marketing and C-level jobs. Who do you place your money on, honestly?&lt;/p&gt;
&lt;p&gt;Fun fact, there are only two things where I'm sure AI is saving me a lot of time as of now: writing tickets and doing large searches. Claude Code (or Goose) with Jira MCP is excellent at writing tickets from messy feedback and looking in the codebase to see if the workload is OK. Perplexity can save me an afternoon of searching with excellent links I could never have found. Large code refactoring though? Some of them "worked", but I'm still unsure if I spent more time reviewing them and eliminating dead code than I would have writing them from scratch.&lt;/p&gt;
&lt;p&gt;And then, what if in the end we only need very small local models, called by pretty sophisticated agents that are a lot of regular code? What if it's pseudo-code to code models, transformers or SyntaxGuidedSynthesis that wins? Why do we need "Language" models, if it's autonomous anyway? Or is it? What if writing a specialized agent for your codebase becomes a required skill? Kimi K2 or Devstral aren't that far away, we don't need an expensive Claude to grep and make todos, to name only a few things.&lt;/p&gt;
&lt;p&gt;At this point, I think we just don't know what "AI for dev" means. We don't know "how much" and we don't know "what kind". I have zero clue which approach will work or not, nor at which magnitude. What I see though, is that there's one narrative that's pushed way harder than the others. One where devs lose power and buy tokens by the billions.&lt;/p&gt;
&lt;p&gt;How convenient, because in many other narratives there are teams of 5 hackers disrupting giants on the cheap, like early Rails days on steroids.&lt;/p&gt;
&lt;h2&gt;
&lt;br&gt;
&lt;a href="https://dev.to/etienneburdet/theres-something-off-in-the-dev-with-ai-or-die-narrative-1975#whats-the-sane-approach-then"&gt;&lt;/a&gt;What's the sane approach then?&lt;/h2&gt;
&lt;p&gt;If authoritarianism is bourgeoisie being scared, then what to think of Sam Altman being scared by GPT-5 and doing whatever he can to convince your boss that you're gonna be addicted to his tokens? Maybe he is more scared for his job than for ours. We don't have proof of either, but this should at least be explored, right?&lt;/p&gt;
&lt;p&gt;In this light, the skeptic developer crowd is absolutely needed. We need to have some people not budging until the product is actually good with proven gains. They are the reference against which we measure, the control group. Early adopters should be outliers, not the bulk of the market. This is how we develop good products in the first place and why we don't like it forced on us. The urge to push an unfinished product feels dubious to us at best and rightfully so.&lt;/p&gt;
&lt;p&gt;The sane approach is just to stay curious, test and measure. You're a hacky enthusiast? Fine, build some agents and test them. You're a pragmatic skeptic? Totally fine as well, don't use it until it makes your job really faster. We need to know that too. I totally understand that a large company would run an A/B test of teams with and without LLM tools and measure the output. I don't understand why they would force the results if it's really efficiency that is at stake.&lt;/p&gt;
&lt;p&gt;All those prophecies really make me think that it's not only efficiency that is at stake though. It's shifting people's perception of where the power is. But remember, if a "visionary" CEO fires you to be replaced by AI, don't forget to run Claude on your full company folder and ask it to make the slides, financial projections and OKRs for the quarter. Whether you email that to them as a middle finger or keep it to yourself to spin up your own thing is up to you. Just note that maybe it's not you who's been replaced by AI in the end.&lt;/p&gt;
&lt;br&gt;

</description>
    </item>
    <item>
      <title>Arriving to a new milestone in my career</title>
      <dc:creator>Farukh Saifi</dc:creator>
      <pubDate>Tue, 26 Aug 2025 22:40:21 +0000</pubDate>
      <link>https://dev.to/farukh/arriving-to-a-new-milestone-in-my-career-4cn9</link>
      <guid>https://dev.to/farukh/arriving-to-a-new-milestone-in-my-career-4cn9</guid>
      <description>&lt;p&gt;&lt;span&gt;##&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;What This Milestone Represents&lt;/span&gt;&lt;br&gt;Reaching this milestone represents more than just professional progress—it’s a moment of personal growth. It’s a sign that the dedication and passion I’ve invested are paying off. Whether it’s mastering a new skill, taking on leadership responsibilities, or completing a major project, this achievement is a reminder that perseverance, curiosity, and a love for what I do are key drivers of success.&lt;br&gt;&lt;span&gt;##&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;The Challenges That Shaped Me&lt;/span&gt;&lt;br&gt;Of course, no journey is without its hurdles. There were moments of doubt, failed prototypes, and unforeseen obstacles that tested my resolve. However, those challenges taught me the importance of adaptability, creative thinking, and collaboration. They pushed me to improve, to think outside the box, and to view setbacks not as failures, but as opportunities to learn and grow.&lt;br&gt;&lt;span&gt;##&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Embracing New Opportunities&lt;/span&gt;&lt;br&gt;This milestone is also an opportunity to embrace new challenges and expand my horizons. Whether it’s exploring emerging technologies, diving deeper into specific fields of interest, or taking on a mentorship role, I’m excited about what lies ahead. The engineering and design landscape is constantly evolving, and staying curious and open to new ideas is what keeps this career path so rewarding.&lt;br&gt;&lt;span&gt;##&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Gratitude and Acknowledgment&lt;/span&gt;&lt;br&gt;I’d be remiss if I didn’t take a moment to acknowledge the mentors, colleagues, and collaborators who have been part of this journey. Their insights, support, and shared enthusiasm have been invaluable. Reaching this milestone is as much a testament to their influence as it is to my individual efforts.&lt;br&gt;&lt;span&gt;##&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Looking Ahead&lt;/span&gt;&lt;br&gt;While I’m proud of how far I’ve come, I know this is just one milestone in a much larger journey. The road ahead is filled with exciting possibilities, and I’m eager to continue pushing boundaries, learning new things, and contributing to meaningful projects. If there’s one thing I’ve learned along the way, it’s that every new milestone is not an end, but rather a launchpad for the next chapter.&lt;br&gt;Thank you for being part of this journey with me, and here’s to the adventures yet to come!&lt;br&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Blog Syndication Platform Plan</title>
      <dc:creator>Farukh Saifi</dc:creator>
      <pubDate>Tue, 26 Aug 2025 20:20:29 +0000</pubDate>
      <link>https://dev.to/farukh/blog-syndication-platform-plan-4814</link>
      <guid>https://dev.to/farukh/blog-syndication-platform-plan-4814</guid>
      <description>&lt;p&gt;Of course. Based on the development plan, here is a detailed prompt you can use with an AI-powered IDE like Cursor to generate the initial codebase for your blog syndication application.&lt;/p&gt;

&lt;p&gt;This prompt is designed to be comprehensive, providing the AI with the necessary context, technology stack, and feature requirements to build the Minimum Viable Product (MVP).&lt;/p&gt;




&lt;h3&gt;
  
  
  Prompt for Cursor IDE
&lt;/h3&gt;

&lt;p&gt;"You are an expert full-stack software developer. Your task is to generate the initial codebase for a blog syndication application based on the following detailed plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Goal:&lt;/strong&gt;&lt;br&gt;
Create a web application that allows a user to write a blog post in a central dashboard and then publish it to their Medium account. This is the MVP for a larger system that will eventually support multiple platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technology Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node.js with Express.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React with Vite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI Components:&lt;/strong&gt; shadcn/ui&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; PostgreSQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;File Structure:&lt;/strong&gt;&lt;br&gt;
Please create a monorepo structure with two main packages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/server&lt;/code&gt;: For the Node.js/Express.js backend.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/client&lt;/code&gt;: For the React frontend.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Backend (&lt;code&gt;/server&lt;/code&gt;) Requirements:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;API Server Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up a basic Express.js server.&lt;/li&gt;
&lt;li&gt;Include &lt;code&gt;cors&lt;/code&gt; middleware to allow requests from the frontend.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;dotenv&lt;/code&gt; to manage environment variables.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Database Schema (PostgreSQL):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Please define the database schema. You can use a simple SQL script or an ORM like Prisma.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;posts&lt;/code&gt; table:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id&lt;/code&gt; (Primary Key, UUID)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;title&lt;/code&gt; (TEXT, NOT NULL)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;content_markdown&lt;/code&gt; (TEXT)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;status&lt;/code&gt; (VARCHAR, e.g., 'draft', 'published')&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;created_at&lt;/code&gt; (TIMESTAMP)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;updated_at&lt;/code&gt; (TIMESTAMP)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;credentials&lt;/code&gt; table:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id&lt;/code&gt; (Primary Key, SERIAL)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;platform_name&lt;/code&gt; (VARCHAR, e.g., 'medium')&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;api_key&lt;/code&gt; (TEXT, should be encrypted)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;user_id&lt;/code&gt; (placeholder for future multi-user support)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;API Endpoints:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;POST /api/posts&lt;/code&gt;&lt;/strong&gt;: Creates a new post in the &lt;code&gt;posts&lt;/code&gt; table. Expects &lt;code&gt;{ title, content_markdown }&lt;/code&gt; in the request body.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;GET /api/posts&lt;/code&gt;&lt;/strong&gt;: Retrieves all posts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;PUT /api/credentials/medium&lt;/code&gt;&lt;/strong&gt;: Saves or updates the user's Medium API key in the &lt;code&gt;credentials&lt;/code&gt; table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;POST /api/publish/medium&lt;/code&gt;&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Takes a &lt;code&gt;{ postId }&lt;/code&gt; in the body.&lt;/li&gt;
&lt;li&gt;Retrieves the post content from the &lt;code&gt;posts&lt;/code&gt; table.&lt;/li&gt;
&lt;li&gt;Retrieves the Medium API key from the &lt;code&gt;credentials&lt;/code&gt; table.&lt;/li&gt;
&lt;li&gt;Makes a &lt;code&gt;POST&lt;/code&gt; request to the Medium API (&lt;code&gt;https://api.medium.com/v1/users/{{authorId}}/posts&lt;/code&gt;) to publish the article.&lt;/li&gt;
&lt;li&gt;The request to Medium should include &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;contentFormat: "markdown"&lt;/code&gt;, &lt;code&gt;content&lt;/code&gt;, and &lt;code&gt;publishStatus: "public"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Update the post's status in the database.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Frontend (&lt;code&gt;/client&lt;/code&gt;) Requirements:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initialize a React application using Vite.&lt;/li&gt;
&lt;li&gt;Set up Tailwind CSS and initialize shadcn/ui.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Components and Pages:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard Page (&lt;code&gt;/&lt;/code&gt;):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;This should be the main view.&lt;/li&gt;
&lt;li&gt;Display a list of all posts fetched from &lt;code&gt;GET /api/posts&lt;/code&gt;. Use the &lt;code&gt;Table&lt;/code&gt; component from shadcn/ui.&lt;/li&gt;
&lt;li&gt;Include a &lt;code&gt;Button&lt;/code&gt; to navigate to the "New Post" page.&lt;/li&gt;
&lt;li&gt;Include a link/button to the "Settings" page.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New Post / Editor Page (&lt;code&gt;/editor&lt;/code&gt;):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;code&gt;Input&lt;/code&gt; for the post title.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;Textarea&lt;/code&gt; for the Markdown content. Make it large and suitable for writing.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;Button&lt;/code&gt; to "Save Draft" which calls &lt;code&gt;POST /api/posts&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;Button&lt;/code&gt; to "Publish to Medium" which first saves the post and then calls &lt;code&gt;POST /api/publish/medium&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settings Page (&lt;code&gt;/settings&lt;/code&gt;):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;code&gt;Input&lt;/code&gt; field for the user to enter their Medium Integration Token (API Key).&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;Button&lt;/code&gt; to "Save" which calls &lt;code&gt;PUT /api/credentials/medium&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;User Flow for the MVP:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; The user navigates to the &lt;strong&gt;Settings&lt;/strong&gt; page and saves their Medium API key.&lt;/li&gt;
&lt;li&gt; The user navigates to the &lt;strong&gt;Dashboard&lt;/strong&gt; and clicks "New Post".&lt;/li&gt;
&lt;li&gt; On the &lt;strong&gt;Editor&lt;/strong&gt; page, they write a title and content.&lt;/li&gt;
&lt;li&gt; They click "Publish to Medium".&lt;/li&gt;
&lt;li&gt; The app communicates with the backend, which then uses the saved API key to post the content to Medium.&lt;/li&gt;
&lt;li&gt; The post list on the Dashboard should reflect the new post.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Please generate the complete file structure and boilerplate code for both the client and server based on these requirements."&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My Portfolio React Js to Next Js</title>
      <dc:creator>Farukh Saifi</dc:creator>
      <pubDate>Fri, 14 Mar 2025 20:22:14 +0000</pubDate>
      <link>https://dev.to/farukh/my-portfolio-react-js-to-next-js-2bgi</link>
      <guid>https://dev.to/farukh/my-portfolio-react-js-to-next-js-2bgi</guid>
      <description>&lt;p&gt;I started the year by creating my portfolio, which is like a showcase of my coding journey so far. It shows off my skills and projects in HTML, CSS, JavaScript, React.js, Next.js, and more. As I start looking for my first Tech Blog website, I’d love to hear from fellow developers who have been in this position before.&lt;/p&gt;

&lt;p&gt;Live site: &lt;a href="https://www.farukh.me/" rel="noopener noreferrer"&gt;https://www.farukh.me/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub repository: &lt;a href="https://github.com/FarukhSaifi/farukhportfolio" rel="noopener noreferrer"&gt;https://github.com/FarukhSaifi/farukhportfolio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Questions for you reading this post:&lt;br&gt;
Is there anything important missing from my portfolio?&lt;/p&gt;

&lt;p&gt;Is it easy to navigate?&lt;/p&gt;

&lt;p&gt;What are your overall thoughts on the site?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>nextjs</category>
      <category>portfolio</category>
    </item>
  </channel>
</rss>
