<?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: Lucy</title>
    <description>The latest articles on DEV Community by Lucy (@lucyb0207).</description>
    <link>https://dev.to/lucyb0207</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%2F3843348%2F3d3ca9de-a424-473b-b807-bcc051b63b3e.png</url>
      <title>DEV Community: Lucy</title>
      <link>https://dev.to/lucyb0207</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lucyb0207"/>
    <language>en</language>
    <item>
      <title>Developers don’t have a productivity problem. They have a memory problem.</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Mon, 13 Apr 2026 22:07:49 +0000</pubDate>
      <link>https://dev.to/lucyb0207/developers-dont-have-a-productivity-problem-they-have-a-memory-problem-1379</link>
      <guid>https://dev.to/lucyb0207/developers-dont-have-a-productivity-problem-they-have-a-memory-problem-1379</guid>
      <description>&lt;p&gt;Every developer knows this feeling. You’re deep in a build, everything is going well, you’re in flow state… then suddenly you need something you’ve already written before. A snippet, an idea, a fix, a link, anything.&lt;/p&gt;

&lt;p&gt;You know you’ve seen it somewhere. You just don’t know where. So you stop coding and start searching. Discord, Notion, old projects, random files, browser bookmarks. Tabs start to pile up, whilst your focus slowly disappears while you try and retrace you own steps.&lt;/p&gt;

&lt;p&gt;And when you find it, the momentum is gone. I used to think this was an inevitable part of being a developer, but over time I realised something important: I wasn’t losing code, I was losing context. And that is a much bigger problem.&lt;/p&gt;

&lt;p&gt;The real issue isn't writing code. Developers don’t usually struggle because they can’t build things. Most of the time, the actual coding isn’t the hard part. The real issue is everything around it: the fragments of information that never stay in one place. Snippets end up in Discord messages or random files. Ideas get dumped into notes apps, just to be forgotten, or useful links are buried in your browser history. Fixes live inside old projects you never think to open again.&lt;/p&gt;

&lt;p&gt;We don’t have a skill issue: we have a fragmentation problem, which quietly is slowing everything down. Not obviously, but through small, constant interruptions that break focus and force you to rediscover things you’ve already solved before.&lt;/p&gt;

&lt;p&gt;At some point, I did what most developers end up doing: I tried to fix my workflow, using Notion, Obsidian, GitHub Gists even bookmarks, folder systems and even “just being more organised”. They all worked at first. But they all broke for the exact same reason. They require you to put in effort at the exact moment you don’t have any.&lt;/p&gt;

&lt;p&gt;When you’re in flow, you’re not thinking about organisation, you’re thinking about solving the problem that’s in front of you. So, everything gets dumped wherever it’s fastest to continue, eventually turning temporary storage into permanent chaos. So, you don’t end up with one perfect system, you end up with 10 half-broken ones.&lt;/p&gt;

&lt;p&gt;The real shift occurred when I realised I didn’t need another notes app, with more structure, or stricter habits. I needed something that could work with the way developers actually think whilst working: something that could capture context without interrupting it. This is how DevFlow came about.&lt;/p&gt;

&lt;p&gt;DevFlow is a developer-focused second brain that is designed around one simple principle: your work should have a memory layer. Not a separate system that you have to maintain, but something that sits quietly underneath everything you do, capturing what matters as you go.&lt;/p&gt;

&lt;p&gt;DevFlow lets you save snippets, notes, ideas and links instantly without breaking your flow. Everything you capture is automatically organised by project, so your work stays grouped naturally, instead of scattered across multiple unrelated folders.&lt;/p&gt;

&lt;p&gt;You can search everything you’ve saved in milliseconds, filter by project, and quickly retrieve anything you’ve written before. The goal isn’t to add another place to store things, it is to remove the friction between thinking something and saving it. Think of it like Notion, GitHub Gists and Recast combined, but rebuilt specifically for developers who want to stay in flow state.&lt;/p&gt;

&lt;p&gt;Most tools assume that you have time to organise your thoughts properly. Developers don’t. Notion is powerful, but it’s too slow and structured for quick capture. Gists are useful but isolated. Notes apps are flexible, but can become messy very quickly.&lt;/p&gt;

&lt;p&gt;The problem isn’t that these tools are bad, but that they aren’t designed for real-time thinking while coding. They sit outside of your workflow instead of in it.&lt;/p&gt;

&lt;p&gt;This isn’t just about saving snippets, or organising notes, it is about protecting your flow state, removing the moment where you have to step back and ask “Where did I put that?” It is about ensuring ideas don’t disappear just because you had to focus on something else, because in development, the biggest loss isn’t bad code, it’s forgotten progress.&lt;/p&gt;

&lt;p&gt;Right now, DevFlow is in its early stage. I’m building the MVP around a few core ideas: projects, instant capture, fast search, and a clean dashboard. But my long-term vision is much bigger.&lt;/p&gt;

&lt;p&gt;DevFlow is moving towards becoming a full memory layer for developers, which includes semantic searching across everything you’ve ever saves, automatic tagging, deeper connections between ideas and integrations with tools like VSCode and browsers, so you can capture anything instantly.&lt;/p&gt;

&lt;p&gt;I’m currently validating the idea and building the first version of DevFlow. If you’ve ever lost something you knew you saved, or felt like your workflow is more scattered than it should be, you probably understand why this matters.&lt;/p&gt;

&lt;p&gt;I’m opening up early access as I build, so if you want to follow along or try it when it’s ready, you can join the waitlist here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devflow-sand-eta.vercel.app/" rel="noopener noreferrer"&gt;DevFlow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We don’t need more tools to store information, we need better systems for remembering it. That is what DevFlow is trying to become: a memory layer for developers so you can stay focused on building, not searching for what you already built.&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Built A Full-Stack App in 7 Days: Here’s Day 1</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Mon, 06 Apr 2026 16:23:47 +0000</pubDate>
      <link>https://dev.to/lucyb0207/i-built-a-full-stack-app-in-7-days-heres-day-1-26d1</link>
      <guid>https://dev.to/lucyb0207/i-built-a-full-stack-app-in-7-days-heres-day-1-26d1</guid>
      <description>&lt;p&gt;I decided to challenge myself in a way that I have been considering for a while now. Build a full-stack application in only 7 days, completely from scratch, to completely real and usable. Not just a tutorial project, a clone of something that already exists, but something that I have designed, created, and shipped by myself.&lt;/p&gt;

&lt;p&gt;There’s something about coding projects like these that make them feel almost deceptively simple in the beginning. You think the hard part will be writing the code, but in reality, the hardest part is normally finishing them. Most people don’t fail because they can’t write the code… they fail because they never fully complete anything. They always stop somewhere between ‘idea’ and ‘almost done’.&lt;/p&gt;

&lt;p&gt;So, I wanted to remove that entirely. I stuck to no over-planning, no perfect architecture diagrams, and no time wasted endlessly researching the ‘best possible’ stack. Just 7 days of building, documenting and continuing on forwards no matter what happens. This is Day 1.&lt;/p&gt;




&lt;p&gt;Day 1 started almost exactly like you would expect. I was staring at my laptop’s blank screen, trying to decide what I was going to build. This part is always more difficult than people admit. Not because it is necessarily difficult to think of ideas, but because it feels like you have to have the perfect idea before you even begin.&lt;/p&gt;

&lt;p&gt;However, I forced myself to follow one simple rule: if I couldn’t explain the project in one sentence, and why I wanted to build it in one more, then I wasn’t allowed to build it yet. That alone removed a lot of the noise. After cutting everything down, I ended up with a relatively simple direction: build a full-stack app that is actually useful, is small enough to build in one week, but also flexible enough that I can expand it later.&lt;/p&gt;

&lt;p&gt;It was nothing revolutionary, just something real that I could actually build and improve on. So, once I had that clarity, I stopped planning and started building almost immediately.&lt;/p&gt;




&lt;p&gt;For the first day, I didn’t focus on building features. I focused instead on setting up my foundations properly so I wouldn’t regret it later on down the line.&lt;/p&gt;

&lt;p&gt;I chose a stack that prioritised both speed and simplicity: Next.js for both the frontend and backend, Supabase for authentication and database, and TailwindCSS for styling. I decided not to waste time deciding about tools; I just picked what let me move quickly.&lt;/p&gt;

&lt;p&gt;I created the project, set up the basic structure, connected Supabase, and got the environment variables working. It doesn’t sound like a lot on paper, but this is the stage, when developing something new, that everything either goes smoothly or starts to become a mess later on.&lt;/p&gt;

&lt;p&gt;There always happens to be a moment during the setup where things feel slightly messy and fragile, like one wrong configuration could break everything. But, after a bit of trial and error, I got it running cleanly.&lt;/p&gt;

&lt;p&gt;That moment when the app finally boots without errors is always underrated. It is the point, where for the first time, the project stops being an idea, and begins to transform into something real.&lt;/p&gt;




&lt;p&gt;My biggest win on Day 1 wasn’t building a feature, or writing some complex logic. It was simply getting everything to connect properly. The front-end loaded correctly. The backend responded. The connection to the database worked. There were no errors flooding my terminal.&lt;/p&gt;

&lt;p&gt;It sounds basic, but these small confirmations mattered more than anything else early on to me. They were the things that gave me momentum. Without that, each of the next steps I took would have felt uncertain. Instead, everything felt possible.&lt;/p&gt;




&lt;p&gt;Of course, my Day 1 wasn’t completely smooth. Even on Day 1, I ran into the usual setup issues: Environment variables wouldn’t load properly, there was some confusion over my Supabase setup, and some smaller decisions about folder structures that, looking back, I probably spent way too long thinking about. Nothing too major, just enough to slow things down only a little.&lt;/p&gt;

&lt;p&gt;What I found most interesting was that most of these problems weren’t actually problems related to coding. They were setup problems. And setup problems always feel worse than they actually are, because they block everything else from moving forwards. Once I had that realisation, it became a lot easier to stay calm and focus on fixing things one by one, instead of overreacting and panicking.&lt;/p&gt;




&lt;p&gt;Looking back at the first day, the main lesson I took from it wasn’t technical at all. It was all about my speed and momentum.&lt;/p&gt;

&lt;p&gt;It reminded me that planning is only useful up to a certain point. After that, it becomes a delaying tactic cleverly disguised as productivity. Progress only really starts when you begin to build something that exists outside your head.&lt;/p&gt;

&lt;p&gt;It also reinforced something that I have noticed before: that getting something running, even if it is in its most basic form, is far more important than making it perfect. Perfection can come later, but functionality has to come first.&lt;/p&gt;

&lt;p&gt;Most importantly, it showed me that momentum is everything. Once the project is alive, even in a basic form, it becomes much easier to continue.&lt;/p&gt;




&lt;p&gt;Day 2 is where things will start to get interesting.&lt;/p&gt;

&lt;p&gt;Now that the foundation is in place, I will start to build actual features: real UI components, authentication flows and the first real pieces of functionality that turn my project from just a setup into something users could actually interact with.&lt;/p&gt;

&lt;p&gt;Right now, I have the scaffolding. By Day 2, it starts to become a product.&lt;/p&gt;




&lt;p&gt;If you enjoyed this post, make sure to subscribe so you can follow everything I’m building in real time.&lt;/p&gt;

&lt;p&gt;Also, check out My SubStack, where I am turning this into a 7 part weekly series.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://lucybatten.substack.com" rel="noopener noreferrer"&gt;lucybatten.substack.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions, connect with me on LinkedIn:&lt;/p&gt;

&lt;p&gt;👉&lt;a href="https://linkedin.com/in/lucybatten" rel="noopener noreferrer"&gt;lucybatten&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to see how ideas turn into real apps (and what ends up happening along the way), check out the rest of the posts in this series.&lt;/p&gt;

&lt;p&gt;More builds, more problems, and more fixes… coming every week.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>learning</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Make Your CSS Look 10x More Professional with These 11 Underused Tricks You Might Be Missing</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Sat, 04 Apr 2026 13:28:43 +0000</pubDate>
      <link>https://dev.to/lucyb0207/make-your-css-look-10x-more-professional-with-these-11-underused-tricks-you-might-be-missing-5231</link>
      <guid>https://dev.to/lucyb0207/make-your-css-look-10x-more-professional-with-these-11-underused-tricks-you-might-be-missing-5231</guid>
      <description>&lt;p&gt;I think a lot about CSS... not because I enjoy suffering, but because I enjoy when things finally look right.&lt;/p&gt;

&lt;p&gt;CSS is one of those things that looks simple on the surface… until you try to build something that doesn’t look like it was designed in 2009.&lt;/p&gt;

&lt;p&gt;But here’s the thing: most people only learn the basics: margin, padding, display: flex, then stop there.&lt;/p&gt;

&lt;p&gt;And that’s exactly why a lot of websites feel… average.&lt;/p&gt;

&lt;p&gt;If HTML is the skeleton of the web, CSS is the personality. It’s the difference between “this works” and “this actually looks like a real product.”&lt;/p&gt;

&lt;p&gt;So let’s fix that.&lt;/p&gt;

&lt;p&gt;Here are 11 CSS tricks that instantly make your projects feel more professional, more modern, and way less “tutorial-like”.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. aspect-ratio: stop fighting image sizing
&lt;/h2&gt;

&lt;p&gt;Instead of hacking around padding tricks, just define proportions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;
&lt;span class="nc"&gt;.box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;aspect-ratio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;9&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perfect for cards, videos, and responsive layouts.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. clamp(): responsive sizing without media queries
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;clamp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1.5rem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;4vw&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;3rem&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It scales smoothly between a minimum and maximum value.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. scroll-snap-type: make scrolling feel premium
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;scroll-snap-type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="n"&gt;mandatory&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Great for carousels and full-screen sections.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. backdrop-filter: instant glassmorphism
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.glass&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;backdrop-filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;blur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gives that frosted glass effect you see in modern UI.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. :is(): cleaner selectors instantly
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:is&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Less repetition, more readable CSS.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. gap (with flexbox): stop using margins for everything
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Cleaner than manually spacing children.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. object-fit: fix image distortion forever
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;object-fit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;cover&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No more stretched or squished images.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. position: sticky, gives underrated layout power
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;sticky&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Feels like JavaScript magic, but it’s pure CSS.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. min() / max(): smarter responsive sizing
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;min&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;90&lt;/span&gt;&lt;span class="o"&gt;%,&lt;/span&gt; &lt;span class="err"&gt;600&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prevents layouts from getting too big or too small.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. will-change: smoother animations
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;will-change&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Helps the browser optimise animations ahead of time.&lt;/p&gt;

&lt;p&gt;(Use sparingly... don’t spam it everywhere.)&lt;/p&gt;




&lt;h2&gt;
  
  
  11. accent-color: style native inputs instantly
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;accent-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#6c5ce7&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Checkboxes, radios, and sliders finally match your design.&lt;/p&gt;




&lt;p&gt;Most developers don’t lack creativity.&lt;/p&gt;

&lt;p&gt;They just don’t know what CSS is already capable of.&lt;/p&gt;

&lt;p&gt;These features don’t require libraries, frameworks, or hacks—they’re built into the browser.&lt;/p&gt;

&lt;p&gt;And using them properly instantly separates “beginner-looking UI” from “this feels like a real product”.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Thanks for reading!
&lt;/h2&gt;

&lt;p&gt;If you enjoyed this post, feel free to connect and follow me for more content on web development, CSS, and programming in general.&lt;/p&gt;

&lt;p&gt;Stay consistent, keep building, and don’t be afraid to experiment with things you haven’t used before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s connect:
&lt;/h2&gt;

&lt;p&gt;GitHub → &lt;a href="https://github.com/lucyb0207" rel="noopener noreferrer"&gt;https://github.com/lucyb0207&lt;/a&gt;&lt;br&gt;
Substack → &lt;a href="https://lucybatten.substack.com" rel="noopener noreferrer"&gt;https://lucybatten.substack.com&lt;/a&gt;&lt;br&gt;
X (Twitter) → &lt;a href="https://x.com/lucyb0207" rel="noopener noreferrer"&gt;https://x.com/lucyb0207&lt;/a&gt;&lt;br&gt;
LinkedIn → &lt;a href="https://linkedin.com/in/lucybatten" rel="noopener noreferrer"&gt;https://linkedin.com/in/lucybatten&lt;/a&gt;&lt;br&gt;
Website → &lt;a href="https://lucyb0207.github.io" rel="noopener noreferrer"&gt;https://lucyb0207.github.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>html</category>
    </item>
    <item>
      <title>What I Would Do If I Had To Learn Programming Again</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Sat, 04 Apr 2026 09:21:04 +0000</pubDate>
      <link>https://dev.to/lucyb0207/what-i-would-do-if-i-had-to-learn-programming-again-4j9d</link>
      <guid>https://dev.to/lucyb0207/what-i-would-do-if-i-had-to-learn-programming-again-4j9d</guid>
      <description>&lt;p&gt;If I had to learn programming again completely from scratch, I wouldn’t start with tutorials. Not because they are necessarily bad, but tutorials make everything feel much clearer than it actually is.&lt;/p&gt;

&lt;p&gt;When you’re following a tutorial, it feels like you understand what’s happening. Your code you write works, and everything makes sense in that moment. however, as soon as the tutorial is gone and you try to do something on your own, that understanding instantly disappears.&lt;/p&gt;

&lt;p&gt;I didn’t realise this at first. i thought my confusion meant I needed to learn more, by watching more tutorials, reading more documentation and going through more courses. However, overtime, I began to notice that I wasn’t actually struggling because I didn’t know enough. I was struggling because I wasn’t actually thinking.&lt;/p&gt;

&lt;p&gt;If I had to start again, I would’ve began to build things much, much earlier. I wouldn’t have started just because I ‘felt’ ready, or because I had ‘learned enough’. I would have started as soon as I had learned the basics, even if everything felt messy.&lt;/p&gt;

&lt;p&gt;Because actually building something yourself forces you to think in a different kind of way. You aren’t just mindlessly following steps anymore, you are aking decisions. You are trying things, breaking things, fixing things, and beginning to realise why things work the way they do.&lt;/p&gt;

&lt;p&gt;A lot of the time, you won’t fell productive. In fact, most of the time you will feel slow, confused, frustrated. But that is where the real learning happens.&lt;/p&gt;




&lt;p&gt;Also, I would focus far less on syntax and more on structure.&lt;/p&gt;

&lt;p&gt;When you begin to learn programming, it becomes easy to just think programming is about remembering how to write things, such as keywords, syntax and how you structure a function. It feels like that is what is needed to fully understand programming.&lt;/p&gt;

&lt;p&gt;But, in reality, that syntax is the easiest part. You can just look it up.&lt;/p&gt;

&lt;p&gt;What’s a lot harder, and also more important, is being able to understand how things connect. For example, how different parts of projects relate to one another, or how data moves through a system, or how changing one line of code will affect something somewhere else in the program. This is the part of programming that feels confusing or complicated, not because the code is impossible to read, but because the structure isn’t immediately visible.&lt;/p&gt;




&lt;p&gt;If I had to start again, I would also stop trying to avoid feeling lost.&lt;/p&gt;

&lt;p&gt;That feeling shows up right from the start, and it never really disappears, it just changes slightly as you progress. At the beginning, you feel lost because everything is new to you. As you improve, you feel just as lost because what you’re working on is so big, you can’t fully comprehend everything at once.&lt;/p&gt;

&lt;p&gt;In both cases, the instinctive reaction is exactly the same: get out of that feeling as fast as you can, by searching frantically for another explanation, another tutorial, anything that makes it feel easy again.&lt;/p&gt;

&lt;p&gt;But that moment when things aren’t automatically clear is usually the moment when your understanding is just about to shift. If you stay in that moment for long enough, something begins to click. Not instantly, but gradually.&lt;/p&gt;




&lt;p&gt;I would also be a lot more intentional about what I build.&lt;/p&gt;

&lt;p&gt;A lot of advice for beginners focuses on building projects, which I agree is good, but they often leave out something important. Not all projects teach you things in the same way, or even focus on the same skills. Building something just for the sake of building it often doesn’t make things stick.&lt;/p&gt;

&lt;p&gt;The times where I learnt the most came from trying to solve something that actually frustrated me. Something that didn’t make sense, or that slowed me down, that I genuinely wanted to fix. When you care about the problem you are solving, you approach it differently. You become more patient, and go deeper, meaning you don’t just move on when something breaks, you try to understand why and fix it yourself.&lt;/p&gt;

&lt;p&gt;This is the process that teaches you a lot more than following something that you know will end up working.&lt;/p&gt;




&lt;p&gt;If I had to start again, I would also share what I was doing much earlier.&lt;/p&gt;

&lt;p&gt;Not because I expected people to pay attention to what I was doing, but because it forces you to understand what you are doing properly. When you try to explain something to someone else, even in simple terms, you are able to realise what you do and don’t understand very quickly.&lt;/p&gt;

&lt;p&gt;Sometimes you think something makes sense or you understand something until you try to put it into words, and that gap in knowledge shows you exactly where you need to focus. Over time, sharing will also bring in new perspectives. Other people are more likely to notice what you missed, or explain something in a way that makes it click faster. It also makes it feel less isolating and more collaborative.&lt;/p&gt;

&lt;p&gt;Looking back, learning programming actually isn’t at all about learning programming.&lt;/p&gt;

&lt;p&gt;It is about learning how to deal with confusion, how to continue trying even if things don’t quite make sense yet, and how to build something even if you aren’t sure if you are doing it ‘right’. If I had to start again, I wouldn’t try and learn absolutely everything.&lt;/p&gt;

&lt;p&gt;I would just start. I’d pick something that feels frustrating enough to care about, and try to understand it just a fraction better each day. And that would be enough.&lt;/p&gt;




&lt;p&gt;Thank you for reading! If you enjoyed my writing:&lt;/p&gt;

&lt;p&gt;Subscribe for more articles like this&lt;/p&gt;

&lt;p&gt;View my coding journey → &lt;a href="https://github.com/lucyb0207" rel="noopener noreferrer"&gt;My GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Connect with Me → &lt;a href="https://linkedin.com/in/lucybatten" rel="noopener noreferrer"&gt;My LinkedIn&lt;/a&gt; &lt;a href="//x.com/lucyb0207"&gt;My X (Twitter)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My Website → &lt;a href="https://lucyb0207.github.io" rel="noopener noreferrer"&gt;lucyb0207.github.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>ToxicAI: An AI That Emotionally Damages Developers 💀</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Fri, 03 Apr 2026 18:48:29 +0000</pubDate>
      <link>https://dev.to/lucyb0207/toxicai-code-roaster-4a9h</link>
      <guid>https://dev.to/lucyb0207/toxicai-code-roaster-4a9h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;ToxicAI is an AI-powered code reviewer that doesn’t help you improve... it judges you.&lt;/p&gt;

&lt;p&gt;When you paste your code, you will receive brutally honest roasts, developer metrics and a final verdict that feels slightly personal.&lt;/p&gt;

&lt;p&gt;Instead of being useful, it evaluates your code like a disappointed senior developer who has lost patience with humanity.&lt;/p&gt;

&lt;p&gt;You can choose a personality (brutal, passive, or overly supportive) and adjust the intensity from light teasing to full emotional damage.&lt;/p&gt;

&lt;p&gt;The result is a completely useless but highly entertaining tool that turns bad code into entertainment.&lt;/p&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://toxic-ai-code-reviewer.vercel.app/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;toxic-ai-code-reviewer.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&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/lucyb0207" rel="noopener noreferrer"&gt;
        lucyb0207
      &lt;/a&gt; / &lt;a href="https://github.com/lucyb0207/toxic-ai-code-reviewer" rel="noopener noreferrer"&gt;
        toxic-ai-code-reviewer
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      An AI-powered code reviewer that provides brutally honest and completely useless feedback.
    &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;💀 ToxicAI Code Reviewer&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An AI-powered code reviewer that delivers brutally honest, emotionally damaging, and completely unnecessary feedback.&lt;/p&gt;
&lt;p&gt;Built for the DEV April Fools Challenge.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What It Does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Paste your code → get instantly judged by an AI that behaves like a senior developer who has lost patience with humanity.&lt;/p&gt;
&lt;p&gt;ToxicAI analyses your code and responds with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a brutal roast&lt;/li&gt;
&lt;li&gt;fake developer metrics&lt;/li&gt;
&lt;li&gt;a dramatic final verdict&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All completely useless. All completely intentional.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;AI Code Roasting (Gemini-powered)&lt;/li&gt;
&lt;li&gt;Brutality Intensity Slider (Soft → Emotional Damage)&lt;/li&gt;
&lt;li&gt;Personality Modes:
&lt;ul&gt;
&lt;li&gt;Brutal&lt;/li&gt;
&lt;li&gt;Passive-Aggressive&lt;/li&gt;
&lt;li&gt;Overly Supportive (somehow worse)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Fake Developer Metrics:
&lt;ul&gt;
&lt;li&gt;Vibe Score&lt;/li&gt;
&lt;li&gt;Ego Risk Level&lt;/li&gt;
&lt;li&gt;Stack Overflow Dependency&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dramatic Loading System (“AI is judging your life choices…”)&lt;/li&gt;
&lt;li&gt;One-click Copy Roast&lt;/li&gt;
&lt;li&gt;Structured Output:
&lt;ul&gt;
&lt;li&gt;Roast&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Verdict Line&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;React (Vite)&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Gemini 2.5 Flash API&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why This Exists&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;This project solves absolutely nothing.&lt;/p&gt;
&lt;p&gt;It exists purely to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;demonstrate AI integration&lt;/li&gt;
&lt;li&gt;emotionally evaluate developers for…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/lucyb0207/toxic-ai-code-reviewer" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;ToxicAI is built as a React app using Vite and TypeScript for fast development and performance.&lt;/p&gt;

&lt;p&gt;The core AI functionality is powered by the Google Gemini 2.5 Flash API, which generates both the code roasts and structured fake developer metrics.&lt;/p&gt;

&lt;p&gt;The app sends user-submitted code along with a dynamically generated prompt that changes based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personality mode &lt;/li&gt;
&lt;li&gt;Intensity level&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The response is parsed and displayed in a formatted output panel, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-generated roast&lt;/li&gt;
&lt;li&gt;Vibe Score&lt;/li&gt;
&lt;li&gt;Ego Risk Level&lt;/li&gt;
&lt;li&gt;Stack Overflow Dependency&lt;/li&gt;
&lt;li&gt;Final Verdict&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The focus of the build was on prompt engineering, response structuring, and creating a humorous AI interaction rather than traditional code analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;Best Google AI Usage:&lt;/p&gt;

&lt;p&gt;This project makes direct use of the Google Gemini API to generate dynamic, personality-driven code roasts and developer metrics in real time.&lt;/p&gt;

&lt;p&gt;It uses Gemini to act as a sarcastic code reviewer that adapts tone and intensity based off of user input.&lt;/p&gt;

&lt;p&gt;The integration goes beyond simple text generation by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dynamically adjusting prompts based on personality mode&lt;/li&gt;
&lt;li&gt;controlling response tone via intensity scaling&lt;/li&gt;
&lt;li&gt;structuring outputs into roast + metrics + verdict format&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It showcases how generative AI can be used not just for utility, but for interactive, entertaining, and highly opinionated user experiences.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I built a Developer Tool at 16 (CodeAtlas)</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Thu, 02 Apr 2026 17:58:46 +0000</pubDate>
      <link>https://dev.to/lucyb0207/i-built-a-developer-tool-at-16-codeatlas-2437</link>
      <guid>https://dev.to/lucyb0207/i-built-a-developer-tool-at-16-codeatlas-2437</guid>
      <description>&lt;p&gt;I built a developer tool at 16, and it didn’t start as anything impressive or serious. It started simply because I was frustrated - which I didn’t even realise at first, as I just assumed it was all just part of programming.&lt;/p&gt;

&lt;p&gt;Every time I opened a new codebase, especially anything larger than a school project, it felt like I was reading something that was barely understandable for most humans. Files depended on other files, functions called things that were buried deep in completely different folders, and I would be constantly jumping between tabs trying to properly visualise how everything worked together.&lt;/p&gt;

&lt;p&gt;It wasn’t that I couldn’t understand the code. It was that it took way to long to understand what should be a simple task, and i felt like I was rebuilding a mental image of what the codebase looked like every time I reopened a project. After a while, I began to wonder: there has to be a better way to do this.&lt;/p&gt;

&lt;p&gt;That’s where I got the idea to build CodeAtlas. I didn’t consider it to be a startup or even a project that I could share with other people at the time. It was more like a challenge I had set for myself: what if I could find a way to visualise a codebase instead of just seeing files and folders?&lt;/p&gt;

&lt;p&gt;At the start, I built the simplest version I could have possibly thought of. It was just a script that scanned a repository, checked the import statements and tried to draw lines between files. No fancy interface, or real structure behind it, I was just trying to see if the idea made sense outside of my brain.&lt;/p&gt;

&lt;p&gt;The first time it actually worked, even though it was messy and broken, it flt weirdly different from what I had built before. It felt useful, like something people would actually want to use.&lt;/p&gt;

&lt;p&gt;But this version was far from useful. It constantly broke, especially on anything that was even slightly complex. Bigger projects took an eternity to load and created chaotic webs where everything overlapped and it was impossible to tell what was going on.&lt;/p&gt;

&lt;p&gt;Still, instead of starting over, I continued to improve it, bit by bit. I worked on improving the accuracy of detection, I added features like search bars and code viewers, and over time, it began to feel more and more like something that could actually help people understand real-world codebases.&lt;/p&gt;

&lt;p&gt;The turning point wasn’t when I added a new feature, or I finally got something to work. It was when I showed my project to someone else for the first time. I expected them to comment on the visuals of the graph, or how interesting it looked, but instead, they came back to me and said this had helped them onboard new developers to their codebases.&lt;/p&gt;

&lt;p&gt;That moment stuck with me more than anything else whilst creating this project.&lt;/p&gt;

&lt;p&gt;This was when I realised I wasn’t simply drawing lines between files, but I was helping people reduce the complexity of repositories into something more abstract that people can actually understand and hold in their mind.&lt;/p&gt;

&lt;p&gt;After this moment, I started thinking about CodeAtlas differently.Every change I made form then on wasn’t about making it more visually appealing, it was about making understanding faster. I started rebuilding parts that didn’t scale properly. I change how relationships were displayed.&lt;/p&gt;

&lt;p&gt;And like most projects that begin to get real, i eventually ran into the part that nobody talks about enough: it is easy to continue improving a project forever, but it is much harder to actually finish it.&lt;/p&gt;

&lt;p&gt;I always had an ongoing list of features that I could add, and improvements that would make it feel slightly more complete. But I stopped waiting for it to feel finished and I uploaded it to GitHub. It wasn’t perfect, and it still isn’t. But people could use it, load real repositories and actually get something useful out of it.&lt;/p&gt;

&lt;p&gt;Looking back now, what I built hasn’t just been a developer tool for visualising dependencies. It has changed how I see code entirely: I don’t just see files anymore, I see relationships, structure, and how it all connects together under the surface.&lt;/p&gt;

&lt;p&gt;And, weirdly, CodeAtlas wasn’t just something that helps me to build repositories better. It taught me how to see code from a different perspective.&lt;/p&gt;




&lt;p&gt;Thanks for reading.&lt;/p&gt;

&lt;p&gt;I’m curious... what’s the most confusing part of a codebase for you when you join a new project?&lt;/p&gt;

&lt;p&gt;Drop it in the comments. I’ll read through them and it might shape what I build next.&lt;/p&gt;

&lt;p&gt;Try CodeAtlas → &lt;a href="https://github.com/lucyb0207" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
More writing → &lt;a href="https://substack.com/@lucybatten" rel="noopener noreferrer"&gt;Substack&lt;/a&gt;&lt;br&gt;
Follow the build → &lt;a href="https://x.com/lucyb0207" rel="noopener noreferrer"&gt;X (Twitter)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>developer</category>
      <category>software</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Tried to Learn Coding Fast. It Almost Made Me Quit.</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Fri, 27 Mar 2026 21:46:11 +0000</pubDate>
      <link>https://dev.to/lucyb0207/i-tried-to-learn-coding-fast-it-almost-made-me-quit-16bp</link>
      <guid>https://dev.to/lucyb0207/i-tried-to-learn-coding-fast-it-almost-made-me-quit-16bp</guid>
      <description>&lt;p&gt;For the longest time, I treated coding like a race I was already behind in. Every day, I’d fall into the same loop: searching for the fastest way to learn, the best roadmap, the most in-demand language. I convinced myself that if I could just find the perfect path, everything would click. So I jumped from Python to JavaScript, from web development to algorithms, from one course to another. Each new start felt exciting, like I’d finally cracked the system. But after a few days, the excitement faded, things got difficult, and I’d move on again — thinking the problem was the path, not my approach.&lt;/p&gt;

&lt;p&gt;After a few months of this, I had nothing real to show for it. I wasn’t a complete beginner anymore, but I wasn’t competent either. I had fragments of knowledge — syntax here, concepts there — but no ability to actually build something on my own. That was the most frustrating part. I could follow along with tutorials and understand what was happening, but the moment I tried to create something from scratch, I’d freeze. It felt like staring at a blank page with no idea how to begin. That’s when the doubt started creeping in: maybe coding just wasn’t for me.&lt;/p&gt;

&lt;p&gt;The turning point wasn’t dramatic. There was no breakthrough moment, no sudden surge of motivation. I just got tired of restarting. Instead of searching for another roadmap or switching languages again, I made one simple decision: I was going to build something small and actually finish it. Not something impressive, not something I could show off — just something complete. I picked a basic project, a simple to-do list app, and committed to working on it every day until it was done. That was the only rule.&lt;/p&gt;

&lt;p&gt;At first, it was uncomfortable in a way tutorials never were. There was no step-by-step guide telling me what to do next. I had to figure things out on my own, and that meant getting stuck constantly. I’d spend 20 minutes trying to fix a single error. I’d search things I felt like I “should” already know. It was slow, messy, and honestly a bit discouraging. But something different was happening this time: I wasn’t quitting when it got hard. I was staying with the problem until I found a way through, even if that meant taking small, imperfect steps forward.&lt;/p&gt;

&lt;p&gt;That’s when I realised why tutorials had been holding me back. They gave me the illusion of progress without forcing me to think deeply. When you follow a tutorial, you’re not really solving problems — you’re just replicating solutions. It feels productive because you’re typing code and seeing results, but you’re not building the mental frameworks needed to handle things on your own. When I started working on my own project, even something as simple as structuring the code or deciding where to start became a challenge. But those challenges were exactly what I needed.&lt;/p&gt;

&lt;p&gt;To keep myself consistent, I made the process almost ridiculously manageable. I set a rule: I would code for at least 30 minutes every day, no matter what. It didn’t matter how tired I was, how busy the day had been, or whether I felt like it. The goal wasn’t to have perfect sessions or make huge progress — it was just to show up. Some days, I’d go far beyond 30 minutes because I got into the flow. Other days, I’d do the bare minimum and stop. But the key difference was that I never broke the chain.&lt;/p&gt;

&lt;p&gt;Over time, the results started to compound in a way that felt almost invisible at first. I didn’t suddenly become an amazing developer, but things that used to confuse me started to make sense. Errors became less intimidating because I’d dealt with similar ones before. I stopped panicking when something didn’t work and started approaching problems more methodically. Most importantly, I began to trust myself — not because I knew everything, but because I knew I could figure things out if I gave myself enough time.&lt;/p&gt;

&lt;p&gt;After a few months, I noticed a shift that’s hard to explain but easy to feel. I no longer saw myself as someone trying to learn coding. I was just someone who coded. That identity change made everything easier. I didn’t need to rely on motivation or wait for the perfect time to start. It became part of my routine, something I did without overthinking. And once that happened, progress stopped feeling forced and started feeling natural.&lt;/p&gt;

&lt;p&gt;Looking back, the biggest mistake I made wasn’t choosing the wrong language or following the wrong roadmap — it was constantly restarting. Every time you restart, you reset the discomfort, the confusion, and the early-stage struggle. You never stay in one place long enough to push through it. Real progress comes from sitting with that discomfort and working through it, even when it feels slow and unproductive.&lt;/p&gt;

&lt;p&gt;If you’re in that phase right now — jumping between tutorials, feeling stuck, wondering if you’re cut out for this — try simplifying everything. Pick one language. Pick one small project. Work on it every day, even if it’s just for 30 minutes. Don’t worry about doing it perfectly or efficiently. Just focus on finishing. Because finishing something, no matter how small, does more for your growth than consuming hours of content ever will.&lt;/p&gt;

&lt;p&gt;Coding isn’t about finding the fastest path. It’s about staying on one path long enough for it to actually take you somewhere. And once you understand that, everything starts to change.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>coding</category>
      <category>learning</category>
      <category>software</category>
    </item>
    <item>
      <title>Building CodeAtlas: A Public Dev Journey (Hosting, Apps, and Scaling Challenges)</title>
      <dc:creator>Lucy</dc:creator>
      <pubDate>Wed, 25 Mar 2026 14:48:59 +0000</pubDate>
      <link>https://dev.to/lucyb0207/building-codeatlas-a-public-dev-journey-hosting-apps-and-scaling-challenges-49be</link>
      <guid>https://dev.to/lucyb0207/building-codeatlas-a-public-dev-journey-hosting-apps-and-scaling-challenges-49be</guid>
      <description>&lt;p&gt;I’ve been working on a project called CodeAtlas, something I’m building from scratch while learning, improving, and sharing the process publicly. The goal is simple: build useful software, ship it consistently, and document everything as I go.&lt;/p&gt;

&lt;p&gt;Right now, I’m still early in the journey, but I’m at a point where I can build and iterate quickly. The main challenge isn’t coding anymore — it’s the resources needed to keep everything running smoothly.&lt;/p&gt;

&lt;p&gt;Things like hosting costs, app deployment fees, certifications, and learning resources all add up. I also rely on certain tools that help me build faster and improve the quality of what I’m making. That’s the part that’s currently limiting how fast I can move.&lt;/p&gt;

&lt;p&gt;CodeAtlas itself is a project focused on organising and visualising code and ideas in a more structured way. The idea is to make development feel more intuitive by linking concepts together, almost like building a “map” of a codebase or system. It’s still evolving, and I’m shaping it step by step as I build it.&lt;/p&gt;

&lt;p&gt;I’m also building in public for a reason. I want to improve my skills, learn how real-world software is developed and shipped, and stay consistent with long-term projects. Every update, bug fix, and feature is part of that learning process.&lt;/p&gt;

&lt;p&gt;If you want to support what I’m building, you can do so here:&lt;br&gt;
👉 &lt;a href="//buymeacoffee.com/lucyb0207"&gt;Buy Me A Coffee&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any support goes directly into hosting, app releases, certifications, and tools that help me keep building. Even small contributions genuinely make a difference and allow me to focus more time on development.&lt;/p&gt;

&lt;p&gt;If you want to explore the project or follow development, here’s the GitHub repo:&lt;br&gt;
👉 &lt;a href="https://github.com/lucyb0207/CodeAtlas" rel="noopener noreferrer"&gt;CodeAtlas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m actively updating it as I build, so feel free to star it or follow along.&lt;/p&gt;

&lt;p&gt;I’d also really appreciate feedback. If you’re reading this, I’d love to know what you think — what would make a tool like CodeAtlas actually useful for you? What features would you want to see? I’m actively shaping the project based on input from people who are interested in it.&lt;/p&gt;

&lt;p&gt;Thanks for taking the time to read this. I’ll be sharing more updates as I continue building — both the progress and the challenges along the way.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
