You are browsing as a guest. Sign up (or log in) to start making projects!

axell

@axell

Joined June 11th, 2026

  • 6Devlogs
  • 2Projects
  • 1Ships
  • 15Votes
Ship

Okay, i think i have all the base features down now. Aesthetica is essentially a stripped down version of the pinterest web client. I've built two different web scrapers for this to work, one against pinterest's "resource" api and one against their graphql endpoint. Aesthetica is written in golang and uses htmx to avoid heavy work on the client. It allows you to search, view/download pins, see related pins, see random pins from a random aesthetic (home page) and change themes.

  • 6 devlogs
  • 24h
Try project → See source code →
Open comments for this post

5h 50m 10s logged

Viewing pins now work! i had to write a new scraper for pinterest’s graphql endpoint which was a bit difficult, as well as integrate the new pin/item viewing functionality into the layout engine, but i think it works alright. I’m still having some issues with my scraper though, where the pinterest endpoint returns an error. I think that im seeing rate-limiting from pinterest, but that’s another problem i will have to try to tackle. I’ve been thinking about making aesthetica a wails-based desktop app instead so my server does not have to handle all requests to pinterest, because my requests will start being blocked if more users join. I’ve now also started hosting the project on https://aesthetica.axell.me

0
0
4
Open comments for this post

1h 12m 9s logged

I removed the experimental thing where the feed would always display the result for searching “takanaka” and now it displays search results for the name of a random aesthetic scraped from aesthetics wiki. i also added search functionality.

0
0
5
Open comments for this post

58m 14s logged

I managed to come up with a pretty clever solution to keep the pagination history. Every time you press next, a htmx page link that brings up the current page gets added to a div. Using CSS’s :nth-last-child(2), only the page link that links to the previous page is shown. You can see this working if you look at the DOM tree in this video.

0
0
8
Open comments for this post

7h 12m 30s logged

Because I don’t want to use javascript to calculate the layout, I’ve written a server side layouting engine that places the items based on viewport height, meaning i can calculate the layout for any device. I’ve integrated this into the pagination system, but i will need to build a little more abstractions on the scraper around Pinterest’s pagination system to get the previous button to work properly. Also styling of course.

0
0
3
Open comments for this post

5h 17m 5s logged

I’ve started the project and worked on some basics. I have a functioning crawler for Pinterest and I’ve started on the frontend. Even though I’ve done it a lot i kind of hate web development, especially React. I’ve recently started learning about htmx and the idea of hypermedia, managing state on the server and writing interactivity in HTML instead of using JS or bullshit like jsx that compile to 500mb+ of JS anyway really spoke to me. It feels a lot more clean and “pure”. As for the server, i am developing my own little abstractions around Go’s absolutely fantastic standard library (especially html/template) alongside this project. In the screenshot, the crawler is grabbing the first five results for searching “takanaka” on Pinterest.

0
0
13

Followers

Loading…