Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

naveed's avatar

Laracasts CMS

Hey everyone,

I was just wondering whether Laracasts has custom CMS where they upload videos and meta data related to videos or simple just grab all information from Vimeo.

@JeffreyWay maybe you could shed some light on it as I need to create similar app for my workplace. Any help would be much appreciated.

Many thanks for your replies.

0 likes
31 replies
austenc's avatar

I believe there's some sort of (custom) backend to track all the videos / content, although @JeffreyWay would need to weigh in to confirm.

naveed's avatar

@austenc Thanks for your reply. I don't know if you have noticed but each of video thumbnail has font icon. How does he include that icon as in Vimeo no HTML is allowed.

kfirba's avatar

@naveed I'm pretty sure @JeffreyWay is using some sort of a custom CMS. When he shows the code base for laracasts, he has a Series, Episode and a Lesson. Each series has episodes and Lessons are like standalone Episodes. He showed his demo DB once and you could see that he stores a vimeo URL for the videos, video's name, excerpt and a few more things.

1 like
naveed's avatar

@Ruffles Thanks for your reply. No its not an image but separate icon in html.

davorminchorov's avatar

I was thinking more like a screenshot of it and then mixed with the video. I am just guessing, I haven't really done any video editing.

4jZW7jVSdS4U6PC's avatar

@naveed If you inspect the source code of laracast, which is a great peace of HTML by the way, if will find that @jeffreyway did a clever trick in order to create custom thumbs on videos, also the videos are uploaded on Vimeo. Every video has got its own personal overlay with useful information such as Watched, title and icon.

Also laracast is based on Laravel and is custom built, I remember back the first version of laravel which has no forum and only few videos but it was awesome anyway

Source https://web.archive.org/web/20130404000553/http://laracasts.com/ first version draft

First sign up and browsing https://web.archive.org/web/20131107213345/https://laracasts.com/

naveed's avatar

@ludo237 Thanks for your reply. Creating overlay and displaying title and length is not difficult part as we can get that info from Vimeo API but I was curious about font icons as you cannot embed those in Vimeo so was wondering that he must have custom cms to achieve that.

kfirba's avatar

@naveed When you think about it, it's actually the same as storing a dynamic photo gallery. You don't store the photo itself in your DB, but a path to it. Here you simply use a 3rd party service to store your videos (and eventually play them in this case) and then simply retrieve them like some sort of an iFrame. Using this method, you can simply design everything as much as you want.

1 like
4jZW7jVSdS4U6PC's avatar

@naveed I guess it's database side. I think he has some sort of administration panel where he can categorise each video with its own set of icons and related meta tags.

Also with a simple tool you can find the endpoints of laracasts.com and some of them are administrator only.

Please don't ask for the software and/or the procedure because I'll not provide any kind of info about it (as a security researcher I'm wearing the white hat :D)

naveed's avatar

@ludo231 Yes that is what I was thinking as he has some extra information like tagging video level (Beginner and Intermediate) which cannot be done in Vimeo.

naveed's avatar

@ludo237 I guess I have to create custom cms then. Would have been easier If all information could have been entered in Vimeo and just pull it using API.

kfirba's avatar

@ludo231 You piqued my interest with those endpoints. I'm planning to build some endpoint on my website so a webhook from a remote git repository will be able to post to it and trigger a git pull. Do you mean it will be useless even if I try a URI like: https://example.com/git-8JyvexuPlkgJUwW to make it more secure?

4jZW7jVSdS4U6PC's avatar

@naveed The basic logic of laracast (excluding the forum part, and the awesome graphics) it's pretty easy to implement with laravel. I think that having that kind of information will be useless on Vimeo because they are too much dedicated, maybe there's a section for that on VIMEO I'm not sure because I don't know their APIs.

4jZW7jVSdS4U6PC's avatar

@kfirba well "security through obscurity" it's always a bad choice. If you want to secure some endpoint you should create some kind of "filters" via OAuth or HTTP tokens (generated for each Application etc.)

EDIT: FML autocorrector LoL

kfirba's avatar

@ludo237 Can you please elaborate more about the OAuth and the HTTP tokens? If you have some reading materials I will be glad.

1 like
naveed's avatar

@ludo237 Agree that there is no need for them to have extra fields to fit my app requirements. They are purely video hosting company and doing good job as it is.

But I believe @JeffreyWay must be utilising Vimeo API to get info like video length, title and description instead of manually entering in his custom CMS and it would be like doing the same thing twice.

kfirba's avatar

@naveed I'm almost sure that he doesn't store his video information (title and excerpt) on vimeo but in a DB. That way he can store HTML text and style the excerpt/title however he want.

JeffreyWay's avatar
Level 59

Yes, I have a custom CMS that I use for managing all the content on the site. Vimeo exclusively handles the video hosting. Everything else is done on this end.

3 likes
thomasb's avatar

@JeffreyWay I would love to see a lesson/series about setting up a cms like the one on laracasts! I trying to setup my own admin dashboard but i'm a bit confused with setting the correct routes and permissions so only I can get on it.

The larabook series u did was awesome! Maybe something like that but for setting up an admin dashboard.

bashy's avatar

@thomasb Backend controllers folder along with all the routes in a route group of "/admin", protect the whole lot with a group/role :)

2 likes
jekinney's avatar

Also namespace your controllers helps keep it all tidy and clean. Default in l5 now.

Next

Please or to participate in this conversation.