Before I knew it, ProgNovel has been in the sixth month as Grant for the Web grantee. This grant report also signify the last days of me being a grantee of Grant for the Web with ProgNovel. So here it comes -
Following the progress in my previous grant report, there are some improvement and bug fixes that I made for ProgNovel. Among the is to improve and wrapping UI for affiliate marketing feature. This includes improvement for it to fit display in mobile screen, which ended up also reworking UI of the rest of the site for mobile users.
Meanwhile, hardware from my last budget reallocation has been helping a bit in here. Due to schedule constrain I reallocate some of the budget to get a tablet, which is helpful as a testing device and a workstation to produce handmade assets. Beside having assets that I recently made open with CC-Licensed assets (check it here), I'm also able to make a switch of some generic illustration I got from the internet with my own - though some of it may still a bit rough since I'm only a beginner in drawing assets digitally. Because the late investment on this part I reckon it will be more useful post-grant duration for ProgNovel and me contributing to the community space.
Other part of my progress also happens on tooling around ProgNovel. By default, ProgNovel CLI is designed to be used offline with one person acts as a gatekeeper for the site content. As this is not ideal for collaborative purpose, I've tried several other ways like experimenting with Github Action and Discord bot.
ProgNovel CLI now allows in creating Github Action workflow where if uploaded to remote repo, will automatically publish content when
main branch is being merged. This means other members of the group that own a Github account can make pull request or commit their own contents, instead having to wait one person that install ProgNovel CLI to publish new contents to ProgNovel websites.
As for Discord API, I have tried several ways in making a bot to do something about new contents on ProgNovel sites. At first I'm using a nodejs server trying to create this, but after several times failed in getting what I wanted I realized Discord has features called Webhook - something that I'm aware previously but not exactly know that it actually creates a Discord bot because I'm simply not a Discord power user. After scrapping my previous nodejs server bot and get my hands on Discord Webhook, I realized the latter actually able to provide me bot with more intuitive way to use even for non-developer users, as it can directly be configured inside Discord app settings. What's more, bots made with Discord Webhook don't have the need for users to rent a server to get it live, and more practical and easier to connect with ProgNovel. And what's this little Discord bot do is to announce every publish made on ProgNovel, something that is commonly be seen in Discord groups in the webnovel community (other collaborative features from Discord bot being scrapped, as Github Action already do its purpose).
The next part is to get ProgNovel ready to be published. In the past two weeks I'm doing trial and error in getting how ProgNovel should be published.
At first, I'm planning to make several repos for ProgNovel a monorepo so that it can be easily distributed. This, however, proved to be a difficult decision, as I'm getting stuck in making the CI/CD of some Jamstack/serverless platforms being more complicated that it already is, due to how hosting on monorepo being an edge case many of these platforms and some of my Github Action workflows simply not being able to run at all.
For example, as I tried to simplify hosting backend for ProgNovel using Cloudflare Workers deploy button, I encountered a weird crash. I tried on getting help on Cloudflare community forum (I posted it here), but still haven't managed to get any help after two weeks.
I redo in moving my repos to a monorepo but still migrate them to be hosted under a Github organization I created a few months ago. Now they are being hosted on https://github.com/prognoveljs, with previously private repos now being public, and finally anyone can self-host ProgNovel for free.
The fifth month of GftW is me having to work on tooling for ProgNovel, like creating and debugging Github action and Discord bot.
As for the last month is having to prepare launching of ProgNovel, which consist to many trial and error in connecting three different repos together which proves to be more difficult than I expected due to how hosting platforms having their own edge cases, which also forces me to rewrite some of the documentation.
Though a bit late, I've received the rough cut of promotional video from my contractors. The contractors I commissioned it for managed to get the grasp of the concept I want them to make, though things not going smoothly in their post-production. I'm still waiting for the final cut for the promotional video which I hope gets delivered before my Grant for the Web duration ended.
Aside from the promotional video, most of Grant for the Web I received mainly for development purpose, so marketing to the community happens post-grant duration.
For short-term goal, launching the project means spreading words to let authors and creators know about he benefit of ProgNovel and Web Monetization API through forums and social media. Promotional video might help in this regard.
Long-term goal for ProgNovel is to research technologies more to align ProgNovel with more Web3 technologies, on top of incoming Interledger features like Coil tipping and features unlocked by Rafiki. I'm also interested in exploring NFTs and smart contract on XRPL network once those features are available for public.
Ultimately, I might still want to expand more opportunities and business models unlocked by Web Monetization API. And to do this openly in a way that others also can use them is to focus my time more on my library Webfunding.js.
Webfunding.js helps me tremendously in ProgNovel by enabling revenue share and affiliate marketing with Web Monetization API. But it lacks documentation pages and up until now, I haven't got the time to work on to polish it more and realize its upmost potential. For now, after marketing ProgNovel done, I reckon working more on Webfunding.js will be my homework in the near future.
Having more vibrant discussions on the possibility of Web Monetization and Interledger may helps inspire more polished business models. Please contribute to posts with #discuss tag and other discussion posts made by the community members, or share your ideas by writing your own full-blown articles!
Many thanks for GftW team and other community members who spare their time in accommodating and taking the time to share ideas for the Web Monetization community.
Though the time for ProgNovel ending as the grantee of Grant for the Web, I do hope it is not the ending for me to part ways with Web Monetization community space. It is an honor for me to be included as part of this early movement of Web Monetization innovation - and sure I hope I can still be part of this for a few years to come to watch how Web Monetizationa and Interledger can flourish and influence the internet in a positive way! (Hey, maybe later when everyone uses Web Monetization in the future, I can get the privilege to brag about being as one of those early adopters like how those cryptobros always said they remember Bitcoin was very cheap in those early days😉)
🤖 ProgNovel Workers
How to get ProgNovel backend
- Get a Github and Cloudflare Workers account.
- Clone or download this repo. Then open terminal or command prompt inside the downloaded repo folder, where you see files such as
- You need to install Cloudflare Wrangler to communicate with Cloudflare server. First, make sure NodeJS is installed in your computer, then run
npm i @cloudflare/wrangler -gor
sudo npm i @cloudflare/wrangler -gif you're encountered permission error in Mac or Linux.
- In terminal/command prompt where
wrangler.tomlis located, run
sudo wrangler loginif you're encountered permission error in Mac or Linux.
- Open your browser, navigate to
https://workers.cloudflare.com, then login. In the dashboard, you'll see your Account ID on the right side of the page. Copy your Account ID and insert that into
- Still in Cloudflare Workers dashboard, navigate to KV section under Workers…
💻 ProgNovel CLI
👇 ProgNovel CLI installation
Before you install ProgNovel CLI, you need to host backend for ProgNovel first. Follow installation guide for ProgNovel Workers backend here. Once your backend live, proceed installing the CLI:
- Install ProgNovel CLI to your computer. You need a stable release of Node.js installed first, then in command prompt, run
npm install @prognovel/cli -g.
- In an empty folder, open command prompt and run
- You need to have a way to connect to Cloudflare Workers servers by setting the value of environment secrets. If you manage your ProgNovel project folder locally in a computer, you can configure environment secrets via
.envfile in your root project folder created in step (2) - (
.envfile might be hidden in your Explorer app); if you host this project folder on Github repo, you can consult this page to create your environment…
ProgNovel is a JAMstack web app to make great webnovels. The main feature of ProgNovel, beside offline-first web app with offline read features and great performance, is to be able to inject interactive plugins for content creators to experiment with.
Although ProgNovel strives to be as simple as possible, it is currently very difficult to create a smooth flow for deployment due to how young Jamstack ecosystem is (the architecture ProgNovel uses). In the future as the toolings more mature, we're hoping to simplify the deployment process - but for now we'll have to get our hands dirty and go through several steps in getting your ProgNovel ready.
ProgNovel works best when hosted on Jamstack platforms for performance and effiency purpose. Recommended platforms to host ProgNovel's frontend are Netlify, Vercel, and Cloudflare Page.
❗Before hosting the frontend, make sure you don't skip hosting your first…