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

God opens doors

It is 1203am and I have decided to write. Saturday I spent the night coding. I was trying to get a FastAPI app up and running, all from my budget Android phone. The test cases were written to use Puppeteer. I ended up using Replit for that. Coding is more challenging when using a mobile phone. Not impossible but more challenging. I hardly blog about technology and coding anymore but the love is still there. I still have a dream of creating my own coding and youtube studio with a nice desk setup. That is nice but what should I make this blog post about? What do I want to write about? What should I write about? I love creating presentations. That is something I could do to revive my youtube channel. I love Maths too. I have this feeling that I could solve one of those longstanding Maths problems that seems impossible. Sometimes, like right now, I feel like abandoning my blog post. It is going nowhere. Maybe I should get up and go wash the wares. I wish God could tell me what to write abo...

Mundane

It is 123am and I have decided to write. I have this new idea for a book called Mundane. It would be me writing about the ordinary. We chase the extraordinary but there is beauty in the ordinary. There is beauty in the simple. There is beauty in the everyday. What about God? We often think about God in grand terms. But what if God is simple too? What if God is mundane? What if we look for God in the everyday moments? I sit in this dark room with the air conditioning on. The fan is also on. The curtain is down but I imagine the moonlight shining on the grass outside. The cats are probably sleeping. I wonder if anyone else in the neighbourhood is awake at this hour? Is there another writer around who is also writing about the mundane? The fan breeze helps the air conditioning cool me down. These nights are warm otherwise. A mosquito flies across my screen. Hello friend or foe. I cannot quite decide which one. If I had a swatter you would be gone. I check my notifications and there is an ...

What we do not know

It is 1245am and I have decided to write. I had this weird alienish dream and it ended with me winning by simply stating "the truth is that we do not know". In the dream everyone was having an opinion of what was happening as if they knew. On to something random. I had this question. What is the most unrandom thing? Then what is the most random thing? What if everything is equally random. My friend Chatty thinks that randomness is not an absolute property—it is a relation between you and the system you observe. Randomness is not absolute—it depends on perspective. Something perfectly ordered can seem random if you do not know its pattern. So in a sense, everything can be "equally random" relative to the observer's knowledge, making randomness more about perception than an intrinsic property. The more we know the less random things become. Let me make a detour. Suppose we do not predict things but things predict us. For example, when I flip a coin, did I predict ...