<?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>Forem: Kelvin Kiptum Kiprop</title>
    <description>The latest articles on Forem by Kelvin Kiptum Kiprop (@kelvink96).</description>
    <link>https://forem.com/kelvink96</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%2F334406%2Fdd335fa7-69ef-4f26-947b-63a157da3a64.jpeg</url>
      <title>Forem: Kelvin Kiptum Kiprop</title>
      <link>https://forem.com/kelvink96</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kelvink96"/>
    <language>en</language>
    <item>
      <title>Parse Pal: Open Source PDF Chat App Built with Next.js, Neon, Chroma, and Cloudinary</title>
      <dc:creator>Kelvin Kiptum Kiprop</dc:creator>
      <pubDate>Fri, 20 Mar 2026 12:56:01 +0000</pubDate>
      <link>https://forem.com/kelvink96/parse-pal-open-source-pdf-chat-app-built-with-nextjs-neon-chroma-and-cloudinary-2kob</link>
      <guid>https://forem.com/kelvink96/parse-pal-open-source-pdf-chat-app-built-with-nextjs-neon-chroma-and-cloudinary-2kob</guid>
      <description>&lt;p&gt;If you have ever dropped a long PDF into an AI tool and hoped for the best, you already know the problem: the answer might sound confident, but you still do not know what the app is doing behind the scenes, where your files go, or how hard it would be to adapt the workflow to your own needs.&lt;/p&gt;

&lt;p&gt;That is the gap Parse Pal is trying to close.&lt;/p&gt;

&lt;p&gt;Parse Pal is an open-source app for turning PDFs into a chat experience backed by retrieval. You can upload a document, ingest it, and ask questions against the content instead of guessing or manually scanning page after page. Under the hood, the project is built with a modern, practical stack: a Next.js web app, a CLI for local and admin workflows, shared retrieval logic in a reusable package, and hosted infrastructure for storage, state, and vector search.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Parse Pal is an open-source app for chatting with PDF documents using retrieval.&lt;/li&gt;
&lt;li&gt;It is built for a real hosted workflow, not just a throwaway demo&lt;/li&gt;
&lt;li&gt;The stack combines Next.js, Cloudinary, Neon, Chroma, and a shared RAG package&lt;/li&gt;
&lt;li&gt;Developers can study it, fork it, self-host it, or contribute to it&lt;/li&gt;
&lt;li&gt;Try the app here: &lt;a href="https://parse-palweb-production.up.railway.app/" rel="noopener noreferrer"&gt;https://parse-palweb-production.up.railway.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Explore the code here: &lt;a href="https://github.com/design-sparx/parse-pal" rel="noopener noreferrer"&gt;https://github.com/design-sparx/parse-pal&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&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%2Fzgdk6x3mfh4orpecmvwe.png" 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%2Fzgdk6x3mfh4orpecmvwe.png" alt="A polished product screenshot of the main app view.&amp;lt;br&amp;gt;
" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why We Built It
&lt;/h2&gt;

&lt;p&gt;A lot of document-chat demos look magical for five minutes and frustrating after that. They often hide the ingest flow, treat documents as disposable one-offs, or make it difficult to understand how retrieval is scoped.&lt;/p&gt;

&lt;p&gt;Parse Pal takes a more grounded approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PDF uploads are handled through a hosted web flow&lt;/li&gt;
&lt;li&gt;Ingestion runs asynchronously instead of blocking the whole experience&lt;/li&gt;
&lt;li&gt;Conversation, document, and job state are stored explicitly&lt;/li&gt;
&lt;li&gt;Retrieval is scoped to the relevant document instead of relying on a destructive single-document model&lt;/li&gt;
&lt;li&gt;The same project also includes a CLI surface for local or admin use cases&lt;/li&gt;
&lt;li&gt;That combination makes the app more useful for real projects, not just quick demos.&lt;/li&gt;
&lt;/ul&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%2Fs6dm6djp62li9mco1390.png" 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%2Fs6dm6djp62li9mco1390.png" alt="A simple diagram with 4 steps: Upload PDF, Process Document, Store Embeddings, Ask Questions&amp;lt;br&amp;gt;
" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes Parse Pal Interesting
&lt;/h2&gt;

&lt;p&gt;There are plenty of AI wrappers available online. What makes an open source project worth paying attention to is not just that it uses AI, but that it gives you a clean place to start building your own version.&lt;/p&gt;

&lt;p&gt;Parse Pal is interesting because it is opinionated in the right places:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The web app is designed for a hosted workflow, with direct upload, signing, and readiness polling&lt;/li&gt;
&lt;li&gt;The data flow is explicit, which makes the system easier to reason about&lt;/li&gt;
&lt;li&gt;The retrieval layer is shared, so the app and CLI do not drift apart&lt;/li&gt;
&lt;li&gt;The architecture is modular enough to extend without rewriting everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are a developer exploring RAG, document intelligence, or AI-assisted knowledge tools, that matters. You are not just getting a chatbot. You are getting a working reference for structuring one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopquvylbgul8qjoly2v6.png" 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%2Fopquvylbgul8qjoly2v6.png" alt="A clean architecture diagram. Show the browser talking to the Next.js app, which connects to Neon for state, Cloudinary for PDFs, and Chroma for vectors&amp;lt;br&amp;gt;
" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A Practical Stack for Document Chat
&lt;/h2&gt;

&lt;p&gt;Parse Pal uses a stack that is practical for a real document-AI product, not just a quick prototype. Each piece has a clear job:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js powers the web app because it gives us a strong foundation for building the hosted product experience, including routes, server-side logic, API endpoints, and a UI layer that is easy to extend&lt;/li&gt;
&lt;li&gt;Cloudinary handles PDF storage and delivery, so uploads can happen directly from the browser in a cleaner, more scalable way&lt;/li&gt;
&lt;li&gt;Neon stores conversation, document, and ingest job state so the app can track what was uploaded, what is still processing, and when a document is ready for chat&lt;/li&gt;
&lt;li&gt;Chroma handles vector storage, which makes retrieval possible once the document has been chunked and embedded&lt;/li&gt;
&lt;li&gt;The shared RAG package keeps embeddings, retrieval logic, vector-store integration, and Chroma configuration in one place, so both the web app and CLI can use the same core behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reason this stack works well is that it separates responsibilities cleanly. Next.js owns the product surface. Cloudinary owns file storage. Neon owns the application state. Chroma owns the retrieval data. The shared RAG package connects those pieces without forcing everything into one tangled code path.&lt;/p&gt;

&lt;p&gt;That separation is useful for contributors, too. It means the project is easier to understand, easier to debug, and easier to extend when someone wants to improve the UI, swap infrastructure, or experiment with retrieval quality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsg9z9qnjuwjv92rut3sg.png" 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%2Fsg9z9qnjuwjv92rut3sg.png" alt="A screenshot of the repo tree or a tidy code snippet that shows apps/web, apps/cli, and packages/rag&amp;lt;br&amp;gt;
" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who This Project Is For
&lt;/h2&gt;

&lt;p&gt;Parse Pal is a strong fit for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers learning how to build a document chat workflow end-to-end&lt;/li&gt;
&lt;li&gt;Indie hackers who want a starting point for a PDF Q&amp;amp;A product&lt;/li&gt;
&lt;li&gt;Teams prototyping internal knowledge tools&lt;/li&gt;
&lt;li&gt;open source contributors who want a practical AI app to improve
It is also a good example for people who want to study the tradeoffs behind ingest pipelines, hosted uploads, and retrieval scoping without starting from a blank repo.&lt;/li&gt;
&lt;/ul&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%2Fsnhij7rhj0uauen1th8v.png" 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%2Fsnhij7rhj0uauen1th8v.png" alt="A real chat screenshot with 2 or 3 useful questions and answers from a sample PDF&amp;lt;br&amp;gt;
" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Source Matters Here
&lt;/h2&gt;

&lt;p&gt;AI products become much more valuable when people can inspect, adapt, and improve them.&lt;/p&gt;

&lt;p&gt;With Parse Pal, open source means you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand how the ingest pipeline is wired&lt;/li&gt;
&lt;li&gt;Swap infrastructure choices to fit your stack&lt;/li&gt;
&lt;li&gt;Improve the UI and conversation experience&lt;/li&gt;
&lt;li&gt;Experiment with better retrieval and chunking strategies&lt;/li&gt;
&lt;li&gt;Use the CLI and shared package as building blocks for new workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a better story than “here is another black-box AI tool.” It invites people to use the project, learn from it, and contribute back to it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F08h3i6jitf9ro3apstlw.png" 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%2F08h3i6jitf9ro3apstlw.png" alt="A GitHub screenshot" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Parse Pal Can Grow
&lt;/h2&gt;

&lt;p&gt;The most exciting part of a project like this is not just what it already does, but what it enables next.&lt;/p&gt;

&lt;p&gt;Potential directions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better source citation and answer grounding&lt;/li&gt;
&lt;li&gt;richer document management for multi-file workflows&lt;/li&gt;
&lt;li&gt;team or workspace collaboration features&lt;/li&gt;
&lt;li&gt;evaluation tooling for retrieval quality&lt;/li&gt;
&lt;li&gt;improved onboarding for self-hosting and contributors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That makes Parse Pal useful both as a product and as a foundation for experimentation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge8s4q7a3jn1brpj8xcg.png" 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%2Fge8s4q7a3jn1brpj8xcg.png" alt="A simple roadmap card or illustrated checklist of upcoming ideas&amp;lt;br&amp;gt;
" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try Parse Pal or Contribute
&lt;/h2&gt;

&lt;p&gt;If you have been looking for an open source PDF chat app you can actually learn from, Parse Pal is worth a look.&lt;/p&gt;

&lt;p&gt;Use it to explore your own documents. Read the code to understand the architecture. Fork it if you want to build your own document assistant. Contribute if you want to help improve the open source AI tooling ecosystem.&lt;/p&gt;

&lt;p&gt;Live app: &lt;a href="https://parse-palweb-production.up.railway.app/" rel="noopener noreferrer"&gt;https://parse-palweb-production.up.railway.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/design-sparx/parse-pal" rel="noopener noreferrer"&gt;https://github.com/design-sparx/parse-pal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Projects like this are how better AI software gets built: in public, with real tradeoffs, by people willing to make the internals understandable.&lt;/p&gt;

&lt;p&gt;Parse Pal is a solid step in that direction.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>nextjs</category>
      <category>chromadb</category>
      <category>neondb</category>
    </item>
    <item>
      <title>Building a Modern Browser-Based Code Editor</title>
      <dc:creator>Kelvin Kiptum Kiprop</dc:creator>
      <pubDate>Sun, 25 Jan 2026 12:34:13 +0000</pubDate>
      <link>https://forem.com/kelvink96/building-a-modern-browser-based-code-editor-7eh</link>
      <guid>https://forem.com/kelvink96/building-a-modern-browser-based-code-editor-7eh</guid>
      <description>&lt;h1&gt;
  
  
  Code Editor X: Building a Modern Browser-Based Code Editor
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;A deep dive into creating a VS Code-inspired development environment using cutting-edge web technologies&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffx6bb4l43oalfoq25f4y.png" 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%2Ffx6bb4l43oalfoq25f4y.png" alt="Screenshot of editor page with all panels&amp;lt;br&amp;gt;
" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Code Editor X&lt;/strong&gt; is a VS Code-inspired, browser-based code editor built with &lt;strong&gt;React 19&lt;/strong&gt;, &lt;strong&gt;TypeScript&lt;/strong&gt;, &lt;strong&gt;CodeMirror 6&lt;/strong&gt;, &lt;strong&gt;Tailwind CSS 4&lt;/strong&gt;, and &lt;strong&gt;Radix UI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; Multi-file editing with tabs and file tree, syntax highlighting for multiple languages, AI chat assistant, project dashboard, persistent local storage, and full customization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt; Zero installation, lightweight, works on any device, built on modern tech, accessible by design.&lt;/p&gt;


&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The browser has become a legitimate platform for serious software development. Code Editor X is a modern, browser-based code editor built from the ground up with React 19, TypeScript, and CodeMirror 6.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I wanted to code from anywhere; my laptop, a borrowed computer, even a tablet, without installing anything. Traditional IDEs are powerful but heavy. They assume you have a dedicated machine with gigabytes to spare.&lt;/p&gt;

&lt;p&gt;I also wanted to learn. React 19 had just landed with its concurrent rendering improvements. CodeMirror 6 promised blazing-fast editing. Tailwind CSS 4 was out. Building a code editor felt like the perfect way to push these technologies to their limits and understand them deeply.&lt;/p&gt;

&lt;p&gt;Code Editor X started as an answer to a simple question: &lt;em&gt;What if VS Code lived entirely in your browser?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljca7k0ynynara5y53r1.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%2Fljca7k0ynynara5y53r1.gif" alt="GIF of settings theme toggle&amp;lt;br&amp;gt;
" width="400" height="215"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Who Is This For?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Audience&lt;/th&gt;
&lt;th&gt;Why It Works&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Students&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No setup—open browser, start coding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prototypers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lightweight environment for quick ideas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Teachers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Same environment for everyone, no "works on my machine"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remote workers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Access projects from any device&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Quick Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Traditional IDE&lt;/th&gt;
&lt;th&gt;Code Editor X&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Setup Time&lt;/td&gt;
&lt;td&gt;Minutes to hours&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Disk Space&lt;/td&gt;
&lt;td&gt;Hundreds of MB&lt;/td&gt;
&lt;td&gt;Zero&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-Platform&lt;/td&gt;
&lt;td&gt;Different installers&lt;/td&gt;
&lt;td&gt;Works everywhere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resource Usage&lt;/td&gt;
&lt;td&gt;500MB+ RAM&lt;/td&gt;
&lt;td&gt;Lightweight&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


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

&lt;p&gt;Every choice was deliberate.&lt;/p&gt;
&lt;h3&gt;
  
  
  React 19 + TypeScript
&lt;/h3&gt;

&lt;p&gt;Concurrent rendering handles complex UI updates smoothly—multiple resizable panels, real-time syntax highlighting, instant theme switching. TypeScript catches bugs at compile time and serves as living documentation.&lt;/p&gt;
&lt;h3&gt;
  
  
  CodeMirror 6
&lt;/h3&gt;

&lt;p&gt;The editor's heart. CM6 was rewritten from scratch for performance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compartments&lt;/strong&gt; for dynamic reconfiguration without recreating the editor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensible&lt;/strong&gt; architecture—every feature is a module&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile-friendly&lt;/strong&gt; unlike many competitors
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Switch themes without recreating the editor&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;themeCompartment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Compartment&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;view&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dispatch&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;effects&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;themeCompartment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reconfigure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;newTheme&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;h3&gt;
  
  
  Radix UI + Tailwind CSS 4
&lt;/h3&gt;

&lt;p&gt;Radix provides accessible component primitives (dialogs, dropdowns, tooltips) that work with screen readers and keyboard navigation. Tailwind makes styling fast and consistent.&lt;/p&gt;
&lt;h3&gt;
  
  
  IndexedDB + React Context
&lt;/h3&gt;

&lt;p&gt;Offline-first persistence with IndexedDB: your work stays local, you own your data. React Context manages theme, settings, and project state without external dependencies.&lt;/p&gt;


&lt;h2&gt;
  
  
  What We've Built
&lt;/h2&gt;
&lt;h3&gt;
  
  
  The Layout
&lt;/h3&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%2Ftdkj90o3cbpu3jjbttgc.png" 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%2Ftdkj90o3cbpu3jjbttgc.png" alt="Screenshot of editor page with all panels&amp;lt;br&amp;gt;
" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All panels are resizable, collapsible, and remember their state across sessions.&lt;/p&gt;
&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;File Tree&lt;/strong&gt;: Hierarchical navigation with language-specific icons, create/rename/delete operations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Tab Editing&lt;/strong&gt;: Dirty state indicators, tab management, auto-focus behavior&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CodeMirror Editor&lt;/strong&gt;: Syntax highlighting, line numbers, bracket matching, code folding, custom themes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Chat Panel&lt;/strong&gt;: Context-aware help, code block support with copy functionality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settings&lt;/strong&gt;: Theme, font, tab size, word wrap, auto-save—all customizable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard&lt;/strong&gt;: Project management with search, filters, and quick actions&lt;/li&gt;
&lt;/ul&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%2F875bda750ji3zo28154g.png" 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%2F875bda750ji3zo28154g.png" alt="Screenshot of home Page with recent created projects&amp;lt;br&amp;gt;
" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
├── components/
│   ├── layout/           # Shell layout
│   ├── editor-page/      # Editor components
│   └── ui/               # Reusable primitives
├── lib/
│   ├── theme-provider.tsx
│   ├── settings-provider.tsx
│   └── project-provider.tsx
└── types/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Three focused context providers handle state: &lt;strong&gt;ThemeProvider&lt;/strong&gt;, &lt;strong&gt;SettingsProvider&lt;/strong&gt;, &lt;strong&gt;ProjectProvider&lt;/strong&gt;. Changes flow unidirectionally through IndexedDB.&lt;/p&gt;


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

&lt;p&gt;&lt;strong&gt;Near-term&lt;/strong&gt;: Terminal integration, git operations, more language support, find and replace&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Medium-term&lt;/strong&gt;: Real AI integration, collaborative editing, extensions system, cloud sync&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long-term&lt;/strong&gt;: Debugger, build tools, deployment pipelines, mobile optimization&lt;/p&gt;


&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Code Editor X shows what's possible when modern web technologies combine thoughtfully. The browser is no longer a limitation, it's a feature.&lt;/p&gt;


&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/design-sparx/code-editor-x" rel="noopener noreferrer"&gt;Live Demo →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Or run locally:&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/design-sparx/code-editor-x.git
&lt;span class="nb"&gt;cd &lt;/span&gt;code-editor-x
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;http://localhost:5173&lt;/code&gt; and start coding.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with React 19, TypeScript, CodeMirror 6, Tailwind CSS 4, and Radix UI.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/design-sparx/code-editor-x" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/strong&gt; · &lt;strong&gt;&lt;a href="https://code-editor-x.netlify.app/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>typescript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How I Built an Open-Source Admin Dashboard Template with Mantine and Next.js</title>
      <dc:creator>Kelvin Kiptum Kiprop</dc:creator>
      <pubDate>Wed, 03 Apr 2024 07:48:06 +0000</pubDate>
      <link>https://forem.com/kelvink96/how-i-built-an-open-source-admin-dashboard-template-with-mantine-and-nextjs-339m</link>
      <guid>https://forem.com/kelvink96/how-i-built-an-open-source-admin-dashboard-template-with-mantine-and-nextjs-339m</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Welcome to a journey into web development innovation and collaboration. In this post, we unveil the narrative behind an open-source admin dashboard template that redefines efficiency and user experience. Join us as we delve into the design, code, and community that shaped this project.&lt;/p&gt;

&lt;p&gt;At its core lie the dynamic forces of Mantine and Next.js. Mantine, a React component library, expertly crafts a functional UI masterpiece. With its diverse collection of UI components and unyielding focus on accessibility, it conjures an intuitive admin dashboard as if by artistic enchantment.&lt;/p&gt;

&lt;p&gt;Complementing Mantine is Next.js, a dynamic React framework with server-side rendering and performance. Our template transcends static design, delivering responsive, interactive experiences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why an admin dashboard template
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Admin dashboard templates are pivotal tools in web development, driving efficiency, organization, and seamless management.&lt;/li&gt;
&lt;li&gt;They function as potent catalysts, accelerating the development process for developers.&lt;/li&gt;
&lt;li&gt;These templates offer ready-made blueprints, reducing the need to start from scratch.&lt;/li&gt;
&lt;li&gt;They encompass a diverse array of pre-designed UI components, layouts, and functionalities.&lt;/li&gt;
&lt;li&gt;Specifically tailored to administrative interfaces, they address the unique needs of such applications.&lt;/li&gt;
&lt;li&gt;Templates provide a solid foundation, eliminating the requirement to build every element anew.&lt;/li&gt;
&lt;li&gt;This approach empowers developers to concentrate on crafting custom features and functionalities.&lt;/li&gt;
&lt;li&gt;The result is a distinctive application that stands out in a crowded digital landscape.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to get started
&lt;/h2&gt;

&lt;p&gt;Getting started with our open-source admin dashboard template is a breeze. By following a few simple steps, you can have the template up and running, ready for exploration and customization.&lt;/p&gt;

&lt;p&gt;To begin, head over to our GitHub repository. You’ll find the repository housing the admin dashboard template project. You have the option to either clone the repository using Git or download it as a ZIP archive. Choose the method that suits you best and retrieve the template’s source code onto your local machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Folders and Files
&lt;/h2&gt;

&lt;p&gt;· Layout — contains all files involved with the layout of your project. Such as styles for your header, footer, navigation, and grid system.&lt;/p&gt;

&lt;p&gt;· Components — holds all your files for buttons, carousels, sliders, and similar page components (think widgets).&lt;/p&gt;

&lt;p&gt;· Mocks — contains dummy data JSON files. Note: JSON files are generated using Mockaroo.&lt;/p&gt;

&lt;p&gt;As you navigate through these folders and files, you’ll gain a comprehensive understanding of how the template’s architecture is constructed and how different components interact.&lt;/p&gt;

&lt;h2&gt;
  
  
  Highlighted Components and Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Charts: Charts are essential for visualizing data trends and insights. Our template incorporates ApexCharts components, which are highly customizable and responsive.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import ReactApexChart from "react-apexcharts";

// Example usage
&amp;lt;ReactApexChart options={options} series={series} type="area" height={350}/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Tables: Mantine Datatable provides a data grid-like functionality coupled with data-rich user interfaces that are indispensable for displaying tabular data. Our template includes advanced table components that facilitate sorting, filtering, and pagination.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {DataTable} from "mantine-datatable";

// Example usage
&amp;lt;DataTable columns={columns} records={records}/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Forms: Forms are a crucial part of any admin interface. Mantine offers form components that are highly customizable and equipped with validation features.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { TextInput, Select } from '@mantine/core';

// Example usage
&amp;lt;TextInput label="Username" placeholder="Enter your username" /&amp;gt;;
&amp;lt;Select label="Role" data={roleOptions} /&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Maps: React Simple Maps provides maps that are valuable for visualizing geospatial data. You can integrate interactive maps into your dashboard to represent data points geographically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {ComposableMap, Geographies, Geography, Marker} from "react-simple-maps";

// Example usage
&amp;lt;ComposableMap projectionConfig={{rotate: [-10, 0, 0]}}&amp;gt;
  &amp;lt;Geographies geography={geoUrl}&amp;gt;
    {...}
  &amp;lt;/Geographies&amp;gt;
  {...
    return (
     &amp;lt;Marker key={...} coordinates={[...]}&amp;gt;
        &amp;lt;circle fill={...} stroke="#FFF" r={...}/&amp;gt;
    &amp;lt;/Marker&amp;gt;
    );
  })}
&amp;lt;/ComposableMap&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By incorporating these core components, our template accelerates the development of admin dashboards. These components are designed to work seamlessly together, providing a cohesive user experience. You can effortlessly create complex data visualizations, interactive tables, intuitive forms, and interactive maps — essential elements that transform raw data into meaningful insights.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying the Template to a Live Environment
&lt;/h2&gt;

&lt;p&gt;Deploying our admin dashboard template to a live environment is a straightforward process. We recommend utilizing popular hosting platforms like Vercel, Netlify, or Firebase Hosting. These platforms offer seamless integration with Next.js and allow you to deploy with a few simple steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Required Dependencies: Ensure you have the necessary dependencies specified in the &lt;code&gt;package.json&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;Build the Project: Generate a production build of your Next.js application using the command: &lt;code&gt;npm run build&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select Hosting Platform: Choose your preferred hosting platform (e.g., Vercel).&lt;/li&gt;
&lt;li&gt;Connect Repository: Link your template’s GitHub repository to the hosting platform.&lt;/li&gt;
&lt;li&gt;Configure Deployment Settings: Configure deployment settings, such as branch selection and build commands.&lt;/li&gt;
&lt;li&gt;Deploy: Trigger the deployment process. The hosting platform will automatically build and deploy your admin dashboard template.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;p&gt;The versatility of our admin dashboard template knows no bounds. It caters to a myriad of real-world use cases, each tailored to specific industries and applications:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;E-Commerce Management: The template can be employed to manage product listings, order processing, and inventory tracking for online stores.&lt;/li&gt;
&lt;li&gt;Data Analytics: With its data visualization components, the template can serve as a dashboard for analyzing metrics, trends, and insights.&lt;/li&gt;
&lt;li&gt;Project Management: The template’s customizable components facilitate the creation of project management tools for tracking tasks, deadlines, and team collaboration.&lt;/li&gt;
&lt;li&gt;SaaS Applications: As the foundation of a Software as a Service (SaaS) application, the template streamlines user management, subscription tracking, and data presentation.&lt;/li&gt;
&lt;li&gt;Content Management: It can also function as a content management system dashboard, offering tools to manage articles, media, and user-generated content.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;For a hands-on experience, explore the live demo of our admin dashboard template:&lt;/p&gt;

&lt;p&gt;Live demo — &lt;a href="https://mantine-analytics-dashboard.netlify.app/" rel="noopener noreferrer"&gt;https://mantine-analytics-dashboard.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Witness the template’s adaptability, responsiveness, and functionality firsthand. Feel free to interact with its components, navigate through its sections, and envisage how it could seamlessly integrate into your projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contributing and Support
&lt;/h2&gt;

&lt;p&gt;I welcome all developers and enthusiasts to contribute to the growth of our open-source admin dashboard template. Contributing is a collaborative process that empowers us to collectively enhance the template’s capabilities and quality. To get started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fork the Repository: Fork the template’s GitHub repository to your own GitHub account.&lt;/li&gt;
&lt;li&gt;Clone the Fork: Clone the forked repository to your local machine using Git.&lt;/li&gt;
&lt;li&gt;Create a Branch: Create a new branch for your contributions to keep the main codebase intact.&lt;/li&gt;
&lt;li&gt;Implement Changes: Make your desired changes, add new components, or refine existing features.&lt;/li&gt;
&lt;li&gt;Commit and Push: Commit your changes to the new branch and push them to your GitHub fork.&lt;/li&gt;
&lt;li&gt;Submit a Pull Request: Submit a pull request from your forked repository to the main template repository. Your changes will be reviewed and potentially merged.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conclusion&lt;br&gt;
In summary, our Mantine and Next.js admin dashboard template offers a range of benefits that empower developers, designers, and entrepreneurs to create exceptional admin interfaces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Efficiency and Speed: The template expedites development by providing a pre-built foundation of components and features, allowing you to focus on customization and innovation.&lt;/li&gt;
&lt;li&gt;Consistency and Aesthetics: Mantine’s design-first approach and Next.js’s performance optimizations ensure a consistent and visually appealing user experience.&lt;/li&gt;
&lt;li&gt;Flexibility and Customization: The template’s modularity and theming options facilitate easy customization to align with your project’s unique branding and requirements.&lt;/li&gt;
&lt;li&gt;Rich Functionality: The integration of core components such as charts, tables, forms, and maps equips you with tools to tackle diverse dashboard functionalities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Invitation to Explore and Utilize
&lt;/h2&gt;

&lt;p&gt;The Mantine and Next.js admin dashboard template isn’t just an end; it’s a beginning — a starting point for your creative journey. Whether you’re a seasoned developer seeking a rapid launch or an enthusiast keen on learning modern development practices, this template is your canvas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;p&gt;GitHub repository — &lt;a href="https://github.com/design-sparx/mantine-analytics-dashboard" rel="noopener noreferrer"&gt;https://github.com/design-sparx/mantine-analytics-dashboard&lt;/a&gt;&lt;br&gt;
Mantine — &lt;a href="https://mantine.dev/" rel="noopener noreferrer"&gt;https://mantine.dev/&lt;/a&gt;&lt;br&gt;
Nextjs — &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;https://nextjs.org/&lt;/a&gt;&lt;br&gt;
Code documentation — &lt;a href="https://mantine-analytics-dashboard-docs.netlify.app/" rel="noopener noreferrer"&gt;https://mantine-analytics-dashboard-docs.netlify.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>mantine</category>
      <category>ux</category>
    </item>
  </channel>
</rss>
