Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


heldercervantes last won the day on June 12

heldercervantes had the most liked content!

1 Follower

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
    Porto, Portugal

Recent Profile Visitors

5,044 profile views

heldercervantes's Achievements

Sr. Member

Sr. Member (5/6)




Community Answers

  1. Love this! Makes total sense. Although I did try to make AlpineJS part of my boilerplate and quickly gave up. Just easier for me to add a JS file and do my stuff with vanilla. Right now I just have a Vite thing, a js that imports and inits scripts from a file (like the one that Bernhard mentioned). Effects like my text reveal thing require adding the type of ready-made JS and CSS that I tend to avoid. However if it could be part of a library of stuff a developer can browse and easily add to their project, it might be a cool idea. Alpine might help with this.
  2. It's my own script. Basically I'm identifying every text to animate with a data-attribute. Then my JS starts by breaking each word into a div with overflow:hidden and each letter in a span shifted down and incremented css transition-delay. Then, an intersectionObserver detects when it comes into view and adds a css class that changes each letter's position back to zero and the transition-delay makes them appear one by one. It's a cool approach and practically a snap-on script that I can reuse (and have done so already) on other pages. It still has that error @netcarver pointed out, though. I also have something similar for the images that makes a fade-in reveal effect.
  3. That's a glitch on my animation script that I still have to improve πŸ˜„ It's on my todo list
  4. http://shift-up.pt/ Shift-Up is a consultancy company from Portugal that specializes in government incentives and financing. This is my first project using ProFields and RockFrontend, and I can't really believe how long it took me to start using both. Profields' InputMatrix is a huge step up from my previous custom module that I hacked together using file selects and custom field visibility. And RockFrontend, just by getting latte in the mix, makes everything a lot more polished and professional. The project is a fresh start from the previous old Wordpress solution they had, taking care as to not harm the SEO standing this site had built up with all its content. I started out by writing a content import script that took hundreds of pages from the oh so messy WP export and turned them into neat PW pages. I also had to handle the URLs in the process, ensuring that the old unstructured WP links would be fed to the Redirects module. So the focus here was more on carrying over the content without having to rewrite everything, and now that we're here, when new programs come up we have a platform that can properly grow and add new layout solutions and features.
  5. Well, I can just do two searches. I'm just being stubborn assuming there's a straightforward solution for this πŸ˜†
  6. Hey guys and gals. I have a page tree that I want to search, where the second level has an "archived" checkbox. Something like this: Home Products Category ('archived' checkbox field is here) Product (these also can have subpages that I want to catch too) Product Product And now that I'm making the search engine for this site, I want to query all product pages, and I want to sort them showing "non-archived" items first. I suppose there's a way I can incorporate something like 'sort=$page->parents[2]->archived' (not like this of course, but...) Any ideas?
  7. Of course it's that easy πŸ€¦β€β™‚οΈ How did I not find that discussion? Who knows. Thanks Jan 😘
  8. Hi guys. I'm making an import script for a weird site's content. I got to the point where I can successfully clean everything up and shepherd most data from the exported mess to their new home in page fields. I'm also finding file links and image urls that I want to upload to a new files field. I don't have them locally, so basically I need to start from an array of URLs and somehow upload them to the page's files field. But how? I just can't wrap my head around uploading stuff. It's always a pain
  9. Planets are sphere primitives with an image texture applied. The Voyager is a GTLF model from NASA (threejs has importers for that). There's a background that's basically a cube with inward facing images and the Saturn rings is just a plane with a PNG texture. You can also see some specs coming towards the camera that's a particle system. Basically 2000 randomly placed vertices that move and get reset once they're past the camera. It's a ton of fun to work with this stuff.
  10. Hey Ryan! This is basically a full-viewport Threejs scene on a fixed element behind the content. Planets have a static position, and the probe just moves along the Z axis with the camera attached to it. As the user scrolls, the scrollTop is translated to a Z position for the probe. I had to add a little compensation for the window size so that the probe's position matches the content the user is seeing as is intended. There's also an intersectionObserver detecting each slide coming into view, and depending on what's visible the camera changes position to look left or right. The flying logos are relatively simple. From PW I just generate a JSON with the list from an images field. The script that generates the scene loops through that array, adds planes and textures for each one. X and Y positions just cycle through an array with presets, and Z is incremented with a set distance between them. Content itself is basic Tailwind stuff. Although I have some custom made scripts handling entrance animations, like the typing effect on the dotted text. The game is the result of a conversation with ChatGTP. I had the basic idea of making the user spin the cursor around a dot, mimicking the probe's orbit around Earth, but took the opportunity to challenge the AI. It actually gave me a pretty decent script right off the bat that served as a proof of concept. Then I discussed how to make it challenging and it gave me a few ideas. I iterated over them, and eventually came to the solution of adding movement speed to a variable multiplied by the number of consecutive unbroken turns. Had to refactor the whole thing to make it work properly, but ChatGTP was pretty darn useful in the process.
  11. So I've just updated my personal website after some 7 or 8 years. It's a small one pager, but with some quirks that I hope you'll enjoy. Have a look: https://heldercervantes.com/ First, the approach was to somehow reinterpret my CV into a web experience. My last CV, along with my Supertiny agency's website share this space exploration / alien contact theme, so the idea here was to incorporate a journey through space as the user scrolls through the website. In the end you'll find a mini-game, where you can attempt to reach the far depths of space and discover what's out there. Most content is static, but I'm using PW to manage the logos you'll fly by at some point and the projects, the game's highscores and SEO. I intend to improve it a bit in time. Sound is probably the next thing I'll add, and I have some ideas to make the game more interesting. Fun fact: Setting up PW for this one took about 2h.
  12. This is a particularly good one. Very well designed πŸ‘πŸ‘πŸ‘πŸ‘
  13. Just noticed this one, published a few days ago: https://www.ionos.com/digitalguide/hosting/cms/processwire/ Cheers
  14. Right now, just one or two hundred. I have a universe of 600 potential users, and I expect about 100 to enroll. These users will get email notifications selectively if a gig is posted that matches their preferences. But this is intended to grow and there will be an effort to increase the user base.
  15. By the way @bernhard, this is my first project using RockFrontend, and I could just kiss you 😘 Rockfrontend with Latte + Tailwind + Alpinejs is such an awesome mix.
  • Create New...