7 ms·
Show HN: I built Creodocs, a document creation platform based on LaTeX
- turtlebits 6y ago1. Your pricing scheme is scary. Hard pass 2. To create a template, the user needs to know LaTeX. That severely restricts your user base. 3. What advantage do you have over "mail merge" in Google docs or Word?
- VelNZ 6y agoPricing scheme will change, that's become obvious today! Well, I also offer a service to create LaTeX templates, but yes, I know that limits the market and that's ok. I'm not trying to take over the world, I just want a "small Italian restaurant on the web", as DHH has said. Good question regarding the advantage over mail merge. LaTeX is extremely customizable in the layouts it can create (see some of my past work here: https://www.latextypesetting.com/showcase https://www.latextypesetting.com/showcase), and the typesetting quality is top notch. From a technical perspective, LaTeX can do math, create functions, use variables, etc. For many use cases, and particularly if design isn't your priority, Google Docs and Word mail merge will be an easier solution and that's ok.
- VelNZ 6y agoHi all, sole developer here! Creodocs has been over 6 years of work in my spare time and it's great to finally launch it! The idea for Creodocs came about after I launched https://LaTeXTemplates.com https://LaTeXTemplates.com and https://LaTeXTypesetting.com https://LaTeXTypesetting.com in 2012 and 2013, respectively. I noticed that academic documents and books consist almost entirely of content that changes across multiple instances of the template used to make them, but business documents are much more likely to consist of large proportions of static content. Think of receipts you receive from an online retailer; that company's information, branding and layout of the document doesn't change at all, but your account number, name, address and items purchased change. I thought, well, what if I use the power of LaTeX to create virtually any design imaginable (combined with the ability to do math, use variables, etc), but abstract away the code (which is hard to master and archaic by modern standards), to allow users to specify just those dynamic parts of a document they need to fill out and keep the rest unchangeable. Enter Creodocs, a document creation platform with a collection of templates available to all users, and the ability to add your own via a LaTeX template with variables specified. Variables each accept specific content types (int, bool, string, float) with a maximum length. Private templates can be shared with others, and there are billing groups to manage spending centrally. The idea is that a small/medium business would create (or have me create) a set of templates for documents they constantly produce, and then each of their staff (who don't know what LaTeX is) can log in and simply fill out a web form and get a consistent beautiful PDF document immediately. There is also the ability to create hundreds or thousands of documents at once using a spreadsheet, or create documents via an API without touching the website at all. I'd love some feedback on the idea and implementation! At this stage, if you're interested in using it for your business, send me an email and you're welcome to use it all you want for free if I can get some feedback. I'm also happy to chat about how the LaTeX world has changed in the last 10 years, or about how I've managed to have a steady stream of commercial clients willing to pay me to create custom LaTeX templates through my typesetting service.
- pvg 6y agoIf you're looking for feedback, you might want to put up a demo template or whatever other bit of the workflow that's easy to expose (at least, temporarily) so you get comments from HN users without the friction of sign-up.
- VelNZ 6y agoYes, I can see now that would be very useful going forward and I'll get on to it soon! Thanks!
- frontiersummit 6y agoYou may wish to rethink the name, as you are likely infringing on PTC's trademark. PTC Creo (Formerly known as Pro/Engineer) is high-end CAD software, competing against Catia and NX.
- VelNZ 6y agoWhen I searched online for the name there were essentially zero results for it so I'm surprised it would infringe anything. I'm not sure how trademark law works so I'll look into this though, thanks!
- frontiersummit 6y agoGoogle and Bing searches for "creo" give the PTC product as their first result. IANAL, but PTC could make the case that you are diluting their brand name by using it for your software, or worse, trying the phish their customers.
- VelNZ 6y agoIs using part of someone else's name a violation of trademark laws? I'm genuinely curious! I chose Creo because it means "to create" in Latin (I'm a sucker for Latin names), with docs obviously being short for documents. I'd argue that Creo is just a generic word, it's not like the name is Leicadocs where that word is very firmly tied to a single company.
- 29athrowaway 6y agoIt's a fantastic idea, but the landing page is more complicated than it needs to be. I suggest embedding a demo video of someone using the product. A 30-45 second video ideally. Make the page about the product, being as upfront as possible. This is the product, this is what it does, this is how you can access it. For example, the way Apple does it: https://www.apple.com/iphone-12/ https://www.apple.com/iphone-12/ ... First thing you see is the product itself... then what it does, then how you can buy it (Apple used to be better at making these pages btw).
- VelNZ 6y agoThanks for the feedback! I tried to make it clear what the product does in the How It Works section at the top of the home page and a few simplified screenshots further down, but perhaps that's not visual enough. I personally like when products have short GIFs on the home page highlighting the main features of the product. I did want to produce a GIF like that before launch, but I've spent over 6 years of my spare time working on Creodocs and I just really wanted to get it out already. I know I can pay someone to make the video, but since the product is likely to change visually, I'd like to learn to do it myself so I can remake the video after visual changes. Any suggestions for software to use?
- 29athrowaway 6y agoYou can start by making screencast of you editing a document, then visualizing the rendered document. You can use your browser in full screen mode and OBS for that. Then, you can edit the video and remove any delays and stuff like that.
- smoldesu 6y agoThis is awesome! Your monetization scheme is abhorrent! That's at least my first two reactions upon seeing this. Don't get me wrong, this idea is something I've wanted for a long, long time. Holy cow though, talk about a dark pattern: your credits method (and their 60 day expiry) has completely soured this experience for me out of the gate. I'm not going to sign up for a platform that continues to nudge me down a waterslide towards my wallet. Seriously, I'd probably rather have a subscription model for something of this caliber. If you want to attract a business crowd, you shouldn't implement a pay-as-you-go model. These companies want to integrate you into their SAAS stack and consider you a fixed-rate expenditure, not constantly worry about budgeting you into a part of their payroll.
- JeremyBanks 6y agoThe only place I remember seeing this model before was predatory telecom companies. Not a good association. Product does look nifty, though.
- VelNZ 6y agoThanks for the feedback! I answered a similar question in this thread with my reasoning for the pricing model, but it's really good to hear that I should probably change it from multiple people. Briefly, I wanted to discount sporadic bulk usage (hence expiry of 7 days) and charge fairly for long term availability (expiry of 2 years), with everyone else being in the 30 days bucket and treating it like a subscription. I'm aware that a larger company would not want to deal with purchasing regularly and my thinking was that the 2 years option is great for that. Buy a bunch of credits for 2 years and forget about them. If you stop using the product, just don't buy again, I'm not going to nag you for money. I haven't set up alerts that your credits are expiring soon or you're running out yet, but that would be the next logical step if I stay with this model. I'd love to hear your ideas for how else I could price Creodocs! I'm open to anything, this was just the result of trying to accommodate the most use cases.
- vitorsr 6y agoHello from a fellow LaTeX enthusiast. Out of curiosity, how do you handle external assets (e.g., images [1])? Extending the retailer example - suppose such company would further like to include a thumbnail for each product in a receipt. Or, extending the inspection example included in the support section, suppose the sender wishes to include a blueprint or an external document. How should they proceed? Some questions in anticipation. What if it is not possible to store the whole catalog locally for a given receipt template? What if catalog items are regarded as sensitive information for the company? [1] https://tex.stackexchange.com/questions/5433/can-i-use-an-image-located-on-the-web-in-a-latex-document https://tex.stackexchange.com/questions/5433/can-i-use-an-im...
- VelNZ 6y agoHey, there's quite a few LaTeX enthusiasts on HN! Great question and observation! Currently, the platform doesn't handle external non-text assets at all. This is something I will definitely be incorporating in the future. You can submit a private template where you bundle your logo and any other images and those will compile as normal with \includegraphics{}, but users of the template can't submit images or other assets beyond text at this stage. An image is a string of characters, so I don't imagine it will be too difficult to accept an image as a new document variable type, send it along with the bundle that goes to the workers, recreate it as a .jpg, and make use of it in the template. The difficulty then becomes coding the template in a way that if a user specifies a really tall or really wide image, the document still looks good.
- dkarras 6y agoFrom one creator to another, intended to be constructive: * I need to see samples on the homepage (I know what LaTeX is capable of but many don't and it would be nice to see what I'll get) * I am not signing up just to test it, too much friction.
- VelNZ 6y agoThanks, agreed, I'll work on a demo page that lets anyone create documents for a specific template using the same form as someone who is logged in. A gallery of templates like what you see when you log in is also on my TODO list.
- mataug 6y agoThere's a lot of good discussion on the pricing model, and I agree that its a bit too complicated even though there are no bad intentions here. Would you consider a combination of dollar balance, and membership ? The membership cost itself would be a simple base price like $5. Its like the cost of a Costco membership. That helps keep the lights and manage some fixed costs. While the dollar balance is used to create documents. To offer bulk-buyer discounts, you could consider discounting cost of dollar balances, for example $100 dollar balance costs $90.
- deleted 6y ago[deleted]
- VelNZ 6y agoThanks, my intention was actually to be as customer-friendly as possible. From my perspective, the customer can walk away whenever they want (they don't even need to unsubscribe), and they have choice for expiry based on their expected usage pattern/accounting department. Obviously I'm wrong though! Hmm, that's an interesting idea regarding the membership. I'll think about that as an option. Regarding the dollar balance, I didn't like the idea of using dollars and then discounting how much a dollar actually cost someone, since at that point you're effectively using a credit system that happens to be called dollar. But a membership where you get a base number of credits per month/year and then the ability to purchase more as needed (with bulk discounts) could work and I like it! Thanks for the feedback and the idea of how to fix it!
- mataug 6y agoI agree logically that discounting dollars will make it a credit system similar to the credit system you already have. Practically though I think people derive comfort in familiarity, even though dollar credits / cost are unintuitive in mathematical terms, people use dollars daily, even people who don’t use USD daily know the conversion from local cut to USD. And it makes the cost look really small, for example “0.5 cents” per document seems more familiar than “1 credit” per document even though the cost might be the same.
- Balooga 6y agoPerhaps consider choosing background and font colors with a little more contrast? A white background and light grey text isn't the easiest on the eyes (mine at least).
- VelNZ 6y agoThank you, noted.
- red0point 6y agoJust tried your product. 1. You have no way of previewing your entered data - if you mess up, you just wasted 0.05 - 0.12 USD. Does it really cost that much to render a PDF once? With Overleaf, you get essentially unlimited previews. Consider providing a watermarked preview, or a lowly-res png render. 2. Why do the credits expire? As a casual user, I'd need to buy credits either again and again, or pay more than double the price so I can just use my credits. I think that's really unfair, and coupled with your pricing model above is limiting my interaction severely. 3. However, as a technically adept customer I like how it's done now. I can create as many free accounts as I like, each with about 7 USD worth of credits. I just need to set up a spam account every time I run out. ## Alternative model: ## - Unlock templates by paying for them. All generation is then free (up to a certain high limit for your enterprise customers and limit abuse). - Provide packages of templates to buy together (the finance department package, the communication package, ...) - For an even higher licensing fee, the templates can be downloaded as well and integrated into products. I think this would suit your existing business of providing custom LaTeX templates well. ## Alternative model 2: ## 1. Bog standard subscription (pay x per month to do y pdfs) ## Security: ## The rendered LaTeX may include files such as /etc/passwd. I did not try to get an RCE on your rendering server, but I'd spend some time isolating it as much as possible. Consider getting a pentest done, especially given your high privacy claims.
- VelNZ 6y agoI really appreciate you trying it out and giving your feedback, thanks! The lack of a preview and wasted credits on mistakes is something I'd like to improve in the medium term. The way it is now, content is completely separated from presentation, and I consider that a defining feature of the product. Of course, producing each document costs essentially nothing, and the lack of a preview may be very frustrating, so perhaps meeting somewhere in the middle in terms of a preview may be the way to go. Your alternative models are excellent ideas and I will consider them as part of an overhaul of the pricing model, thanks! The rendering happens in Docker on worker instances, but a pentest is something I will look to get as well. Disallowing things like including arbitrary files from the operating system in the LaTeX code is important, I agree.
- nxpnsv 6y agoWould be nice to understand what editing/typing is like from the page. Is this some html forms that fills out and renders latex templates? I can see how that could be useful.
- mvind 6y agoWhy would I ever use this over overleaf?
- VelNZ 6y agoThey're completely different products with completely different goals.
- forgotpwd16 6y agoThey aren't completely different though they've different goals. >Creodocs lets you create consistent documents from beautiful templates online >1. Select a document from the gallery >2. Enter content for variable parts of the document >3. Create and download your document as a PDF They only really differ in two (2). That's basically introducing a form for every template or running a script on some data.
- VelNZ 6y agoWord/Google Docs/Pages/Writer are what-you-see-is-what-you-get editors (WYSIWYG). Overleaf abstracts away the content from the presentation somewhat due to the nature of LaTeX, but it still effectively provides a real time view of your document as you make changes similar to the WYSIWYGs. Creodocs explicitly does not allow you to make any changes to the document design or layout as a user. Want to increase the font size? You can't. Want to make something red? Unless it's already red, you can't. Of course that's a major limitation if you want to make changes, but it leads to highly consistent documents. Of course any given option can be exposed in the template if it's important, but the point is that templates are static by default. Further, the document types that are best for the platforms differ. Creodocs should not be used to write an article, book or any document where there is a lot of text and custom elements (figures/tables). What it's designed for is documents like invoices, recipes, signs; all documents where there are relatively few changes between multiple instances of the document type and text is the main dynamic content. Hope that makes sense and helps!
- nanna 6y agoHi Vel! LaTeX enthusiast from London here, currently making my way through Lamport's Document Preparation System and The TeXbook. So much I didn't know! I would love to hear how you > managed to have a steady stream of commercial clients willing to pay me to create custom LaTeX templates through my typesetting service. If you don't mind!
- VelNZ 6y agoHey! I must confess I haven't actually read those myself, although I did recently buy Tufte's "The Visual Display of Quantitive Information", on which the Tufte class is based I believe. If you eventually get into typography in general, I can't recommend "The Elements of Typographic Style" by Robert Bringhurst enough. It's rightly called the typographer's bible. The typesetting service sprang from the modest success of LaTeX Templates. The large number of visitors meant that I had a constant stream of questions from individuals and businesses asking about modifying templates to include/change this or that. I did the whole free support thing for 1 or 2 years, but eventually realized it's a never-ending thankless task and I may as well try to capitalize on this desire that people have. Like with Creodocs, I had no idea whether anyone would pay me for this. The number of existing services was very small. I made the site and linked to it from LaTeX Templates, which is the perfect place to advertise, and eventually I started to get a trickle of clients. My rate initially was something like $30USD/hour, which was an insanely large amount for a poor PhD student, and I even remember a client saying I was way undercharging for the quality of work! As I've had more and more clients, I've built up the Showcase page to show off what the service is capable of, and I believe this is an important draw to give legitimacy to the service and show what LaTeX itself is capable of. I haven't asked, but I imagine most of my clients come from LaTeX Templates so the key for me has been to provide something for free and then upsell to a paid service. Nothing new there :)
- nanna 6y agoSorry for the slow reply! That's interesting. Your public template works fed into a stream of clients. I guess what i'm curious about is who out there is willing to pay for a LaTeX template, or typsetting? Is it one-off academics working in STEM fields? Journals? Have you had much luck getting customers from outside of such areas? Businesses looking for slick invoices or brochures? Non STEM-publishers? I've got quite a lot of questions and ideas up this area - how would you feel about a chat? Also great call about The Elements of Typographic Style. I'll add it to my todo list. Tufte - hmm yes classic text for sure... should probably get a copy too. So much to read!
- chrisked 6y agoThe homepage has quite a few bugs which makes reading on mobile hard. I assume it’s breaking point related for some blocks. I’m on latest iPhone Pro Max with Chrome. Will check it out in desktop later :)
- VelNZ 6y agoI know one image is a bit cropped on the home page on mobile, but apart from that everything works as intended on my iPhone 11. I'm using Safari though. What bugs did you encounter?