Skip to main content

Part 1 - An Example of Using Next.js for Static Site Generation on Android with Termux

Next.js is a React framework that gives you building blocks to create web applications.

First thing I did was go to github and create an empty project. I then cloned that project in Termux. You must use the Termux storage and not shared storage unless you can find a workaround for creating symlinks. I then create a starter next.js project.

npx create-next-app --example hello-world blog-posts

I used python to extract all my blog posts titles and links from my Blogger backup and create a json file. Each entry in the json file was title and link.

Next. I followed this guide to display a listing of all my blog posts.


It uses SWR and SWR is an acronym for stale-while-revalidate. The code I got from there had some problems. Dont know why it worked for them and not for me. Maybe linux/termux/android/next.js version creates the issue. After debugging and consulting ChatGPT we figured out that:

The issue with the code you provided is that you're reading the contents of the JSON file as a string using readFile and then directly returning it as the response without parsing it as JSON. To resolve this, you need to parse the file contents as JSON before sending it as the response.

Someone tweeted "Next.js is the most frustrating, opinionated mess I've ever had to deal with. Ugh." and I could not help but agree with the little I have done so far and based on my first impressions. Made me appreciate eleventy for tasks like this.

I found a simple way to serve the statically generated docs folder by running this command in that folder. However I got an error.

php -S localhost:8000

CANNOT LINK EXECUTABLE "php": library "libicuio.so.73" not found

And I had to install that package

pkg install libicu

Now I get a new error when I run npm run build

CANNOT LINK EXECUTABLE "node": library "libicui18n.so.72" not found

I then did (in termux)

apt update
apt upgrade

I then saw and an error in the logs - API Routes cannot be used with "output: export".

Below is me asking for help on Stack Overflow.


This is the project on GitHub


And that is where I have reached. The question now is how can I get around this? How to read from a json file and iterate through it and display its content in Next.js for static site generation using output as export. I am stuck and maybe you can help.

I got a recommendation to try Astro JS. That will be next. It was also suggested to use a const array of objects instead of json. Now, I am wondering if there is a way to serve the json file without using an API route. Stay tuned for part 2. Leave a comment and let me know your thoughts.

Comments

Popular posts from this blog

Kickstarter for Trinidad

It is Saturday before Christmas and the beginning of the long weekend. The place where I live is extremely quiet. There are hardly any cars on the road. I ate my breakfast and I am surfing the web. Then I came across Kickstarter and I started asking questions. Mainly, can Trinidadians use Kickstarter? Are Trinidadians using Kickstarter? Do we need a Kickstarter type website for Trinidad and Tobago/Caribbean? There is fundmetnt but the idea is not the same. Kickstarter is for creatives and you are creating a tangible deliverable that is shared with backers. Also there is a vetting process. Fundmetnt is more akin to gofundme. I went to the Kickstarter website and I filtered by Trinidad and Tobago and only 17 projects were returned and many of them dated. This is not much. I contacted @kickstarter on Twitter and asked them "Hi. Can Trinidadians 🇹🇹 use Kickstarter? Will they be able to get the funds to their local bank?". I will also send an email. I will also send an email to ...

Google Pay in Trinidad

Update : It is prepaid and credit cards not debit. Linx on facebook said that the Linx machines do not fascilitate Google Pay.

Stop and stare at the crotons

It is 147pm. I just woke up from a nap. I had Sunday lunch which was chicken soup. My mobile phone does not have much charge left. I decided to write. What can I write about? I asked my mom what to write about. She said to write about flowers plants. She wants flowers in the yard. Flowers are beautiful. Flowers are attractive. Flowers are calming. Flowers are part of God's creation. I am reminded of the saying that we should stop and smell the roses. We should appreciate the now. Learn from the past, plan for the future but live in the now. I asked my mom why she likes flowers? She says it is therapy for the mind, it helps her to elevate her spirits and it makes the place look beautiful. That is flower power I would say. My favorite plant is the croton. I love passing through the countryside, especially in Tobago, and seeing the rich croton plants. Crotons are flowers-like I would say. Let us say they are pseudo flowers plants because of the mixture of colors on the leaves that see...