A recreation of a startpage posted on Reddit without the source, so I rewrote it in Next.js + Tailwind for the open source community.

Overview

Startpage

"Figma Balls" Rewrite

Why Did I Make This

I saw a startpage posted on the subreddit r/startpages that I thought looked nice, but when I looked around for the source code there was none to be found. Sure I could have evaluated the HTML+CSS using Firefox's developer tools, which I did actually, but I thought it would be a decent challenge to recreate the site as precisely as possible and post it for the enjoyment and, more likely, learning process of others who would be benefitted by a repository that created the same site. So I wrote this and posted it on Reddit.

What's With the Name

Don't ask me, I didn't name it. On the site that was posted on the Reddit post it went by the name "idiot" but on Reddit it was posted as "Figma Balls" so I went with the latter name as it was less offensive.

Can I Locally Host This Like Other Startpages?

The tech stack employed here is not suitable for local hosting unless you build the Next.js site locally and run the site from the build files. Otherwise, it makes sense to instead either bookmark the hosted version and use it, or fork the repo and host your own on a static hosting site, like Vercel (which is what I tend to use) or Netlify or whatever. In my opinion, it is probably a bad idea to host a site locally as it is easily lost if your computer fails or the files get deleted, among other tradegies common with computers, so I tend to back everything up to Github and since its already here, might as well host it since that's free!

Is This an Exact Replica of the Original Post

While it is pretty close, its not a perfect replica. I took artistic liberty replacing the font for the links themselves, using Linux I don't have Helvetica available on my system and find the Microsoft fonts to be... not very attractive, so I used a Google Font I like a lot called Kanit. The only other differences are some minor differences with sizing and spacing, though I tried to minimize these to the grestest extent possible, they still persist but do not impede the use of the site as a startpage and do not vary all that much from the original. Were I not replicating another site's form and function, I would have definitely added an svg pattern background and probably gone with more, slimmer link cards.

The Original Site is HTML+CSS (probably), but What is This?

The employed tech stack is as follows:

  • TSX - React + Typescript - React because I like the way that React is written, separating components into isolated files just makes sense to me. Typescript because its popular and supposedly safer than Javascript without being that much more to write and providing a somewhat unique challenge sometimes that I do enjoy.
  • Next.js - really a more targeted, less complex to configure utilization of webpack that generates a static HTML+CSS site out of React components. It has a much better developer experience than Gatsby, since it is less prone to extremely long build times or any unnecessary baggage. This translates into faster loading times for users, which with this site makes little difference but were you to expand the site a bit, would quickly make up for the extra configuration in terms of simplifying much of the process.
  • next-themes - an extension for Next.js I used to provide the dark/light toggle mode.
  • SVG - all of the images used in the site are SVG tags within components. I nested them within TSX components to be able to apply the different colors to them when toggling between light and dark mode as the original posted site does. Using tailwind, this is done with the classes, specifically setting "text-purple-500 dark:text-white fill-current" classes to the "className" attribute of the SVG-in-TSX component. Were I not intending to reproduce the look and functionality exactly of another site, I probably would have done this differently but it worked out pretty well so I can't complain too much.
  • tailwind.css - at present my favorite way of expanding upon what CSS can easily accomplish by itself, I like using tailwind because it provides consistency in appearance and is mostly implemented as classes in the JSX, enabling all aspects of a component to be in one file thus increasing its "Atomic" design and simplifying modifing and thus mantainence of the component in the future. I often reuse my tailwind configuration between projects, changing bits as needed (such as adding colors) but most of my custom values for various classes like height and width are pretty consistent thus I just copy the one file, no need for scaffolding scripts and complex interweaving files as I was doing with SCSS before or adding additional complexity to files creating "Styled" variants of my components.
  • Vercel - Vercel is the hosting platform I use for pretty much whatever I can (in terms of websites) because it so seemlessly integrates with Github/Gitlab repositories, is free to use and has a pleasant UI that makes it exceptionally easy to accomplish whatever task one needs without extra fuss or surprise charges for overages.
You might also like...

(🔗, 🌲) Web3 Link Tree is a free & open-source alternative to Linktree built with React.js, Next.js, Tailwind and Web3-React

Getting Started Read the detailed guide here Customize Add your name, wallet address, social media links and more in config.ts Images Save images to t

Sep 20, 2022

A responsive and open source portfolio for software developers (Next.js & Tailwind CSS version).

A responsive and open source portfolio for software developers (Next.js & Tailwind CSS version).

Software Developer Portfolio 💯 A responsive and open source portfolio for software developers (Next.js & Tailwind CSS version). Website Screenshot In

Nov 28, 2022

Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

Jan 5, 2022

Open! Inclusive! Collaborative! A community for enthusiasts exploring new technologies, working on innovative ideas and helping each other grow together. Open Issues, Raise ideas, Make Pull Requests!

Open! Inclusive! Collaborative! A community for enthusiasts exploring new technologies, working on innovative ideas and helping each other grow together. Open Issues, Raise ideas, Make Pull Requests!

About Us OplnCo previously known as Devstucom represents Open Inclusive Collaborative. We as a community help our fellow students build skills through

Oct 13, 2022

A Tailwind plugin that allows to create multiple groups utilities such as group-card or group-1 and works with Tailwind 3 features and all variations.

Tailwind Labeled Groups A plugin that allows to create multiple groups utilities such as group-card or group-1 and works with Tailwind 3 features and

Nov 21, 2022

⏪ Rewinds – Remix Tailwind Starter Kit with Tailwind CSS, Headless UI, Radix UI, and more

⏪ Rewinds – Remix Tailwind Starter Kit with Tailwind CSS, Headless UI, Radix UI, and more

⏪ Rewinds – Remix Tailwind Starter Kit Rewinds is a Remix starter kit with Tailwind CSS v3 family of libraries. This is an example demo to combine the

Dec 24, 2022

Reddit Wherever Chrome Extension

Reddit Wherever Chrome Extension

Reddit Wherever Reddit Wherever adds Reddit comments to Youtube Videos and also allows you to view Reddit comments of any webpage. By default YouTube

Jan 3, 2022

This project is used to extract media from various posting platfroms like Twitter, Reddit, Pixiv, Youtube and many other

Social-Picker-API This project is used to extract media from various posting platfroms like Twitter, Reddit, Pixiv, Youtube and many others. It's writ

Nov 29, 2022

A simple copy of the Reddit app using it's API in React Native

A simple copy of the Reddit app using it's API in React Native

A simple copy of the Reddit app using it's API in React Native

Nov 12, 2022
Comments
  • [ImgBot] Optimize images

    [ImgBot] Optimize images

    Beep boop. Your images are optimized!

    Your image file size has been reduced 🎉

    Details

    | File | Before | After | Percent reduction | |:--|:--|:--|:--| | /public/android-icon-192x192.png | 25.69kb | 22.13kb | 13.87% | | /public/apple-icon-precomposed.png | 26.72kb | 23.45kb | 12.27% | | /public/apple-icon.png | 26.72kb | 23.45kb | 12.27% | | /public/apple-icon-144x144.png | 19.31kb | 18.57kb | 3.84% | | /public/android-icon-144x144.png | 19.31kb | 18.57kb | 3.84% | | /public/ms-icon-144x144.png | 19.31kb | 18.57kb | 3.84% | | /public/apple-icon-152x152.png | 20.78kb | 20.08kb | 3.41% | | /public/ms-icon-150x150.png | 20.53kb | 19.87kb | 3.21% | | /public/apple-icon-180x180.png | 26.53kb | 26.01kb | 1.98% | | /public/apple-icon-120x120.png | 15.12kb | 14.91kb | 1.38% | | /public/vercel.svg | 1.08kb | 1.06kb | 1.00% | | /public/apple-icon-114x114.png | 14.20kb | 14.06kb | 1.00% | | /public/fonts/github.svg | 0.70kb | 0.70kb | 0.56% | | /public/logo.png | 58.40kb | 58.14kb | 0.43% | | /public/ms-icon-310x310.png | 58.40kb | 58.14kb | 0.43% | | /public/logo.svg | 33.09kb | 33.08kb | 0.02% | | | | | | | Total : | 385.90kb | 370.79kb | 3.92% |


    📝 docs | :octocat: repo | 🙋🏾 issues | 🏪 marketplace

    ~Imgbot - Part of Optimole family

    opened by imgbot[bot] 0
Owner
Thomas Leon Highbaugh
Full Stack Web Development, Linux Professional & Digital Artist
Thomas Leon Highbaugh
Reddit Place Tracer is a browser based userscript for the 2022 Reddit /r/Place project

Reddit Place Tracer is a browser based userscript for the 2022 Reddit /r/Place project which adds a transparent image on top of the canvas to aid communities with drawing the same image. It shows how the canvas should look, where each pixel goes, and what color. The user must manually click on these spots. It is not an automated bot and does not break any rules.

null 3 Apr 3, 2022
fully selfhosted multi-user web app for externally storing Reddit items (saved, created, upvoted, downvoted, hidden) to bypass Reddit's 1000-item listing limits

expanse fully selfhosted multi-user web app for externally storing Reddit items (saved, created, upvoted, downvoted, hidden) to bypass Reddit's 1000-i

J Chan 216 Dec 30, 2022
A community website built by the community for the community (Hacktoberfest 2022) :tada:

Hacktoberfest 2022 ?? : Built by the community for the community! This repository is an initiative which aims to help beginners kickstart their open-s

Your First Open Source Project 5 Oct 12, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.

Features Web Bookmarks Service Bookmarks Docker Integration Status light + CPU, Memory & Network Reporting (click on the status light) Service Integra

Ben Phelps 3.5k Dec 30, 2022
It consists of a recreation of Twitter, to put into practice both Front-end and Back-end knowledge by implementing the MERN Stack together with other technologies to add more value to the project.

Twitter-Clone_Back-end ✨ Demo. ?? About the project. ?? Descriptions. It consists of a recreation of Twitter, to put into practice knowledge of both F

Mario Quirós Luna 5 Apr 12, 2022
It consists of a recreation of Twitter, to put into practice knowledge of both Front-end and Back-end implementing the MERN Stack along with other technologies to add more value to the project.

Twitter-Clone_Front-end ✨ Demo. Login Home Profile Message Notifications Deployed in: https://twitter-clone-front-end.vercel.app/ ?? About the project

Mario Quirós Luna 5 Jun 26, 2022