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

Portfolio - Elijah Feldman

  • 2 Devlogs
  • 12 Total hours

I am building a research website to showcase my projects and tell the people a little bit about me :).

Ship #1

This is my personal website, built in React and hosted on Vercel. I designed most of it with smaller screens in mind first, since my hope was to render it best on the screen of phones, then made sure everything held up on desktop too, using different tailwind classnames for different screen sizes so pages fit well on small, medium, and large screens alike.

The home page is smaller and vertically centered rather than using the full width like the rest of the site, since it's the first thing anyone sees and I wanted it to feel right on a phone before anything else. On the top left of the navbar, it dynamically renders the current page name based on the url you're on, and on small screens the links collapse into a hamburger button that opens into a full screen menu.

For the gallery, I built an indexed system that automatically tiles a group of photos and displays them, hovering a photo reveals its caption sliding up from the bottom. Originally the captions came from the photo's filename, split by underscore, so each member of that array got appended with spaces to become the string making up the name of the place, which is what shows up on hover. The gallery is much nicer now and loads quickly too, since I wrote a js script to go through each image and compress it, taking the photos from 40 MB down to about 4MB, meaning the page loads much much faster. The two photos that are actually portraits of me get compressed less aggressively than the rest so they stay sharp, since those are the ones I want search engines to associate with my name.

I wanted to make sure the site would be easy to add to in the future, so the projects page pulls automatically from a JSON file. I specify a title, date, description, image path, and links, where I just give a tag name for each link and it renders in a unified button format. These are autopopulated with reference ids and jump to the right spot automatically, going straight to that project's section, and they also get added to a table of contents at the top automatically, so adding a new project is just adding a JSON entry, nothing else. Publications works the same way, off its own JSON file, showing the paper's title, authors with my own name auto-bolded, venue and year, and the same flexible tag and link buttons as projects.

The CV page is taken from the latex code of my actual resume, restructured into that same JSON format so it renders natively on the site instead of just being an embedded PDF, with the option to download the compiled latex pdf too. The publications section on that page pulls from the exact same JSON file the publications page uses, so I only ever add a new paper in one place and both pages stay in sync.

The blog has search and topic filtering over a list of posts, and each post's actual content is a static html file that gets fetched dynamically based on the url, so writing a new post is dropping in an html file and a metadata entry rather than writing more react. Contact is just emails and socials, written with brackets around the at sign to dodge the most basic scrapers.

I put the site on google search console with a sitemap so it gets indexed properly, and spent time making sure page titles, descriptions, and image metadata are set up right so photos of me actually have a shot at showing up when people search my name, without cluttering the site with extra images just for that purpose.

Overall I really love the theme of this site, with the blue accents, I got some inspiration from other research portfolios I'd seen. Before this it was pretty scattered, without a gallery or projects page, and mostly just had the home page with a weird VantaJS background running on it. Now it's a lot more complete: a dynamic gallery, a projects page and publications page that both pull from JSON so they're easy to keep updated, a CV page sourced from my actual resume, and a blog that can actually grow instead of being one hardcoded post.

  • 2 devlogs
  • 12h
  • 16.30x multiplier
  • 192 Stardust
Try project → See source code →
Open comments for this post

4h 35m 59s logged

Devlog II: Personal Portfolio

The devlog today showcases in a sense more of a refinement with several large QOL updates, along with 2 more pages.

Firstly, I optimized the site for mobile. All pages are now fit well for small or md screens by using different tailwind classnames for different screens.

Second of all, the gallery is much nicer now and loads quickly, since I wrote a js script to go through each image and compress them. This took them from 40 MB -> 4MB, meaning the page loads much much faster.

Next, I wanted to ensure that the site would be easy to add to in the future, so the projects page now pulls automatically from a JSON file. It can have tags for links that render in a unified format and I specify file path, description, title. These are autopopulated with reference ids and go to the table of contents automatically.

I added a publications page to showcase my last paper, and those in the future to come. The CV is taken from latex code from my resume and is just a JSON structured format. It has the option to download the latex pdf too.

0
0
5
Open comments for this post

7h 11m 47s logged

Devlog I - Personal Website

For a bit of context, I worked on this site earlier however before it was pretty scattered without a gallery, projects, and mostly just had the home page with a weird VantaJS background. I apoligize for not dev logging over the past 7 hours, since I got so caught up in dev work.

For a brief overview, several features I built were:

  1. an indexed gallery system that would automatically tile a group of photos in a folder and display them. it would take the name of the photo and split it by _. for each member in the array, it would append it with spaces to become a string making the name of teh place that can be hovered over.
  2. On the top left of the navbar, it’ll dynamically render the url based on what page you are on
  3. The home page is smaller since my hope was to render it best on the screen of phones. I designed most of the site with smaller screens in mind
  4. For projects, I rendered a table of contexts that will jump to projects/#project based on the selected one, automatically going to that index of the page. I linked the code to previous project, bioblitz, however I still need to add more.
  5. I put the site on google search console with a sitemap so it will soon be indexed.

Overall, I really love the theme of this site, with the blue accents. I got some inspiration from other research portfolios. In the future, I want to redo the blog page fully since it didn’t have much before but one not dynamically rendered post. Attached are some photos of the pages.

0
0
1

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…