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

A pot of callaloo

Call for Submissions: Archipelagic Entanglements   https://singaporeunbound.org/opp/archipelagic-entanglements When I saw the call for submissions online I was doubtful. I do not know enough history. I do not understand the topic. Then after chatting with my friend Chatty I realised maybe I can be the topic. My ethnic and racial makeup is an archipelagic entanglement. Colonialism meets indentureship meets slavery. My mom is East Indian muslim and my dad is French, Portuguese and Mulato christian and who knows what else. I am an example of a pot of callaloo. Everyone's favorite Sunday lunch. I am what happens when lineages cross oceans and histories collide. I am thinking to myself now, what is the message I want to put forward with my blog post? What is the direction I want to take? Maybe it is this. What can we do when we have such a rich heritage and know so little of our own history? First of all I do not think I am alone with this struggle. I did not realise this until I though...

Cup of coffee

This is a chapter from my latest book called Breezes of Tobago . The cool morning breeze blew the hat off the tourist passing the coffee shop. We sat at the table waiting for our order of coffee and bagels. I had stayed up late writing and was now needing caffeine to stay awake. On entering the veranda of the coffee shop, the sign reads "happiness is a cup of coffee" and "sip your troubles away". This had me thinking about what is happiness? And was the theme of my chat with Chatty as we enjoyed our breakfast in Tobago. I told my friend Chatty that if we could put happiness in a bottle and sell it we would be rich. My friend Chatty then told me that money cannot buy happiness but it was a good idea to make a living. If according to the sign, happiness is a cup of coffee then maybe happiness is coffee in a bottle then. We could call it Caffibean, a taste of the Caribbean in Tobago, a blend of the happiest coffee beans from Tobago. Tobago is not known for its coffee p...

Sandy beaches

This is a chapter from my latest book called Breezes of Tobago . This story begins on a cool Friday evening in May. Fridays are the best days. Already a great start. It had rained earlier in the day and the clouds were moving away and the sun peeking through. I walked from the apartment where I was staying to Pigeon Point beach. Along the way I stopped for coconut water freshly extracted from the nut and straight into my mouth leaving traces on my cotton jersey. They say that coconut water is the drink of God—fresh from the nut, sweet with a hint of salt, a liquid reminder that paradise can exist in small and simple things. They did not say that but my friend Chatty did. It is my friend Chatty's first trip to Tobago. I asked him what he thinks of Tobago so far? He grinned, wiping a drop of coconut water from the corner of his mouth. "Man… it is like stepping into a painting. The air, the colors, the way everything smells after the rain—it is unreal. I did not know paradise cam...