<?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: Anton Briukhanov</title>
    <description>The latest articles on DEV Community by Anton Briukhanov (@__446484de69).</description>
    <link>https://dev.to/__446484de69</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%2F3968098%2F14bbc8d6-bfd0-4538-b378-9c118e1a3db0.jpg</url>
      <title>DEV Community: Anton Briukhanov</title>
      <link>https://dev.to/__446484de69</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/__446484de69"/>
    <language>en</language>
    <item>
      <title>Building LunaDocu: why document status should not be treated as a task</title>
      <dc:creator>Anton Briukhanov</dc:creator>
      <pubDate>Thu, 04 Jun 2026 10:42:34 +0000</pubDate>
      <link>https://dev.to/__446484de69/building-lunadocu-why-document-status-should-not-be-treated-as-a-task-504d</link>
      <guid>https://dev.to/__446484de69/building-lunadocu-why-document-status-should-not-be-treated-as-a-task-504d</guid>
      <description>&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%2F5kfkrnaxm6sgdqjo52cl.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%2F5kfkrnaxm6sgdqjo52cl.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;br&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%2Fcbye7gbvbx0vumbt8oi3.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%2Fcbye7gbvbx0vumbt8oi3.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;br&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%2Futht53ymp2lx46tns75g.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%2Futht53ymp2lx46tns75g.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;br&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%2Fw3l1ahlgsmd1p369imdu.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%2Fw3l1ahlgsmd1p369imdu.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m building LunaDocu, a small Spring Boot / Thymeleaf B2B SaaS for document approval status visibility.&lt;/p&gt;

&lt;p&gt;The original idea looked simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Track document approvals in one place.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But after working on the product and talking to other founders, I started to realize that this framing is too generic.&lt;/p&gt;

&lt;p&gt;“Document approval tracking” sounds like a feature.&lt;br&gt;
It also sounds like something a spreadsheet, SharePoint list, Airtable base, or project management tool could already solve.&lt;/p&gt;

&lt;p&gt;The more interesting problem is different:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;People keep asking “where is this document stuck?” because nobody fully trusts the current status.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That changes the product logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Storage is not the same as status
&lt;/h2&gt;

&lt;p&gt;Most teams already know where their documents live.&lt;/p&gt;

&lt;p&gt;They may use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Docs&lt;/li&gt;
&lt;li&gt;SharePoint&lt;/li&gt;
&lt;li&gt;Dropbox&lt;/li&gt;
&lt;li&gt;email attachments&lt;/li&gt;
&lt;li&gt;internal storage&lt;/li&gt;
&lt;li&gt;contract management tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the approval status often lives somewhere else:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a spreadsheet&lt;/li&gt;
&lt;li&gt;Slack or Teams messages&lt;/li&gt;
&lt;li&gt;email threads&lt;/li&gt;
&lt;li&gt;meeting notes&lt;/li&gt;
&lt;li&gt;one coordinator’s memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the document exists.&lt;br&gt;
The file is not lost.&lt;/p&gt;

&lt;p&gt;But the current state is unclear.&lt;/p&gt;

&lt;p&gt;That is where repeated follow-ups start.&lt;/p&gt;

&lt;h2&gt;
  
  
  A document status is not a task status
&lt;/h2&gt;

&lt;p&gt;A task status usually implies action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To do&lt;/li&gt;
&lt;li&gt;In progress&lt;/li&gt;
&lt;li&gt;Blocked&lt;/li&gt;
&lt;li&gt;Done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That works well when the main question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Who needs to do what next?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But document approvals often have a different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the current state of this document, and why is nothing happening right now?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For LunaDocu, I’m trying to separate these concepts.&lt;/p&gt;

&lt;p&gt;The document is not always a task.&lt;br&gt;
Sometimes it is a process object.&lt;/p&gt;

&lt;p&gt;It may be active.&lt;br&gt;
It may be waiting.&lt;br&gt;
It may be completed.&lt;br&gt;
It may be blocked by an external dependency.&lt;/p&gt;

&lt;p&gt;But “waiting” should not automatically mean failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Waiting should be a valid state
&lt;/h2&gt;

&lt;p&gt;In many systems, waiting starts to look bad.&lt;/p&gt;

&lt;p&gt;If nothing changed for a while, the item feels stale.&lt;br&gt;
If someone is assigned, it can look like blame.&lt;br&gt;
If there is a due date, it can become pressure.&lt;br&gt;
If there is an overdue label, it becomes escalation.&lt;/p&gt;

&lt;p&gt;But in real document approval processes, waiting is often normal.&lt;/p&gt;

&lt;p&gt;Waiting for legal review.&lt;br&gt;
Waiting for a client response.&lt;br&gt;
Waiting for a vendor document.&lt;br&gt;
Waiting for internal confirmation.&lt;br&gt;
Waiting for compliance.&lt;/p&gt;

&lt;p&gt;The important part is not always to push someone harder.&lt;/p&gt;

&lt;p&gt;Sometimes the important part is to make the waiting reason visible enough that people do not need to ask again.&lt;/p&gt;

&lt;h2&gt;
  
  
  The model I’m using
&lt;/h2&gt;

&lt;p&gt;In LunaDocu, I’m trying to keep the core model small:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;document&lt;/li&gt;
&lt;li&gt;current status&lt;/li&gt;
&lt;li&gt;steps&lt;/li&gt;
&lt;li&gt;waiting reason&lt;/li&gt;
&lt;li&gt;responsible side&lt;/li&gt;
&lt;li&gt;last confirmed update&lt;/li&gt;
&lt;li&gt;change history&lt;/li&gt;
&lt;li&gt;read-only status page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The current status should be understandable without turning the product into a heavy workflow engine.&lt;/p&gt;

&lt;p&gt;The goal is not to replace every workflow tool.&lt;/p&gt;

&lt;p&gt;The goal is to create a calm status layer for documents where repeated follow-up questions are the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why read-only matters
&lt;/h2&gt;

&lt;p&gt;One design choice I care about is read-only access.&lt;/p&gt;

&lt;p&gt;Not everyone involved in a document approval process should become an active user.&lt;/p&gt;

&lt;p&gt;A stakeholder may only need to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what is the current state?&lt;/li&gt;
&lt;li&gt;who or which side is it waiting on?&lt;/li&gt;
&lt;li&gt;why is it waiting?&lt;/li&gt;
&lt;li&gt;when was it last confirmed?&lt;/li&gt;
&lt;li&gt;what changed before?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If they can see that in a read-only page, the team may avoid another status meeting, chat message, or email thread.&lt;/p&gt;

&lt;p&gt;That is the kind of value I’m trying to test.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I’m validating now
&lt;/h2&gt;

&lt;p&gt;I’m not trying to validate whether people like the phrase “document approval tracker.”&lt;/p&gt;

&lt;p&gt;That is too abstract.&lt;/p&gt;

&lt;p&gt;The better validation question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Are teams already losing time, trust, or client confidence because nobody knows where a document is stuck?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the answer is yes, the next question is whether they already have a workaround:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a shared spreadsheet&lt;/li&gt;
&lt;li&gt;a status template&lt;/li&gt;
&lt;li&gt;a manual tracker&lt;/li&gt;
&lt;li&gt;a recurring update ritual&lt;/li&gt;
&lt;li&gt;a coordinator maintaining status manually&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is probably a stronger signal than someone simply saying “sounds useful.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Current state
&lt;/h2&gt;

&lt;p&gt;LunaDocu is still early.&lt;/p&gt;

&lt;p&gt;It is built with Java, Spring Boot, Thymeleaf, PostgreSQL, Flyway, and a deliberately simple server-rendered UI.&lt;/p&gt;

&lt;p&gt;I’m trying to keep the product narrow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;not a task manager&lt;/li&gt;
&lt;li&gt;not a BPM system&lt;/li&gt;
&lt;li&gt;not a performance tracking tool&lt;/li&gt;
&lt;li&gt;not an SLA engine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just a clearer answer to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Where is this document stuck?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m sharing this because I think many small SaaS products fail not because the implementation is hard, but because the product category is framed too broadly or too generically.&lt;/p&gt;

&lt;p&gt;For LunaDocu, the technical challenge is manageable.&lt;/p&gt;

&lt;p&gt;The harder part is finding the exact operational pain that is sharp enough to build around.&lt;/p&gt;

&lt;p&gt;I’m exploring this problem here: &lt;a href="https://lunadocu.com" rel="noopener noreferrer"&gt;https://lunadocu.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>springboot</category>
      <category>saas</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
