<?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: bilal meziani</title>
    <description>The latest articles on DEV Community by bilal meziani (@bilalmez).</description>
    <link>https://dev.to/bilalmez</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%2F3824818%2F9d57e563-6cae-4265-94a6-38ebf58e9817.png</url>
      <title>DEV Community: bilal meziani</title>
      <link>https://dev.to/bilalmez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bilalmez"/>
    <language>en</language>
    <item>
      <title>What if 30,000 Ex-Oracle Employees Teamed Up?</title>
      <dc:creator>bilal meziani</dc:creator>
      <pubDate>Fri, 03 Apr 2026 17:30:45 +0000</pubDate>
      <link>https://dev.to/bilalmez/what-if-30000-ex-oracle-employees-teamed-up-4h2c</link>
      <guid>https://dev.to/bilalmez/what-if-30000-ex-oracle-employees-teamed-up-4h2c</guid>
      <description>&lt;p&gt;Recently, news broke that 30,000 Oracle employees were laid off because of AI. That’s a huge number and it got me thinking. What if these tech veterans came together in an open-source community?&lt;/p&gt;

&lt;p&gt;Imagine this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;30,000 skilled minds in databases, cloud systems, and complex architectures.&lt;/li&gt;
&lt;li&gt;Decades of combined experience solving some of the toughest engineering problems.&lt;/li&gt;
&lt;li&gt;No corporate bureaucracy, no endless meetings, just pure creative innovation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea is that they could build something bigger, faster, and more innovative than any traditional company, and maybe even rival Oracle itself.&lt;/p&gt;

&lt;p&gt;This scenario shows that collective talent and collaboration can sometimes outperform even the largest corporations. Being laid off might feel like the end, but it could also mark the beginning of something entirely new.&lt;/p&gt;

&lt;p&gt;What do you think? Could this really happen?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>oracle</category>
      <category>community</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built an AI Agent That Forces You to Finish What You Start — Using Notion MCP</title>
      <dc:creator>bilal meziani</dc:creator>
      <pubDate>Sun, 22 Mar 2026 01:49:35 +0000</pubDate>
      <link>https://dev.to/bilalmez/i-built-an-ai-agent-that-forces-you-to-finish-what-you-start-using-notion-mcp-dl2</link>
      <guid>https://dev.to/bilalmez/i-built-an-ai-agent-that-forces-you-to-finish-what-you-start-using-notion-mcp-dl2</guid>
      <description>&lt;p&gt;OneTask uses Notion's Model Context Protocol to turn one weekly goal into a structured weekly execution plan, with an AI agent that protects your focus all week.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/notion-2026-03-04"&gt;Notion MCP Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔴 &lt;strong&gt;The Problem&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Most productivity tools overload you with hundreds of tasks, creating distraction and stress.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;💡 &lt;strong&gt;The Idea&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;What if an AI forced us to focus on only &lt;strong&gt;one task at a time&lt;/strong&gt;, and guided your week around it?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅ &lt;strong&gt;The Solution&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;OneTask&lt;/strong&gt; is an AI-powered focus agent that reads your Notion workspace, plans your week in structured daily steps, and enforces focus using intelligent prompts.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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%2Fpwq4ojyjo8wxtafopvpq.gif" 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%2Fpwq4ojyjo8wxtafopvpq.gif" alt="OneTask Demo - AI Focus Agent in Action"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Every Monday I open Notion and see 15 tasks. By Friday, I've touched 8 and finished 0.&lt;/p&gt;

&lt;p&gt;The problem isn't motivation. It's &lt;strong&gt;too many open loops at once.&lt;/strong&gt; I start something, get pulled toward something else, and never build real momentum on anything.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;OneTask&lt;/strong&gt;, a Notion MCP-powered AI agent that enforces radical weekly focus.&lt;/p&gt;

&lt;p&gt;You pick &lt;strong&gt;one task&lt;/strong&gt;. The agent reads your Notion workspace, plans your entire week inside Notion day by day, and then &lt;strong&gt;guards your focus&lt;/strong&gt;. Want to switch mid-week? The agent reviews your reason and rejects weak excuses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BEFORE OneTask:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;□ Learn Python&lt;/li&gt;
&lt;li&gt;□ Build landing page&lt;/li&gt;
&lt;li&gt;□ Write business plan&lt;/li&gt;
&lt;li&gt;□ Fix the API bug&lt;/li&gt;
&lt;li&gt;□ Update portfolio&lt;/li&gt;
&lt;li&gt;□ Reply to emails&lt;/li&gt;
&lt;li&gt;□ ...7 more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AFTER OneTask:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Learn Python&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Wednesday: Read chapters 1-3&lt;/li&gt;
&lt;li&gt;Thursday: Build first script&lt;/li&gt;
&lt;li&gt;Friday: Practice with exercises&lt;/li&gt;
&lt;li&gt;Saturday: Mini project&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;You choose one focus. OneTask plans the week, writes it to Notion, and guards your focus.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;📋 &lt;strong&gt;AI week planning&lt;/strong&gt;: Gemini 2.5 Flash breaks your task into specific daily steps&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Real Notion checkboxes&lt;/strong&gt;: Creates &lt;code&gt;to_do&lt;/code&gt; blocks written directly into your task page&lt;/p&gt;

&lt;p&gt;🔒 &lt;strong&gt;Focus Guardian&lt;/strong&gt;: The AI agent rejects weak reasons for switching mid-week&lt;/p&gt;

&lt;p&gt;🔄 &lt;strong&gt;Real-time Notion writes&lt;/strong&gt;: Every action in the app updates Notion immediately&lt;/p&gt;

&lt;p&gt;✏️ &lt;strong&gt;Adapt your plan&lt;/strong&gt;: Rewrite the plan for your actual level mid-week&lt;/p&gt;

&lt;p&gt;🌙 &lt;strong&gt;Dark mode&lt;/strong&gt;: Auto-detects system preference&lt;/p&gt;




&lt;h2&gt;
  
  
  Live Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/NnrM6ALD79Y"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Try it yourself:&lt;/strong&gt; Duplicate the &lt;a href="https://spectacled-myrtle-6ae.notion.site/One-Task-e8178c86dfb78328b9e481d28ef119bf" rel="noopener noreferrer"&gt;OneTask Notion Template&lt;/a&gt; and see the AI in action.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Show Us the Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/bilalmez/onetask" rel="noopener noreferrer"&gt;github.com/bilalmez/onetask&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notion Template:&lt;/strong&gt; &lt;a href="https://spectacled-myrtle-6ae.notion.site/One-Task-e8178c86dfb78328b9e481d28ef119bf" rel="noopener noreferrer"&gt;Duplicate the OneTask workspace&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Backend: Python + FastAPI&lt;/li&gt;
&lt;li&gt;Frontend: Vanilla HTML/CSS/JS (single file, zero build step)&lt;/li&gt;
&lt;li&gt;AI: Gemini 2.5 Flash (native JSON output mode)&lt;/li&gt;
&lt;li&gt;Integration: Notion REST API + Notion MCP tooling layer&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Focus Guardian
&lt;/h2&gt;

&lt;p&gt;This is the feature that makes OneTask different. When you try to change your focus on Day 3:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; "I want to work on something else"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; "You're on Day 3 of 7. You've done 1 out of 5 steps. What's the real reason?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; "I feel like working on a different project"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; "That sounds more like avoidance than necessity. I recommend staying with your current focus."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; "My client moved a deadline to tomorrow morning"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; "External deadline conflict detected. You're clear to switch."&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Commitment enforced intelligently, not just suggested.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent uses Gemini to review the reason and decide: legitimate external conflict or procrastination? This transforms productivity from suggestion to enforcement.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;OneTask uses a &lt;strong&gt;Notion MCP integration layer&lt;/strong&gt; alongside the Notion REST API. The MCP layer gives the AI agent tool-based access to the workspace. Instead of raw HTTP calls, the agent interacts with Notion through structured tools it understands natively.&lt;/p&gt;

&lt;p&gt;Here's the hybrid engine at the center of the architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;mcp_hybrid_execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;operation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tool_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tool_args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rest_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rest_path&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# 1. Try MCP tool first (native tool-based access)
&lt;/span&gt;    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tool_args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;isError&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;  &lt;span class="c1"&gt;# MCP success
&lt;/span&gt;
    &lt;span class="c1"&gt;# 2. Transparent REST API fallback
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;notion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rest_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rest_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;MCP tools used in OneTask:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-retrieve-a-database&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read the workspace schema&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-get-block-children&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read existing page content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-patch-block-children&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Write daily to-do blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-delete-a-block&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clean up old plans before rewriting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-patch-page&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update Status, Priority, and Notes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What MCP unlocks:&lt;/strong&gt; The agent doesn't just call an API. It &lt;em&gt;uses&lt;/em&gt; Notion as a set of tools it understands. This changes the mental model from "send HTTP requests" to "use workspace tools." The result is better agent behavior and cleaner integration logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why hybrid?&lt;/strong&gt; The MCP layer handles structured workspace actions reliably. The REST API handles database property updates where the MCP layer can hit validation edge cases. The hybrid strategy means the agent always works. MCP when possible, REST as fallback, unified result either way.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Happens in Notion When You Set a Focus
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Finds or creates your task in the database&lt;/li&gt;
&lt;li&gt;Sets &lt;strong&gt;Status → In progress&lt;/strong&gt; and &lt;strong&gt;Priority → Week Focus&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Writes a personalized AI motivation note to the &lt;strong&gt;Notes&lt;/strong&gt; field&lt;/li&gt;
&lt;li&gt;Removes Week Focus from all other tasks (one focus enforced)&lt;/li&gt;
&lt;li&gt;Writes &lt;code&gt;to_do&lt;/code&gt; blocks inside the task page (real Notion checkboxes)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When all steps are completed, &lt;strong&gt;Status → Done&lt;/strong&gt; and &lt;strong&gt;Priority → Medium&lt;/strong&gt; update automatically. No manual cleanup needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try OneTask Yourself
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Duplicate the &lt;a href="https://spectacled-myrtle-6ae.notion.site/One-Task-e8178c86dfb78328b9e481d28ef119bf" rel="noopener noreferrer"&gt;Notion Template&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Clone the repo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/bilalmez/onetask.git
&lt;span class="nb"&gt;cd &lt;/span&gt;onetask
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Add your Notion token &amp;amp; database ID in &lt;code&gt;.env&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Run:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;start.bat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Open &lt;code&gt;http://localhost:3001&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Focus on one goal, let the AI guide you, and actually finish what you start.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the Notion MCP Challenge, March 2026&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
