DEV Community

Cover image for Introducing Pckd - The most powerful πŸ’ͺ URL shortener

Introducing Pckd - The most powerful πŸ’ͺ URL shortener

Mohit Yadav on March 03, 2022

Overview of My Submission This month, I saw the Azure + Dev.to Hackathon 🀩 and immediately knew I found the excuse to spend my time brin...
Collapse
 
renanfranca profile image
Renan Franca

Omg! πŸ€―πŸŽ‰
Awesome! Will this demo be hosted "forever"?
You are a great designer and developer, a complete professional πŸ‘

Collapse
 
just_moh_it profile image
Mohit Yadav

Haha, don't embarrass me! I haven't even graduated from high school yet πŸ˜„

Jokes aside, as for the hosting, this particular demo won't be hosted forever, but the one with the link on the GitHub repo will be, and it's much faster!

And really thanks for the heart-melting comment, means a lot! πŸ˜ƒ

Collapse
 
itsrakesh profile image
Rakesh Potnuru

Nice project.
What you used to create that product animation? Or you animated by yourself?

Collapse
 
just_moh_it profile image
Mohit Yadav

Thanks! I plan on creating the animations using Framer motion in the next revision of the app. The on in the GIF was simply created with After Effects. Hope this helps 🧑

Collapse
 
itsrakesh profile image
Rakesh Potnuru • Edited

Can you share me After Effects template?

Thread Thread
 
just_moh_it profile image
Mohit Yadav

Haven't used the template as such

I used jitter.video to create the UI animation (the graph animations and fade in entry to elements) by exporting my figma designs using a their Figma plugin. The design files:

I exported these to 1080p (premium feature but you can get it for free by hacking their website (burp-suite + dev tools to change the is_subscription_active repsonse)) but I would not suggest doing that. I only did that because I was stuck with my hardwork going to vain because I didn't notice I could not export it to more than 720p without a subscription

Then, after exporting these to .mp4 files, I followed along this video to make the perspective-based animations, and it turned out pretty great!

Hope it helps ❀️, cause I now wish I knew it when I just started out!

Thread Thread
 
itsrakesh profile image
Rakesh Potnuru

Thank you so much

Collapse
 
thomasbnt profile image
Thomas Bnt β˜•

Nice, but not responsive 😐

Collapse
 
just_moh_it profile image
Mohit Yadav

Yes, I wasn't able to create a good enough concept for the dashboard on mobile devices, because the layout is quite unusual. I plan on adding support through dropdown boxes though very soon.

For now, landscape mode (with a bit of zooming out works well).

Collapse
 
jacksonkasi profile image
Jackson Kasi

really cool 😎

Collapse
 
just_moh_it profile image
Mohit Yadav

Thanks you so much! Made my day 😊

Collapse
 
timhuang profile image
Timothy Huang

Great! You do a great job. Thanks for the sharing.

Collapse
 
zippytyro profile image
Shashwat Verma

Cool design, the project demo link is broken?

Collapse
 
just_moh_it profile image
Mohit Yadav

The website is up, forgot to use pm2 and closed the shell, so the server stopped. Thanks for pointing it out πŸ˜„

Collapse
 
namankatewa profile image
Naman Katewa

Just another small request buddy. Idk much about url shortening and all. But could the redirecting be made any faster. If not then it's cool.

Collapse
 
just_moh_it profile image
Mohit Yadav

Redirects are faster than ever, also added animations and graphs. Use this version if speed is a concern: yayy.me

Collapse
 
namankatewa profile image
Naman Katewa

Yeah thanks

Collapse
 
just_moh_it profile image
Mohit Yadav

Yep, sure! Adding direct redirects using express js (used for API currently) is on the roadmap. It would hopefully be done by the next time you check it out.

Collapse
 
harshhhdev profile image
Harsh Singh

Nice work.

Isn't this basically an IP grabber of sorts? If I'm not wrong, if you are collecting the user's IPA then you need to specifically specify it in your terms.

Collapse
 
just_moh_it profile image
Mohit Yadav

Thanks for comment.

As for the IPA situation, I'm actually fully aware of this. However, with the model the app is created with, that is scalability and convenience at its core, and using free-to-use (or generous free-tier) services, it may be more efficient to store the IP than to extract info (like geolocation), and then delete the IP.

That's because it uses the ip-registry API, which charges per API call to fetch isp and other info from an IPA, and only supports a few thousand lookups for free. So I wanted the person who hosted the app, to not be forced to track every single IP, and be able to only look up specific ones up on-demand to preserve API credits, in case a link goes viral. On-demand lookups were not possible without storing the IP address. Though this feature is currently on the roadmap, it is actively being worked on.

Even though I could have hidden it from the frontend, it's just a matter of changing a few lines in the backend code to be able to fetch the IP directly from the database.

As for, why I have it enabled on the version I'm hosting, I'll discard the hosting after the hackathon gets over in a matter of a few days (maybe), and only preserve the code, for people to host themselves.

Also, since this app was supposed to be self hosted and would not be available as a hosted service (at least not completely free), it's up to the app host and the link-creators to choose whether they want to track users or not. If they want to include their privacy policy, they have all rights.

I hope you understand. Thanks!

Collapse
 
harshhhdev profile image
Harsh Singh

I see, thanks for the detailed explanation. I wasn’t sure of how this IPA stuff works and was actually wanting to implement it in one of my apps through Vercel and Upstash.

Thread Thread
 
just_moh_it profile image
Mohit Yadav

No problem, I was asked the same question by many, so did not mind adding it here.

Collapse
 
sumant2347 profile image
sumant-k

love the design, it's simple yet beautiful. enjoyed the post as well, really well written πŸ‘Œ

Collapse
 
just_moh_it profile image
Mohit Yadav

Thank you so much for you compliments, it means a lot. This was my first real project and already loving the responses. πŸ˜ƒ

PS: congrats on your first comment, Sumant 🎊

Collapse
 
namankatewa profile image
Naman Katewa

It's good man Even I signed up for it and am going to use it extensively.

But one problem though it's not responsive.(Could be easily fixed. :) )

The post is so well written πŸ˜„πŸ˜„

Collapse
 
just_moh_it profile image
Mohit Yadav

Thank you so much man! Really appreciate that. I will surely make it responsive and fix some issues within a week or so. Stay tuned πŸŽ‰

Collapse
 
alcatraz312 profile image
Alcatraz312

Real coooool !! , nicee job

Collapse
 
just_moh_it profile image
Mohit Yadav

Haha !! , great comment