My phone barely manages to load the site. Pages crash and when they do load it's around 10-15 seconds. Pretty much all newer js-dependant websites are like this for me. I simply don't use most newer websites on my phone. Maybe eventually I'll buy a new phone, but things work fine on my laptop so I mostly use that and having a phone from this decade is bourgeois decadence.

A while back I thought maybe I should take a crack at writing a fast and simple read-only frontend that I can use on my phone similar I guess to nitter, invidious, bibliogram, etc.

So I went ahead and did just that: https://diethex.net

Hilariously, I actually wound up doing this TWICE. The first time I finished it up last June and then the site migrated to lemmy v3 so I had to rewrite almost everything which I just now got around to this month. Here's the code in case anyone wants to read it: https://git.sr.ht/~kota/hex

When a page is requested all of its data (comments, posts, etc) are cached for the next 20 minutes which dramatically reduces requests to the actual website when you're browsing around. Also every page is statically generated from simple html templates on the server; so javascript isn't required. I wound up adding a tiiiny bit of optional js to allow opening and closing comments. So you can swipe to the left on a phone to close a comment.

If hexbear is already fast for you then there's no point in using this, but figured I'd say something in case there's anyone else with my issues.

  • YearOfTheCommieDesktop [they/them]
    ·
    edit-2
    9 months ago

    Alrighty, here's what I've got

    FROM golang:1.21
    
    WORKDIR /app
    COPY . ./
    
    RUN go mod download
    RUN CGO_ENABLED=0 GOOS=linux go build -buildvcs=false .
    
    EXPOSE 4000
    
    ENTRYPOINT ["/app/hex"]
    #CMD ["-hb","https://lemmygrad.ml/api/v3/"] #Optional
    

    basically just clone the repo, cd into it, create a file with the above lines in it called Dockerfile (uncomment and change the instance base URL if you want to), and then run some docker commands like this:

    sudo docker build --tag diethex .
    sudo docker run -d --publish 4000:4000 diethex
    

    Then you should be running on port 4000 to test out. Then map the port however you need it and pipe a subdomain to it using nginx as needed.

    Oh and if you want to change the title, remove the taglines, etc, you'll need to edit the page templates in files/... It should be pretty straightforward to just change the title/header and remove the MOTD/taglines. I did it but only for the main page.

    • kota [he/him]
      hexagon
      ·
      9 months ago

      Incredible! That's pretty much what I was gonna say. Might throw this dockerfile in the extras folder.

      Yea the hexbear specific stuff basically boils down to the taglines, the emojis, and the header in home.tmpl. There's quite a few things I could do to make it a lot easier to use for other lemmy instances ... there's not a lot of configuration right now, but I tried to leave a lot of comments in the code.

      • YearOfTheCommieDesktop [they/them]
        ·
        edit-2
        9 months ago

        it was built for a purpose and it accomplishes that swimmingly! and yeah feel free to do whatever with the dockerfile, hope people get some use out of it. I think the templates are simple enough that people can just do their own cosmetic changes but if you have ideas...

        also for the dockerfile, copying in the entire repo contents probably isn't the most elegant thing but it was being annoying when I tried to do it other ways