{"slug": "i-got-tired-of-manually-running-my-ebook-publication-so-i-automated-it", "title": "I Got Tired of Manually Running My Ebook Publication, So I Automated It", "summary": "A developer built Vasuki, an automated ebook publishing pipeline that chains Python and LangChain for research and content generation with a self-hosted publication website and GitHub Actions for scheduling. The system breaks generation into discrete stages — topic, outline, chapters, content, editing, and final publication — so that AI handles repetitive work while human judgment retains control over topic selection and review. The developer notes the project remains an early-stage tool requiring configuration of environment variables, APIs, databases, and deployment.", "body_md": "Publishing an ebook sounds simple.\n\nWrite something useful, export a PDF, upload it somewhere, and you're done.\n\nBut if you want to run an actual publication, the book itself is only one part of the work.\n\nYou need to:\n\nI started doing this manually.\n\nEventually I realized I wasn't building books anymore.\n\nI was building a pipeline.\n\nThe basic publishing process I wanted was:\n\n**Research → Generate → Review → Publish → Promote**\n\nEach step can remain independent.\n\nThat matters because I don't want an AI model blindly generating something and immediately throwing it onto the internet.\n\nAutomation should remove repetitive work, not remove judgment.\n\nBefore generating anything, the system needs topics.\n\nThis can come from:\n\nAI can help organize and explore these ideas, but topic selection still benefits heavily from human judgment.\n\nFor my implementation, I use Python and LangChain.\n\nThe generation pipeline takes a selected idea and builds a structured publication around it.\n\nInstead of asking a model:\n\nWrite me a 50-page ebook.\n\nthe process is broken into smaller stages.\n\nTopic → Outline → Chapters → Content → Editing → Final publication\n\nThis makes the pipeline much easier to control and modify.\n\nAI is useful here, but I don't think it should be treated as the entire author.\n\nA useful publication still needs human knowledge, examples, review, and editing.\n\nGenerating PDFs wasn't enough.\n\nI wanted the publications to live somewhere that I controlled.\n\nSo I built a separate publication website where generated books can be displayed and managed.\n\nThat means I'm not limited to uploading random PDFs to different platforms.\n\nThe publication itself becomes a product.\n\nYou can see my implementation here:\n\n[https://vasukisquare.cc](https://vasukisquare.cc)\n\n[https://swarajpuppalwar.gumroad.com/l/akxgjl](https://swarajpuppalwar.gumroad.com/l/akxgjl)\n\nThis was the fun part.\n\nI moved the recurring jobs into GitHub Actions.\n\nThe system can run scheduled workflows for things like:\n\nInstead of remembering to execute everything manually, GitHub becomes the scheduler.\n\nThe overall pipeline becomes:\n\n```\nResearch\n   ↓\nGenerate\n   ↓\nReview / Publish\n   ↓\nWebsite\n   ↓\nPromotion\n```\n\nAutomation doesn't magically create readers.\n\nA publication can be reused as material for:\n\nOne useful publication can therefore produce weeks of smaller educational content.\n\nThe important part is that those posts should provide value themselves.\n\nNobody wants to follow an account where every post says:\n\n**BUY MY BOOK.**\n\nI eventually separated what I built into two projects:\n\nThe Python + LangChain side responsible for research and publication generation.\n\nThe website and publishing side responsible for displaying and managing the publications.\n\nTogether with the GitHub Actions workflows, they form **Vasuki**.\n\nIt's still an early-stage developer project, not some magical one-click publishing company.\n\nYou'll need to understand environment variables, APIs, databases, deployment, and GitHub Actions if you want to customize it.\n\nBut that's also the point.\n\nYou get a system you can modify rather than another closed platform.\n\nThe interesting part of this project wasn't generating ebooks with AI.\n\nIt was realizing that a repetitive creative workflow could be represented as a pipeline.\n\nOnce you can describe your process as:\n\n**A → B → C → D**\n\nyou can start asking a much more useful question:\n\nWhich parts actually require me, and which parts can the system handle?\n\nThat's what I wanted Vasuki to explore.\n\nIf you want to see the publication running:\n\nAnd if you're interested in the Vasuki source code, comment **VASUKI** and I'll send you the link.\n\nI'd also love to hear how you would structure a publishing pipeline differently.", "url": "https://wpnews.pro/news/i-got-tired-of-manually-running-my-ebook-publication-so-i-automated-it", "canonical_source": "https://dev.to/ultrontheai/i-got-tired-of-manually-running-my-ebook-publication-so-i-automated-it-1pk8", "published_at": "2026-09-25 17:02:08+00:00", "updated_at": "2026-09-25 17:31:09.428457+00:00", "lang": "en", "topics": ["ai-tools", "generative-ai", "large-language-models", "developer-tools"], "entities": ["Vasuki", "LangChain", "GitHub Actions", "Python", "GitHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-got-tired-of-manually-running-my-ebook-publication-so-i-automated-it", "markdown": "https://wpnews.pro/news/i-got-tired-of-manually-running-my-ebook-publication-so-i-automated-it.md", "text": "https://wpnews.pro/news/i-got-tired-of-manually-running-my-ebook-publication-so-i-automated-it.txt", "jsonld": "https://wpnews.pro/news/i-got-tired-of-manually-running-my-ebook-publication-so-i-automated-it.jsonld"}}