<?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: Dchool</title>
    <description>The latest articles on DEV Community by Dchool (@gecschool).</description>
    <link>https://dev.to/gecschool</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%2F1598452%2Fc1c09d86-852c-4b05-a6a5-43eab8c06238.jpeg</url>
      <title>DEV Community: Dchool</title>
      <link>https://dev.to/gecschool</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gecschool"/>
    <language>en</language>
    <item>
      <title>🚀 Day 3 — Giving Lanorx a Face</title>
      <dc:creator>Dchool</dc:creator>
      <pubDate>Sat, 18 Oct 2025 12:30:18 +0000</pubDate>
      <link>https://dev.to/gecschool/day-3-giving-lanorx-a-face-1mj6</link>
      <guid>https://dev.to/gecschool/day-3-giving-lanorx-a-face-1mj6</guid>
      <description>&lt;p&gt;Hey everyone 👋  &lt;/p&gt;

&lt;p&gt;I’m Dchool — solo dev, indie hacker, and builder of &lt;strong&gt;Lanorx&lt;/strong&gt;,&lt;br&gt;&lt;br&gt;
a tool that helps makers validate their ideas &lt;em&gt;before&lt;/em&gt; they build.  &lt;/p&gt;

&lt;p&gt;Today marks &lt;strong&gt;Day 3&lt;/strong&gt; of my #50DaysTo1K challenge —&lt;br&gt;&lt;br&gt;
and this one was all about &lt;strong&gt;identity&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;For the first time, Lanorx doesn’t just &lt;em&gt;work&lt;/em&gt; —&lt;br&gt;&lt;br&gt;
it actually &lt;strong&gt;looks like a product&lt;/strong&gt;. ⚡  &lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What Changed Today
&lt;/h2&gt;

&lt;p&gt;Until now, the main Lanorx domain just redirected to &lt;code&gt;/create&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
There was no proper landing page, no first impression — just pure functionality.  &lt;/p&gt;

&lt;p&gt;Today, that changed.&lt;br&gt;&lt;br&gt;
I built the &lt;strong&gt;main landing page&lt;/strong&gt; and a &lt;strong&gt;header component&lt;/strong&gt;,&lt;br&gt;&lt;br&gt;
making Lanorx feel like something real, not just a developer playground.  &lt;/p&gt;

&lt;p&gt;I also took time to refine parts of the design:&lt;br&gt;&lt;br&gt;
cleaner spacing, improved typography, and a layout that finally feels cohesive.  &lt;/p&gt;

&lt;p&gt;And beyond visuals, I started shaping the &lt;strong&gt;production-mode plan&lt;/strong&gt; —&lt;br&gt;&lt;br&gt;
defining how Lanorx will evolve from MVP into a scalable product.  &lt;/p&gt;




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

&lt;h3&gt;
  
  
  🧩 Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Built a new &lt;strong&gt;Header component&lt;/strong&gt; for the landing page
&lt;/li&gt;
&lt;li&gt;Created the official &lt;strong&gt;Lanorx landing page&lt;/strong&gt; (no more &lt;code&gt;/create&lt;/code&gt; redirect 🎉)
&lt;/li&gt;
&lt;li&gt;Tweaked colors, layout, and spacing for a more polished look
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚙️ Planning &amp;amp; Specs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Defined &lt;strong&gt;production mode specifications&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Outlined data flow, user interactions, and backend scaling strategy
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It might sound small, but this step marks the transition from “just working” → “ready to grow.”  &lt;/p&gt;




&lt;h2&gt;
  
  
  🧭 What’s Next (Day 4 Plan)
&lt;/h2&gt;

&lt;p&gt;Tomorrow’s focus:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Designing the production architecture&lt;/strong&gt; and laying down the backend base.  &lt;/p&gt;

&lt;p&gt;Specifically:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define internal &lt;strong&gt;API structure&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Plan backend routes and Server Actions
&lt;/li&gt;
&lt;li&gt;Begin writing the &lt;strong&gt;core backend logic&lt;/strong&gt; for production
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once this is in place, Lanorx will have a foundation that can handle real users — not just test data.  &lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Reflection
&lt;/h2&gt;

&lt;p&gt;Day 3 was quieter, but pivotal.&lt;br&gt;&lt;br&gt;
The product finally has a face — and a future.  &lt;/p&gt;

&lt;p&gt;It’s funny how adding a landing page changes your mindset.&lt;br&gt;&lt;br&gt;
Until now, Lanorx was code and logic.&lt;br&gt;&lt;br&gt;
Now it has an identity, a place where people can &lt;em&gt;see&lt;/em&gt; it.  &lt;/p&gt;

&lt;p&gt;And finalizing the production spec made things feel serious.&lt;br&gt;&lt;br&gt;
This is no longer just a validation experiment —&lt;br&gt;&lt;br&gt;
it’s shaping up to be a real SaaS.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Day 3 wasn’t about new features.&lt;br&gt;&lt;br&gt;
It was about definition — giving Lanorx a clear shape, both visually and structurally.”  &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📍 Follow the Journey
&lt;/h2&gt;

&lt;p&gt;I’m sharing the full &lt;strong&gt;#50DaysTo1K&lt;/strong&gt; journey here —&lt;br&gt;&lt;br&gt;
from idea → MVP → revenue → (hopefully) $1K MRR.  &lt;/p&gt;

&lt;p&gt;Follow me on Twitter/X → &lt;a href="https://twitter.com/D_chool" rel="noopener noreferrer"&gt;@D_chool&lt;/a&gt;&lt;br&gt;&lt;br&gt;
and check out the live product here 👇&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;a href="https://www.lanorx.com" rel="noopener noreferrer"&gt;https://www.lanorx.com&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;You can even create your own test page now →&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;a href="https://www.lanorx.com/create" rel="noopener noreferrer"&gt;https://www.lanorx.com/create&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;




&lt;h3&gt;
  
  
  🧠 Hashtags
&lt;/h3&gt;

&lt;h1&gt;
  
  
  buildinpublic #50DaysTo1K #indiehackers #SaaS #NextJS #TypeScript #Prisma #Mantine #SoloFounder #webdev
&lt;/h1&gt;

</description>
      <category>50daysto1k</category>
      <category>buildinpublic</category>
      <category>saas</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🚀 Day 2 — The MVP is Alive</title>
      <dc:creator>Dchool</dc:creator>
      <pubDate>Fri, 17 Oct 2025 17:51:36 +0000</pubDate>
      <link>https://dev.to/gecschool/day-2-the-mvp-is-alive-1ja2</link>
      <guid>https://dev.to/gecschool/day-2-the-mvp-is-alive-1ja2</guid>
      <description>&lt;p&gt;Hey everyone 👋  &lt;/p&gt;

&lt;p&gt;I’m Dchool — solo dev, indie hacker, and builder of &lt;strong&gt;Lanorx&lt;/strong&gt;,&lt;br&gt;&lt;br&gt;
a tool that helps makers validate their ideas &lt;em&gt;before&lt;/em&gt; they build.  &lt;/p&gt;

&lt;p&gt;Today marks &lt;strong&gt;Day 2&lt;/strong&gt; of my #50DaysTo1K challenge —&lt;br&gt;&lt;br&gt;
and the big milestone: &lt;strong&gt;the Lanorx MVP is officially done.&lt;/strong&gt; ⚡  &lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What Lanorx Can Do Now
&lt;/h2&gt;

&lt;p&gt;Lanorx now runs the full validation loop from start to finish:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;create an idea → auto-generate a landing page → collect emails → view real data  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s no longer a prototype — it’s an actual working product.&lt;br&gt;&lt;br&gt;
Every step in the validation cycle now exists and talks to each other.  &lt;/p&gt;

&lt;p&gt;No mockups. No placeholders.&lt;br&gt;&lt;br&gt;
Real pages, real events, real data stored in the database.  &lt;/p&gt;




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

&lt;p&gt;I spent most of the day building and polishing the MVP features.&lt;br&gt;&lt;br&gt;
And honestly — it took longer than expected,&lt;br&gt;&lt;br&gt;
because I cared &lt;em&gt;way too much&lt;/em&gt; about the landing page design 😅  &lt;/p&gt;

&lt;p&gt;Even for an MVP, the landing page needed to &lt;strong&gt;feel real&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Good design builds trust — and trust drives validation.&lt;br&gt;&lt;br&gt;
A bad first impression kills interest faster than bugs ever could.  &lt;/p&gt;

&lt;p&gt;Here’s what got done 👇  &lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 The Full MVP Flow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/create&lt;/code&gt; page — Idea input form with Mantine Form + Zod validation
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/land/[project_name]&lt;/code&gt; — Dynamic landing page generation (SSR)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/dashboard/[access_id]&lt;/code&gt; — Dashboard with metrics &amp;amp; email list
&lt;/li&gt;
&lt;li&gt;Email submission → stored via Server Action → recorded as events
&lt;/li&gt;
&lt;li&gt;CSV export fully functional (client-side download)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚙️ Backend Logic
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Extended Server Actions for &lt;code&gt;submitEmailAction&lt;/code&gt; and &lt;code&gt;recordEventAction&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Added metrics aggregation logic (views, interactions, submissions)
&lt;/li&gt;
&lt;li&gt;Implemented 404 handling for invalid projects and access IDs
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎨 Design &amp;amp; UX
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Polished layout for landing pages using Mantine Grid + CSS Modules
&lt;/li&gt;
&lt;li&gt;Added light/dark theme support with MantineProvider
&lt;/li&gt;
&lt;li&gt;Improved CTA feedback and success state transitions
&lt;/li&gt;
&lt;li&gt;Added subtle animations for CTA button and section transitions
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧭 What’s Next (Day 3 Plan)
&lt;/h2&gt;

&lt;p&gt;Tomorrow’s focus:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Using Lanorx to launch Lanorx.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll be building &lt;strong&gt;Lanorx’s own landing page using Lanorx itself.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;This is the meta moment I’ve been waiting for —&lt;br&gt;&lt;br&gt;
using my own product to validate my own product.  &lt;/p&gt;

&lt;p&gt;After that, I’ll move into &lt;strong&gt;production planning&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture review
&lt;/li&gt;
&lt;li&gt;Pricing model draft
&lt;/li&gt;
&lt;li&gt;Onboarding and marketing flow
&lt;/li&gt;
&lt;li&gt;Domain setup and public launch prep
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of Day 3, Lanorx will have its own landing page&lt;br&gt;&lt;br&gt;
— powered entirely by Lanorx.  &lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Reflection
&lt;/h2&gt;

&lt;p&gt;Day 2 was the first &lt;em&gt;real&lt;/em&gt; “it works” moment.&lt;br&gt;&lt;br&gt;
Seeing data flow through — from landing page to dashboard — felt surreal.  &lt;/p&gt;

&lt;p&gt;There’s something special about seeing your product validate itself.&lt;br&gt;&lt;br&gt;
That’s exactly what Lanorx was meant to do — and now it’s doing it.  &lt;/p&gt;

&lt;p&gt;Today also reminded me that &lt;strong&gt;design matters&lt;/strong&gt;, even early on.&lt;br&gt;&lt;br&gt;
You can’t validate something people don’t &lt;em&gt;want to engage with&lt;/em&gt;.&lt;br&gt;&lt;br&gt;
A clear, trustworthy UI is a validation tool in itself.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Momentum is built through credibility —&lt;br&gt;&lt;br&gt;
and credibility starts with design that feels real.”  &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📍 Follow the Journey
&lt;/h2&gt;

&lt;p&gt;I’ll keep posting daily progress on Twitter/X → &lt;a href="https://twitter.com/D_chool" rel="noopener noreferrer"&gt;@D_chool&lt;/a&gt;&lt;br&gt;&lt;br&gt;
and weekly breakdowns here on &lt;a href="https://dev.to/gecschool"&gt;Dev.to&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;Day 2&lt;/strong&gt; of 50.&lt;br&gt;&lt;br&gt;
Tomorrow, I’ll use Lanorx to launch Lanorx.  &lt;/p&gt;




&lt;h3&gt;
  
  
  🧠 Hashtags
&lt;/h3&gt;

&lt;h1&gt;
  
  
  buildinpublic #50DaysTo1K #indiehackers #SaaS #NextJS #TypeScript #Prisma #Mantine #SoloFounder #webdev
&lt;/h1&gt;

</description>
      <category>50daysto1k</category>
      <category>buildinpublic</category>
      <category>saas</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🚀 50DaysTo1K — Day 1 Laying the Foundation for Lanorx</title>
      <dc:creator>Dchool</dc:creator>
      <pubDate>Thu, 16 Oct 2025 13:35:49 +0000</pubDate>
      <link>https://dev.to/gecschool/50daysto1k-day-1-laying-the-foundation-for-lanorx-2ie3</link>
      <guid>https://dev.to/gecschool/50daysto1k-day-1-laying-the-foundation-for-lanorx-2ie3</guid>
      <description>&lt;p&gt;Hey everyone 👋  &lt;/p&gt;

&lt;p&gt;I’m Dchool — solo dev, indie hacker, and builder of &lt;strong&gt;Lanorx&lt;/strong&gt;,&lt;br&gt;&lt;br&gt;
a tool that helps makers validate their ideas &lt;em&gt;before&lt;/em&gt; they build.&lt;/p&gt;

&lt;p&gt;Today marks &lt;strong&gt;Day 1&lt;/strong&gt; of my #50DaysTo1K challenge —&lt;br&gt;&lt;br&gt;
building Lanorx from scratch, shipping fast, and aiming for $1,000 MRR in 50 days.&lt;/p&gt;




&lt;h2&gt;
  
  
  💭 The Goal
&lt;/h2&gt;

&lt;p&gt;Every indie hacker knows the struggle of building something&lt;br&gt;&lt;br&gt;
without knowing if anyone actually wants it.&lt;/p&gt;

&lt;p&gt;Lanorx is my attempt to solve that —&lt;br&gt;&lt;br&gt;
to make &lt;strong&gt;idea validation&lt;/strong&gt; effortless and automatic.  &lt;/p&gt;

&lt;p&gt;No templates. No endless setup.&lt;br&gt;&lt;br&gt;
Just input → launch → validate.&lt;/p&gt;




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

&lt;p&gt;Today was all about &lt;strong&gt;foundation&lt;/strong&gt; —&lt;br&gt;&lt;br&gt;
no visuals, no fancy UI — just building a rock-solid base to move fast later.&lt;/p&gt;

&lt;p&gt;Here’s what got done 👇&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Core Setup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Bootstrapped &lt;strong&gt;Next.js (App Router)&lt;/strong&gt; + TypeScript
&lt;/li&gt;
&lt;li&gt;Configured strict &lt;strong&gt;ESLint / Prettier&lt;/strong&gt; setup
&lt;/li&gt;
&lt;li&gt;Added &lt;strong&gt;Mantine&lt;/strong&gt; (UI) and &lt;strong&gt;Emotion&lt;/strong&gt; (SSR caching)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧩 Database &amp;amp; ORM
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Designed and migrated full &lt;strong&gt;Prisma schema&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Projects&lt;/code&gt;, &lt;code&gt;Emails&lt;/code&gt;, &lt;code&gt;Events&lt;/code&gt;, and &lt;code&gt;AccessKeys&lt;/code&gt; models
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Connected to &lt;strong&gt;PlanetScale (MySQL)&lt;/strong&gt; successfully
&lt;/li&gt;

&lt;li&gt;Implemented Prisma Client singleton with HMR-safe logic&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔍 Validation &amp;amp; Utilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Wrote &lt;strong&gt;Zod schemas&lt;/strong&gt; for project creation, email submission, and dashboard access
&lt;/li&gt;
&lt;li&gt;Built &lt;strong&gt;slug generator&lt;/strong&gt; and &lt;strong&gt;Access ID&lt;/strong&gt; util (Base62 + regex validation)
&lt;/li&gt;
&lt;li&gt;Added &lt;strong&gt;CSV export util&lt;/strong&gt; for dashboard downloads (RFC4180 compliant)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎨 Shared Components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Created base components: &lt;strong&gt;Button&lt;/strong&gt;, &lt;strong&gt;Input&lt;/strong&gt;, &lt;strong&gt;Card&lt;/strong&gt;, and &lt;strong&gt;Stack&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Added design tokens (&lt;code&gt;tokens.css&lt;/code&gt;) and Mantine theme overrides
&lt;/li&gt;
&lt;li&gt;Everything styled with &lt;strong&gt;CSS Modules&lt;/strong&gt; for full control — no Tailwind.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔧 Server Action Prototype
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Implemented &lt;code&gt;createProjectAction&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;Validates input (Zod)
&lt;/li&gt;
&lt;li&gt;Checks duplicate slugs
&lt;/li&gt;
&lt;li&gt;Creates Project + AccessKey in MySQL
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This means — starting tomorrow —&lt;br&gt;&lt;br&gt;
I can actually &lt;strong&gt;create new projects and generate landing pages dynamically.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧭 What’s Next (Day 2 Plan)
&lt;/h2&gt;

&lt;p&gt;Tomorrow’s focus:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Building the full MVP validation loop.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s the goal:&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;code&gt;/create&lt;/code&gt; — Input your idea and instantly create a landing page&lt;br&gt;&lt;br&gt;
2️⃣ &lt;code&gt;/land/[project_name]&lt;/code&gt; — Visitors can submit their email&lt;br&gt;&lt;br&gt;
3️⃣ &lt;code&gt;/dashboard/[access_id]&lt;/code&gt; — See collected data and conversion metrics  &lt;/p&gt;

&lt;p&gt;By the end of Day 2, a user should be able to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create → Share → Collect → Analyze — all inside Lanorx.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If that works, Lanorx officially becomes a working product.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Reflection
&lt;/h2&gt;

&lt;p&gt;Day 1 wasn’t flashy.&lt;br&gt;&lt;br&gt;
It was architecture, structure, and groundwork —&lt;br&gt;&lt;br&gt;
the invisible stuff that makes fast iteration possible.&lt;/p&gt;

&lt;p&gt;The difference between an app that collapses after launch&lt;br&gt;&lt;br&gt;
and one that scales smoothly often comes down to &lt;strong&gt;what you build first&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I didn’t rush the UI.&lt;br&gt;&lt;br&gt;
I built the skeleton that’ll hold everything up.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Before you can validate your idea,&lt;br&gt;&lt;br&gt;
you have to validate your system for building ideas.”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📍 Follow the Journey
&lt;/h2&gt;

&lt;p&gt;I’ll post daily progress on Twitter/X → &lt;a href="https://twitter.com/D_chool" rel="noopener noreferrer"&gt;@D_chool&lt;/a&gt;&lt;br&gt;&lt;br&gt;
and deeper weekly reflections here on &lt;a href="https://dev.to/gecschool/50daysto1k-building-a-saas-to-1000-mrr-in-50-days-20bp"&gt;Dev.to&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;Day 1&lt;/strong&gt; of 50.&lt;br&gt;&lt;br&gt;
Tomorrow — we make Lanorx &lt;em&gt;real.&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🧠 Hashtags
&lt;/h3&gt;

&lt;h1&gt;
  
  
  buildinpublic #50DaysTo1K #indiehackers #SaaS #NextJS #TypeScript #Prisma #Mantine #SoloFounder #webdev
&lt;/h1&gt;

</description>
      <category>50daysto1k</category>
      <category>buildinpublic</category>
      <category>saas</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🚀 50DaysTo1K — Building a SaaS to $1,000 MRR in 50 Days</title>
      <dc:creator>Dchool</dc:creator>
      <pubDate>Thu, 16 Oct 2025 07:24:39 +0000</pubDate>
      <link>https://dev.to/gecschool/50daysto1k-building-a-saas-to-1000-mrr-in-50-days-20bp</link>
      <guid>https://dev.to/gecschool/50daysto1k-building-a-saas-to-1000-mrr-in-50-days-20bp</guid>
      <description>&lt;p&gt;Hey everyone 👋&lt;br&gt;&lt;br&gt;
I’m &lt;strong&gt;Dchool&lt;/strong&gt;, a solo developer and indie hacker from Seoul.&lt;br&gt;&lt;br&gt;
Today marks the start of my new public challenge: &lt;strong&gt;#50DaysTo1K&lt;/strong&gt; —  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Build a SaaS from scratch and reach $1,000 MRR in 50 days.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But this time, it’s not just another side project.&lt;br&gt;&lt;br&gt;
It’s something that came out of a long cycle of building things that never took off.&lt;/p&gt;




&lt;h2&gt;
  
  
  💭 A Little Backstory
&lt;/h2&gt;

&lt;p&gt;I’ve been coding for years.&lt;br&gt;&lt;br&gt;
I’ve built countless projects — websites, apps, tools — you name it.&lt;br&gt;&lt;br&gt;
But most of them never went anywhere.  &lt;/p&gt;

&lt;p&gt;Why?&lt;br&gt;&lt;br&gt;
Because I kept building in silence, chasing perfection before feedback.&lt;br&gt;&lt;br&gt;
I’d code for weeks, sometimes months, before realizing no one even needed what I made.  &lt;/p&gt;

&lt;p&gt;I wasn’t failing because I couldn’t build.&lt;br&gt;&lt;br&gt;
I was failing because I never &lt;em&gt;validated&lt;/em&gt; what I built.  &lt;/p&gt;

&lt;p&gt;And that realization changed everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The Problem
&lt;/h2&gt;

&lt;p&gt;Every indie hacker hears the same advice:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Don’t start coding yet — create a landing page and see if people care.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s true.&lt;br&gt;&lt;br&gt;
But let’s be honest — that process sucks.&lt;/p&gt;

&lt;p&gt;You need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;design and host a landing page
&lt;/li&gt;
&lt;li&gt;set up email collection or waitlists
&lt;/li&gt;
&lt;li&gt;connect everything manually (Google Sheets, Notion, whatever)
&lt;/li&gt;
&lt;li&gt;and then somehow manage and email those early users
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s repetitive, time-consuming, and kills momentum before you even start.&lt;br&gt;&lt;br&gt;
And I got tired of it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Why I’m Building Lanorx
&lt;/h2&gt;

&lt;p&gt;So I decided to build &lt;strong&gt;Lanorx&lt;/strong&gt; —&lt;br&gt;&lt;br&gt;
a tool to automate all of that &lt;em&gt;validation friction&lt;/em&gt; away.&lt;/p&gt;

&lt;p&gt;Lanorx creates a full validation loop in minutes:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;idea → landing page → data → feedback&lt;/strong&gt; — all in one place.  &lt;/p&gt;

&lt;p&gt;No setup. No third-party forms. No manual work.  &lt;/p&gt;

&lt;p&gt;Just type your idea, share the generated link,&lt;br&gt;&lt;br&gt;
and watch the real signals come in — views, clicks, emails, and conversion data.  &lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Enter your idea.&lt;/strong&gt;
Write your project title, tagline, and short description.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lanorx generates a landing page automatically.&lt;/strong&gt;
You get a clean, minimal, and shareable page.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share your link.&lt;/strong&gt;
Visitors can show interest or leave their email.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;View analytics in your dashboard.&lt;/strong&gt;
No setup, no tracking code, just real data.
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;It’s not a landing page builder.&lt;br&gt;&lt;br&gt;
It’s a &lt;strong&gt;validation engine&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧱 Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework (MVP):&lt;/strong&gt; Next.js (App Router)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework (Production):&lt;/strong&gt; Next.js + Express (API Gateway &amp;amp; microservice expansion)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; TypeScript
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; MySQL + Prisma
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI:&lt;/strong&gt; CSS Modules (not Tailwind — I want full control)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth:&lt;/strong&gt; Email-based Access Link (passwordless)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy:&lt;/strong&gt; Vercel
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every decision is guided by one principle:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Make validation so easy that makers have no reason to skip it.”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧭 The Challenge: #50DaysTo1K
&lt;/h2&gt;

&lt;p&gt;For the next 50 days, I’ll build, ship, and share everything in public.&lt;br&gt;&lt;br&gt;
My goal:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;From $0 → $1,000 MRR in 50 days.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’ll post daily progress on &lt;strong&gt;Twitter/X&lt;/strong&gt; (&lt;code&gt;@D_chool&lt;/code&gt;)&lt;br&gt;&lt;br&gt;
and weekly breakdowns here on &lt;strong&gt;Dev.to&lt;/strong&gt; —&lt;br&gt;&lt;br&gt;
including what I built, how users responded, and what I learned.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What I’m Trying to Prove
&lt;/h2&gt;

&lt;p&gt;I want to prove that momentum matters more than polish.&lt;br&gt;&lt;br&gt;
That validation is a feature — not an afterthought.&lt;br&gt;&lt;br&gt;
And that even as a solo indie hacker,&lt;br&gt;&lt;br&gt;
you can turn execution + public feedback into traction.&lt;/p&gt;




&lt;h2&gt;
  
  
  📍 Follow the Journey
&lt;/h2&gt;

&lt;p&gt;Follow me on &lt;strong&gt;&lt;a href="https://x.com/D_chool" rel="noopener noreferrer"&gt;X/Twitter&lt;/a&gt;&lt;/strong&gt; for daily updates&lt;br&gt;&lt;br&gt;
and here on Dev.to for deeper reflections.  &lt;/p&gt;

&lt;p&gt;If you’re also building something —&lt;br&gt;&lt;br&gt;
don’t wait for it to be perfect.&lt;br&gt;&lt;br&gt;
Launch it, validate it, and learn in public.  &lt;/p&gt;




&lt;h3&gt;
  
  
  🧠 Hashtags
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;#buildinpublic&lt;/code&gt; &lt;code&gt;#50DaysTo1K&lt;/code&gt; &lt;code&gt;#indiehackers&lt;/code&gt; &lt;code&gt;#SaaS&lt;/code&gt; &lt;code&gt;#NextJS&lt;/code&gt; &lt;code&gt;#TypeScript&lt;/code&gt; &lt;code&gt;#SoloFounder&lt;/code&gt;&lt;/p&gt;

</description>
      <category>50daysto1k</category>
      <category>saas</category>
      <category>buildinpublic</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Mastering CSS Unit Size Conversion: Simplify Your Workflow</title>
      <dc:creator>Dchool</dc:creator>
      <pubDate>Sun, 09 Jun 2024 10:43:02 +0000</pubDate>
      <link>https://dev.to/gecschool/mastering-css-unit-size-conversion-simplify-your-workflow-112p</link>
      <guid>https://dev.to/gecschool/mastering-css-unit-size-conversion-simplify-your-workflow-112p</guid>
      <description>&lt;p&gt;When it comes to responsive web design, managing CSS unit sizes efficiently is crucial. Understanding how to convert between different units can greatly enhance your design process. Among these conversions, px to rem is one of the most commonly used, especially for creating scalable and accessible web interfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding px to rem Conversion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The px (pixel) is a fixed unit representing a dot on the screen, which is an absolute measurement. On the other hand, rem (root em) is a relative unit that stands for the font size of the root element (usually the &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; element). The primary advantage of using rem over px is scalability. When you use rem units, you ensure that your design scales proportionally based on the root font size, making it more responsive.&lt;/p&gt;

&lt;p&gt;Here’s a simple formula to convert px to rem:&lt;br&gt;
[ \text{rem} = \frac{\text{px}}{16} ]&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;16px = 1rem&lt;/li&gt;
&lt;li&gt;32px = 2rem&lt;/li&gt;
&lt;li&gt;48px = 3rem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using rem units helps in maintaining consistency across different devices and ensures that your website remains accessible by allowing users to adjust the base font size according to their preferences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Superior Solution: CSS Unit Size Converter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While the basic conversion can be done manually or using simple online calculators, what if you need to convert an entire CSS file? Manually converting each unit is tedious and error-prone. This is where a comprehensive tool can make a significant difference.&lt;/p&gt;

&lt;p&gt;I highly recommend checking out the CSS Unit Size Converter available at &lt;a href="http://css-nexus.com/SUC/px-to-rem" rel="noopener noreferrer"&gt;css-nexus.com/SUC/px-to-rem&lt;/a&gt;. Unlike other tools that only convert individual values, this site allows you to input your entire CSS code and automatically converts all the px values to rem (or any other unit you prefer). This feature can save you a tremendous amount of time and effort, ensuring accuracy and efficiency in your workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of CSS Nexus Unit Size Converter:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Batch Conversion:&lt;/strong&gt; Convert entire CSS files at once.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizable Base Values:&lt;/strong&gt; Set your base value for rem conversion according to your project needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple Unit Support:&lt;/strong&gt; Besides px to rem, it supports various other unit conversions, making it a versatile tool for any CSS project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User-Friendly Interface:&lt;/strong&gt; The intuitive interface makes it easy for both beginners and experienced developers to use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By using this tool, you can streamline your CSS workflow and focus more on the creative aspects of your web design, rather than getting bogged down with repetitive tasks.&lt;/p&gt;

&lt;p&gt;Try it out at &lt;a href="http://www.css-nexus.com/SUC/px-to-rem" rel="noopener noreferrer"&gt;css-nexus.com/SUC/px-to-rem&lt;/a&gt; and take your web design efficiency to the next level.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22qvjwi138c9e3rbua1v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22qvjwi138c9e3rbua1v.jpg" alt="Image description" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>px</category>
      <category>size</category>
    </item>
  </channel>
</rss>
