<?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: Bogdan Pil</title>
    <description>The latest articles on DEV Community by Bogdan Pil (@bogdan_pil_ee1855029043f2).</description>
    <link>https://dev.to/bogdan_pil_ee1855029043f2</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%2F3226141%2Fbc65a787-1521-4461-8e2d-3e777ea654cd.jpg</url>
      <title>DEV Community: Bogdan Pil</title>
      <link>https://dev.to/bogdan_pil_ee1855029043f2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bogdan_pil_ee1855029043f2"/>
    <language>en</language>
    <item>
      <title>Why Our First Automated Agreement Was an NDA — And Why That Matters</title>
      <dc:creator>Bogdan Pil</dc:creator>
      <pubDate>Wed, 11 Jun 2025 11:33:09 +0000</pubDate>
      <link>https://dev.to/bogdan_pil_ee1855029043f2/why-our-first-automated-agreement-was-an-nda-and-why-that-matters-47n5</link>
      <guid>https://dev.to/bogdan_pil_ee1855029043f2/why-our-first-automated-agreement-was-an-nda-and-why-that-matters-47n5</guid>
      <description>&lt;p&gt;When we started building &lt;a href="https://contractize.app" rel="noopener noreferrer"&gt;Contractize.app&lt;/a&gt;, we asked ourselves a simple but crucial question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the one agreement that almost every team, founder, freelancer, or startup deals with, often before anything else?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The answer was immediate: the &lt;strong&gt;Non-Disclosure Agreement&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;👉 You can explore our automated NDA tool here: &lt;a href="https://products.contractize.app/agreements/nda" rel="noopener noreferrer"&gt;products.contractize.app/agreements/nda&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This wasn’t just a guess or a convenient place to start. Choosing the NDA as our first automated product was a strategic decision rooted in real-world pain points we’ve seen again and again.&lt;/p&gt;

&lt;p&gt;Let me explain why.&lt;/p&gt;




&lt;h2&gt;
  
  
  NDAs Are Everywhere — And They’re Still a Headache
&lt;/h2&gt;

&lt;p&gt;Whether you're pitching a startup idea, hiring a freelancer, joining a new company, or just discussing confidential info with a potential partner — the NDA is almost always the first document exchanged.&lt;/p&gt;

&lt;p&gt;And yet, for something so routine, it’s surprising how inefficient the process still is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You Google a template (and hope it’s legit),&lt;/li&gt;
&lt;li&gt;You manually edit names and dates,&lt;/li&gt;
&lt;li&gt;You try not to break the formatting,&lt;/li&gt;
&lt;li&gt;You send it, wait, revise, repeat...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s slow. It’s error-prone. It’s the opposite of modern.&lt;/p&gt;

&lt;p&gt;We knew we could do better.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the NDA Was the Perfect First Product
&lt;/h2&gt;

&lt;p&gt;We built &lt;a href="https://contractize.app" rel="noopener noreferrer"&gt;Contractize.app&lt;/a&gt; to bring automation and clarity to legal agreements. But legal tech is a crowded space. So we had to start strong — with a real problem that affects a wide audience.&lt;/p&gt;

&lt;p&gt;The NDA checked all the boxes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High volume&lt;/strong&gt;: Used across industries, roles, and company sizes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low complexity&lt;/strong&gt;: Simple enough to automate with confidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High stakes&lt;/strong&gt;: Even a small mistake can lead to serious legal risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardized&lt;/strong&gt;: Most NDAs share similar structure and intent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, it’s an ideal candidate for automation — and a great way to introduce people to our platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  From Static Templates to Smart Agreements
&lt;/h2&gt;

&lt;p&gt;Our goal wasn’t to create &lt;em&gt;just another form&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;We wanted to build an experience where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You answer a few guided questions,&lt;/li&gt;
&lt;li&gt;Get a professionally structured NDA instantly,&lt;/li&gt;
&lt;li&gt;Customize and send it without legal guesswork.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? A faster, smarter, and safer way to handle one of the most common agreements in modern business.&lt;/p&gt;

&lt;p&gt;You can try it out here:&lt;br&gt;
👉 &lt;a href="https://products.contractize.app/agreements/nda" rel="noopener noreferrer"&gt;Create Your NDA Now&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Educating, Not Just Automating
&lt;/h2&gt;

&lt;p&gt;One thing we care deeply about is &lt;strong&gt;user empowerment&lt;/strong&gt;. That’s why we didn’t stop at just giving users a form to fill out. We created a full &lt;a href="https://products.contractize.app/agreements/nda" rel="noopener noreferrer"&gt;NDA explainer page&lt;/a&gt; to break down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What NDAs are,&lt;/li&gt;
&lt;li&gt;Why they matter,&lt;/li&gt;
&lt;li&gt;How and when they’re used.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helps both first-time users and experienced professionals feel more confident about the agreements they’re signing or sending.&lt;/p&gt;




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

&lt;p&gt;The NDA is just the beginning.&lt;/p&gt;

&lt;p&gt;Our vision for Contractize is simple: &lt;strong&gt;make legal agreements as intuitive and efficient as sending an email&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We’re expanding our product library with more automated agreements — from freelance contracts to partnership deals — while keeping our focus on simplicity, speed, and legal integrity.&lt;/p&gt;

&lt;p&gt;If you've ever felt overwhelmed by legal docs, struggled with version control, or worried about enforceability, we’re building this for you.&lt;/p&gt;




&lt;p&gt;✍️ Want to see the NDA tool in action?&lt;br&gt;
Start here: &lt;a href="https://products.contractize.app/agreements/nda" rel="noopener noreferrer"&gt;products.contractize.app/agreements/nda&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;💬 Have thoughts, feedback, or want to collaborate? Let’s talk in the comments or connect on &lt;a href="https://linkedin.com" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; / &lt;a href="https://x.com" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; — we’re always up for conversations about legal design, automation, and product building.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How I Built a Contract Automation Platform with ASP.NET, Angular, and Dynamic .docx Templates</title>
      <dc:creator>Bogdan Pil</dc:creator>
      <pubDate>Fri, 30 May 2025 12:37:07 +0000</pubDate>
      <link>https://dev.to/bogdan_pil_ee1855029043f2/how-i-built-a-contract-automation-platform-with-aspnet-angular-and-dynamic-docx-templates-4233</link>
      <guid>https://dev.to/bogdan_pil_ee1855029043f2/how-i-built-a-contract-automation-platform-with-aspnet-angular-and-dynamic-docx-templates-4233</guid>
      <description>&lt;p&gt;When I started building &lt;a href="https://contractize.app" rel="noopener noreferrer"&gt;Contractize.app&lt;/a&gt;, my goal was simple: let people create clean, accurate contracts in seconds — without legal friction.&lt;/p&gt;

&lt;p&gt;But making that work under the hood? That was the fun part.&lt;/p&gt;

&lt;p&gt;In this post, I’ll share how I built the backend with &lt;strong&gt;ASP.NET&lt;/strong&gt;, the frontend with &lt;strong&gt;Angular&lt;/strong&gt;, and integrated external document rendering through &lt;strong&gt;.docx templates&lt;/strong&gt; and &lt;strong&gt;Formize API&lt;/strong&gt; to generate final PDFs — all with automation in mind.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Tech Stack Overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Angular&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: ASP.NET Core&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document Templates&lt;/strong&gt;: Microsoft Word &lt;code&gt;.docx&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Integration&lt;/strong&gt;: Formize.com (for template filling &amp;amp; PDF generation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output&lt;/strong&gt;: Publicly accessible PDF contracts&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📄 Why &lt;code&gt;.docx&lt;/code&gt;?
&lt;/h2&gt;

&lt;p&gt;Instead of hardcoding templates or using plain-text, I chose &lt;code&gt;.docx&lt;/code&gt; because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's familiar to end users (Word format = comfort).&lt;/li&gt;
&lt;li&gt;It supports rich formatting (tables, styles, variables).&lt;/li&gt;
&lt;li&gt;It's editable by non-tech staff (lawyers, ops, etc.).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Templates were uploaded to a central storage on &lt;a href="https://formize.com" rel="noopener noreferrer"&gt;Formize.com&lt;/a&gt;, where variable placeholders like &lt;code&gt;{{clientName}}&lt;/code&gt; or &lt;code&gt;{{startDate}}&lt;/code&gt; were pre-defined.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔌 API Flow: Dynamic Contract Generation
&lt;/h2&gt;

&lt;p&gt;Here's the high-level flow of how dynamic contract creation works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User fills a form&lt;/strong&gt; on the frontend (Angular).&lt;/li&gt;
&lt;li&gt;Data is sent to ASP.NET backend.&lt;/li&gt;
&lt;li&gt;Backend compiles a JSON object with the correct variables.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A POST request is made to Formize API:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"templateId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"nda-template.docx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"clientName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Acme Corp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"startDate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2025-05-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Formize fills the &lt;code&gt;.docx&lt;/code&gt; template and returns a &lt;strong&gt;PDF download link&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The backend saves that link, sends it to the frontend, and optionally emails it to the client.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;⚡ The result? A professional, filled, legally structured contract in under 5 seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Lessons Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Using &lt;code&gt;.docx&lt;/code&gt; was a game-changer&lt;/strong&gt;: Legal teams can update templates without touching code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ASP.NET + Angular combo was seamless&lt;/strong&gt;, especially for form validation and API integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formize API saved weeks of work&lt;/strong&gt; by abstracting template parsing and PDF generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caching document links&lt;/strong&gt; (or PDFs themselves) is key for performance if users generate many contracts in a session.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📚 Next Steps
&lt;/h2&gt;

&lt;p&gt;We're now expanding to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic clause toggles (e.g. include/exclude arbitration).&lt;/li&gt;
&lt;li&gt;Multi-language templates.&lt;/li&gt;
&lt;li&gt;eSignatures (integrating DocuSign or HelloSign).&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you're building anything document-related, or want to automate contracts for your team or startup — feel free to ping me or check out &lt;a href="https://contractize.app" rel="noopener noreferrer"&gt;Contractize.app&lt;/a&gt;. Happy to share more behind-the-scenes!&lt;/p&gt;




&lt;p&gt;💬 Have you ever built a doc-generation flow? Used &lt;code&gt;.docx&lt;/code&gt; in production? Would love to hear your setup.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>angular</category>
      <category>saas</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
