Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jakub-stastny/oso

My site landing pages.
https://github.com/jakub-stastny/oso

clojurescript webcomponents

Last synced: 21 days ago
JSON representation

My site landing pages.

Awesome Lists containing this project

README

        

* About
Source code of [[https://jakubstastny.guru?utm_source=gh][jakubstastny.guru]] written in ClojureScript using web components and generated by [[https://github.com/squint-cljs/cherry][Cherry]].

The compiled code that is actually deployed is in the [[https://github.com/jakub-stastny/oso/tree/rel][rel branch]].

* Development
#+begin_src shell
./bin/serve # Serve locally.
./bin/watch # Watch for changes, compile (runs bin/build-cljs, build-css & build-html).
./bin/release # Compile & push to the rel branch.
#+end_src

* Tasks
** V1
*** TODO Consider CSS generation
- Babashka Toolbox mentions https://github.com/paraseba/cssgen and https://github.com/cdaddr/gaka (Clj).

*** TODO Newsletter

*** TODO Design
- Do something in Procreate. It should show my personality. Aquarius MC.

*** TODO WebComponents README
- Also polish the components, namely fa-icon.

*** TODO Ping @borkdude
Hey @borkdude. I have a real-world example of a project that uses Cherry to write WebComponents: https://github.com/jakub-stastny/oso/tree/master/src/components It's my personal site, like whatever, the point is there are some Cherry-written WebComponents, they work, they are deployed and can be played with and inspected and there's a README where I documented various aspects of writing them.

If it serves you as an example, I can add the link to https://github.com/squint-cljs/cherry?tab=readme-ov-file#examples to send you a PR. If not, no worries, but I haven't seen too many WebComponents examples around.

*** TODO Sponsorships
- Buy me a coffee? I already have.
- Patreon.
- PayPal.
- All these are in Reddit, add in the [[https://www.reddit.com/settings/profile?rdt=54962][settings]].

** TODO Version with a blog
*** TODO Override the back button behaviour
So things don't get reloaded.

*** TODO Dynamic page URLs
We either:
- No longer have all the various static HTML pages and only have 1 SPA-style HTML like index.html that links app.js.
- Or we handle the blog as a separate app on a separate subdomain. This would be preferable for speed and other concerns.

** Maybe consider
*** Telegram contact
- There's an icon in FA.

*** Dark mode

*** Set up build based on CLJ or Babashka
- Squint works from CLJ, so Cherry should too (I asked @borkdude in #Cherry Slack).
- Do I need separate repos for main/blog/wiki (think Netlify deploy).
- If so, I need a shared package that has config, components, CSS vars and whatnot.
- Minify/Uglify JS & CSS on build. Possibly add timestamp to reload cache ?t=timestamp.
- GA only in the production build (./bin/release passes an argument to the build scripts like ./bin/compile --release)
- like abbr, but more interactive, consider desktop/mobile.
- Build-time checks: make sure the components exists, compile it.
- Move Cherry code into a ~component~ macro that will write the Cherry component on the disk. Keep everything in src, pages should be all generated (CSS? SVG?)

* Links
- [[https://github.com/jakub-stastny/jakubstastny/tree/rel?tab=readme-ov-file#links][Production links]] such as Netlify and Google Analytics console as well as links to pages that link the site (YouTube Studio and my Reddit).