Title: Hi HN!<p>I&#x27;ve been working on SimplePDF to solve a problem I encounter weekly: filling out non-editable PDFs [1]<p>---<p># About SimplePDF<p>- The documents you load, edit, fill never see the light of my server, everything is processed locally – no remote uploading anything. This includes the PDF generation.<p>- There are no analytics &#x2F; third party tracking your every move (I do collect usage data, but it&#x27;s fully anonymous and processed and stored on my server): therefore no annoying cookie banner. You can read more on the Privacy Policy [2]<p>- If someone before you has filled the same document, upon opening it you&#x27;ll see fields already set, ready to be filled-in, think crowd-sourced fields positioning – saving you time and effort.<p>---<p># How does the crowd-sourced positioning of fields work?<p>When a document is loaded in your browser, a fingerprint of the document binary is made, and sent to the server. The document table consists of: document_id, fingerprint and created_at.<p>As soon as you start editing a document, a template is created, containing metadata about the fields (x, y, width, height, type of field, background color...) that is then tied to this document you created. Once you save, this template gets sent to the server.<p>The template table consists of: template_id, document_id, fields (the metadata) as well as created_by_customer_id if you&#x27;re a customer.<p>As a result, someone else on the other side of the world opening the same document will see the fields you positioned already there – you just saved them the 5min it took you to position them.<p>---<p># What&#x27;s the tech stack of SimplePDF?<p>- NextJS on the frontend<p>- Koa with GraphQL on the backend<p>- Postgres (Managed Database on Digital Ocean)<p>- A 10€ droplet on Digital Ocean<p>---<p>If you have any questions, comments or feedback (good or bad), I&#x27;m all ears!<p>---<p>[1] The assignments my estonian teacher gives me are usually scanned documents that do not have any editable fields in them.<p>[2] <a href="https:&#x2F;&#x2F;www.simplepdf.eu&#x2F;privacy_policy" rel="nofollow">https:&#x2F;&#x2F;www.simplepdf.eu&#x2F;privacy_policy</a>
Upvote: