#my first url was more or less a key smash
Explore tagged Tumblr posts
thirstyforred ¡ 6 years ago
Note
So,which red are you thirsty for? The werewolf? Upyrica? One of the colours? I'm sorry if you don't wanna answer that, I'm just very curious
red lyrium actually
few years ago i was very into Dragon Age Inquisition and it seemed like a funny and cool idea for url
1 note ¡ View note
kimistorm ¡ 3 years ago
Text
Tag game!
tagged by @strayingdawn Thank you so much for this! This was really fun to see/do!
why did you choose your url ?
It's more or less my standard fanfic name (I'm a multi-site writer too asdflhgadsf) and that started with little middle school me thinking the perfect alias is Stormy (which, surprise surprise, was already taken), and then I think I just liked the name 'Kimi.' So I smashed them together and just use it everywhere.
do you have any side blogs ?
Yeye. It's hardly active, but I thought I'd be able to make an academic resource kind of blog. Mostly for my use to bookmark things like NIST tables or NMR prediction sites, and I was going to make an OChem cheat sheet to add to it but...I never did that. Honestly, might continue it as I make note of advice I've heard from interviews with professionals!
how long have you been on tumblr ?
I first created a tumblr account in 2015 and kind of on and off used it. It's gone through several phases of what I want the blog to be lol. I started being more active (and in it's current state) February 2021.
do you have a queue tag ?
no. Is that something people normally do? Haha I'm still pretty new to the tumblr culture, so I'm totally open to learning how things work/norms~ (Someone pls help this bby)
why did you start your blog in the first place ?
(With regards to the current reboot) I stumbled upon the active stay writing community (and heard from a friend that generally the writing community on tumblr actually exists and is active), so I thought I'd give posting/sharing my writing another shot on this site! Hopefully, I can make new writing friends moving forward~
why did you choose your icon/pfp ?
I will forever be screaming over purple-haired Bang Chan. Fun fact, him dyeing his hair purple was pretty much the tipping point for me dyeing my hair (kind of) purple after 4 years of waiting. Which low-key has unleashed a desire to dye my hair even more and to keep bleaching it TwT
why did you choose your header ?
I love winter vibes and ot8
what’s your post with the most notes ?
Of Guitar Picks and Ladders [Luka Couffaine]
how many mutuals do you have ?
Uhhh <5? I'm the worst with names and figuring out what is a 'mutual'
how many followers do you have ?
163 (This was so fast howwwwww)
how many people do you follow ?
71
have you ever made a shitpost ?
Nope
how often do you use tumblr each day ?
Not super often, mostly at the end of the day/week to read some fanfic or post.
did you ever have a fight/argument with another blog once ? who won ?
Nope
how do you feel about those “you need to reblog this” posts ?
Honestly, I haven't browsed tumblr often enough to have had many encounters with those types of posts. So I'm remaining neutral for now.
do you like tag games ?
Yess!
do you like ask games ?
Yep!!
which of your mutuals do you think are tumblr famous ?
I- I really don't know
do you have a crush on a mutual ?
Nah
Tagging: (No pressure to do these if you don't want!) @gdaychan @sweetbutwitchy
0 notes
atakportal ¡ 6 years ago
Text
Palazzo - Real Estate WordPress Theme
New Post has been published on https://click.atak.co/palazzo-real-estate-wordpress-theme/
Palazzo - Real Estate WordPress Theme
Latest Version 1.0.9 – Jul 25, 2018 – view changelog WordPress 4.9.x Ready Visual Composer 5.4.x Ready WooCommerce 3.4.x Ready
Palazzo, Beyond Functional Real Estate Theme, is our effort for a new and a great user experience in building up a real estate site. The theme is not only a theme for real estate business but also a great solution for all related real estate terms. We take care all needs that real estate agents, agencies and companies wish them being available in. Also, with easy-to-use front-end and powerful backend features the theme will engage to more users.
Being in details, Palazzo comes with the four smashing homepages with reasonable structures and a cool look insight. Plus, Advanced search gives users full of details that be needed for a specific property and also get a strong impression with comprehensive single property page in various style. Last but not least, Agency list we add will give a convenient way for companies to manage their real estate sites as well as all agents who work for them.
Palazzo goes beyond basic real estate theme with these core features below!
Palazzo Theme – Full Features List:
One Click Installation
Only a click to get all the demo content visible on your site.
Auto Update The Theme & Plugins
No more wasting your time updating theme and plugins manually. The theme can be easily updated automatically with just one click.
Live Theme Customizer
With Palazzo, you get to choose the color scheme of your site, ensuring that the aesthetics will match your vision.
Fully responsive and retina ready
Palazzo is optimized for any screen resolution and it looks fantastic on phones, tablets and PCs
Extensive Homepages
As an endless inspiration, Palazzo satisfies all your needs as you wish with distinguished functional homes.
4 Custom Post Types
Properties: You can add as many properties as you want in admin panel or frontend submission. Agents: Add and manage agents’ information easily with just a few steps. Gallery: Palazzo’s gallery is displayed beautifully with the UI-focused layout. Testimonial: Input testimonials and get them displayed on any pages using testimonial shortcode
Advanced Search
Help your visitors search for the appropriate property to meet their needs by multiple search criteria like property status, types, location, price range and more.
Live Property Search
Palazzo helps you save lots of time by live property search feature. It shows search results right after you choose the criteria, no need to click on Search Property button.
Frontend Submission
Exclusive: Easily customize Property’s icon and color on map
Floor Plans
Palazzo displays floor plans beautifully to make your visitors have the best impression on your properties.
Favorite Properties
Interested in a property? Just click on the heart button on the bottom of that property, then it will appear in your “My favorites” section on your dashboard/profile.
Properties Compare
Easily compare between two or even several properties by clicking on “Compare” button.
AJAX reviews and ratings
It helps your visitors to comment and rate the property effortlessly by AJAX.
Unlimited numbers of Custom Fields, Features & Amentities
Palazzo allows your visitors to smoothly add, edit and delete unlimited numbers of Custom Fields, Features & Amenities to be displayed in property details.
Advanced Search Options Panel
Default Search options can be simply customized in flexible backend settings panel
Membership Packages/ Pricing Table
Palazzo allows you to create as many membership packages as you want. You can also change package flexibly.
Fully detailed Agent Dashboard
Palazzo has distinct dashboard to let your users add, edit, delete or set featured property quickly and efficiently.
Agent Profile
Your visitors or agents will have their own profiles on Profile page in which they can easily manage their information.
dsIDXpress IDX Plugin & Optima Express IDX Plugin Compatible
We make sure that your MLS listing display appealingly in our theme. Palazzo is dsIDXpress and Optima Express ready. Integrating IDX plugin in your website enables you to update automatically the listings in your website, get enhanced search functionality and generate more leads. Note that the plugins are supported, not included, please download them at www.dsidxpress.com and wordpress.org/plugins/optima-express
WooCommerce compatible
Palazzo has style WooCommerce pages and elements. You can bring your business online and sell things right away with Palazzo.
Mega Menu
Palazzo included Mega Menu plugin to enhance the navigation and usability of your website.
Unlimited colors and Google Font
Set the color for an appropriate element with different color schemes. You can change the colors without any extra effort
SEO Friendly
Strong search engine optimization enhancements have been implemented from the codebase up within Palazzo, ensuring you get the traffic you need to kick off your real estate website.
Right to Left Supported
Palazzo supports right to left languages and repositions elements when necessary.
Slider Revolution Included (Save $19)
It also includes powerful Revolution Slider Plugin that enables you to showcase all the latest or featured properties with property name, price and detail information.
Visual Composer Included (Save $34)
Setting up and organizing your site is made easy with its built-in Visual Composer, a premium drag & drop builder plugin that allows you to generate unlimited pages in a flash.
Translation Ready
Palazzo supports multilingual translation using WPML.
Regular Update
We keep updating the theme regularly with more addon features and minor bug fixed. Just one time payment, you will get the update lifetime for free.
Translation Ready
Palazzo supports multilingual translation using WPML.
Comprehensive Documentation
We included in theme package dedicated document file to guide you step by step installing and customizing the theme.
Whole-hearted support
In addition to dedicated documentation, the senior developers of Palazzo will support you. We are happy to support you to build your amazing website.
And much more
Support
All support is handled by our Forum.We encourage you to post all your questions concerning to our template there as your questions may have already been answered or may be of help to other people that have also purchased the template.
Keep In Touch With Us
Keep updated with our latest news and release by subscribing to our newsletter at Blog NooTheme or follow us via social networks.
Change log
1.0.9 Jul 25,2018: - [Fix] Nearby API key issue. - [Improve] Agent, Agency logic. - [Fix] Floor plan adding at the front-end. - [Add] Sub property listing for submit property. - [Fix] Property saving data from Front-end submitting. - [Fix] Request viewing for property (Schedule a tour). - [Fix] Agent, agent properties front-end management. - [Fix] Agent member of the Agency.
1.0.8 Jun 19,2018: - [Add] Quick Setup for Realty Portal Setting. - [Add] Property tag input. - [Add] Delete account option for GDPR. - [Add] Show/hide agent info on the property submitting. - [Improve] Agent and Agency post type. - [Improve] Order history page, add print invoice option. - [Fix] Agent properties counting issue. - [Fix] Purchase package issue. - [Fix] Noo Service shortcode: URL issue. - [Fix] Noo Property Banner auto play issue. - [Improve] Responsive layout. - [Fix] Outdate WooCommerce template files.
1.0.7.1 May 28,2018: - [Check] WooCommerce 3.4.0 - [Fix] Property details fullwidth layout. - [Fix] Listing responsive issue on the dashboard.
1.0.7 May 24,2018: - [Improve] Front-end Submit logic. - [Improve] Theme style, hover effect. - [Add] 100+ currency. - [Add] Front-end submit: Additional information field. - [Fix] Order History issue. - [Fix] Profile setting issue.
1.0.6 May 18,2018: - [Fix] Front-end style issue. - [Improve] Submit Property upload image. - [Fix] Agent dashboard style issue - [Improve] Page options issue. - [Improve] Less file.
1.0.5 May 12,2018: - [Add] Quick setup for New Install. - [Add] Property Ref number config. - [Add] Search function for Property Ref number. - [Move] Custom-style.css file to upload folder. - [Fix] Yelp Nearby API key changed. - [Fix] Property Search result issue. - [Fix] Location popup windows on the Property details. - [Fix] Delete agent issue. - [Fix] Get the Type, Offer issue on the Shortcode. - [Fix] Sticky left sidebar issue and the mobile issue. - [Fix] Inactivate plugin issue. - [Fix] Properties list Shortcode load more issue.
1.0.4.1 Apr 20,2018: - [Fix] Dummy data issue.
1.0.4 Apr 10,2018: - [Fix] Set featured property via front-end management issue. - [Fix] Edit, publish, delete action on table view - Front-end management. - [Add] Confirm message when deleting property - Front-end management. - [Fix] Show all tab content on the Property details page. - [Add] On/Off neighborhoods function on the Property details page. - [Fix] Noo Mailchimp issue on the dummy data. - [Fix] Properties listing page with Ajax search issue. - [Fix] Noo Property listing - loading issue. - [Fix] Properties grid layout on the Safari browser. - [Fix] Styling option issue.
1.0.3 Mar 6,2018: - [FIX] Custom property contact, agent contact form not display at front-end. - [FIX] Topbar scheme custom in the page setting. - [FIX] Properties responsive issue. - [FIX] Login/ Register popup issue. - [FIX] Front-end submit property issue. - [FIX] Advanced search listing offer issue. - [Improve] Style layout. - [CHECK] The latest WordPress 4.9 and plugins.
1.0.2 Feb 10,2018: - [FIX] Install requirement plugins issue popup issue. - [FIX] WooCommerce 3.3.1 issue.
1.0.1 Feb 09,2018: - [FIX] Import demo data. - [FIX] Install requirement plugins.
1.0.0: - First stable release
BUY From ENVATO Marketplace
1 note ¡ View note
alicentsgf ¡ 7 years ago
Note
We are getting so close to TLJ I need you to help me survive these last 18 days by reassuring me Rey is a Solo! My hopes are going down and I need you to tll me everything’s going to be okay based on your evidence :(
Hey bud, hope you’re still out there. I’ve taken a week or so to get to this ask because it was a pretty heavy one for me, it just really reminded me how close we are and how everything that’s happened in my life for the past couple of years has been pretty tightly tied into the rey solo theory, however stupid that may seem… So… I’ve been writing Rey Solo theories since at least January 2016, if not earlier. The entirety of all my theory takes about two hours to read, if you’re quick lol. When I first arrived with my arms full of ideas there were only about 5 people listening to me, but then I wrote my first theory (which was almost entirely focused on mythology and thematic elements I think) and overnight I had thousands of reblogs on that post and more followers than I had blog posts. Suddenly everyone was asking me questions about theories, I made more posts as my theory evolved, and over about the next few months I got a shitload of hate as well - which, funnily enough wasn’t even from rey/los who are kinda the Nemesis of the reysolo fam now, but was all instigated by this small group of really bitter reyskys to whom my url was kinda of a punchline to a joke, synonymous with ‘delusional idiot’. They (or their followers? idk it was all on anon) called me a r****d a lot, which was especially hurtful since I was an autistic kid, and it wasn’t the first time I’d been called that. I literally can’t type the r word even now because I hate to see it. I mostly pretended I didn’t care about all this on my blog because I knew they were stalking it and I didn’t want them to know what they were doing was getting to me. They’re the reason @safereysolo was made tbh. I’d already been depressed since the summer before and this, on top of struggling in school and being closeted in my religious irish catholic family, made it worse - so in July 2016 I tried to kill myself. I haven’t explicitly said that on this blog before, or even told my close friends, but it’s not hard to see from my posts back then that I was at breaking point. My parents found out I was ill, my religious mother found out I was gay the exact same day, and I was put in therapy. All round a really shit day tbh. I’m safe now, don’t worry.After that all happened I kind of slowly pulled back from the rey solo thing a little as I was going through recovery, and around that time the reys parentage debate on here chilled out as well as? I think as it came up to Rogue One’s release people just weren’t as invested in TFA and so I got way less hate. I guess I’m just saying, there were plenty of days where it would have been easier to just abandon ship but I’ve always found this theory way too interesting to abandon. It did however get to the point where I stopped talking theory purely because there was nothing really interesting left to talk about, but it took a good year to get to that point and I was posting every day, so the rey solo theory Definitely doesn’t stand on nothing!This theory has had such a good impact on my life, despite the shit that went down in the early days; it got me published, paid for me to go travelling, gave me something to live for (because I sure as hell wasn’t gonna let myself die and never see The Last Jedi when the assholes that had pushed me to breaking point got to sit in the Theatre unashamed). I’ve certainly been through too much with this to give it up now, and why should I? The thing I love and that reassures me about this theory is when you look hard enough there’s an answer for absolutely everything, and it all fits so neatly with TFA. I can’t give a definitive ‘this thing proves shes a solo’, but what I can give you is an explanation of the facts that makes you realise beyond doubt that Rey and the Solo family fit together like they were made for it, because they were. I can show you when they lost her, that they talk about it onscreen, how it fills the gaping plot hole of ‘how could people like han and leia end up with a kid like kylo’, why Han didn’t appear to recognise her, and even how the music was written to demonstrate han and leias absence from rey’s life. I can show you why Rey stayed on Jakku when she didn’t remember her family, why Kylo feeling compassion for Rey (and hating it) is important and definitely not a rey/lo thing, why Rey isn’t her real name and where she got it, and why Rey, the Falcon and Lor San Tekka are all on Jakku at the same time. I have a good explanation for everything that’s been thrown my way, despite all the abuse I faced for it - so why couldn’t Rey Solo be true? and always remember: chewie himself reposted my theory :^)
No matter what I’ll always be glad of the people I met through this sw theory blog. I once got 150 people sending me asks telling me they loved my blog - in a row. 70+ people liked my post saying I’d got a place at my top university - even though it was mostly just excited key-smashes. Through it all I had you guys. Every time I see you referencing/including me and parts of my original theories in your own posts, especially the ‘we both had to deal with it’/‘profound tragedy’ theory, it’s amazing. I love you @ my reysolos
28 notes ¡ View notes
theday ¡ 7 years ago
Note
🌲
HELLO KEI!!!! okei :0
why i followed you: listen .. i could b wrong so correct me if i am but im pretty sure i followed u first and it was bc i saw u interacting with nat??? ckyun if theyre still using that url my memory cant ctahc up anyway yes i saw u interacting with them so i was like Oh? i should follow! i mean of course previously i had seen you on my dash bc of ur gifs but i never rly thought abt following until then?? and i also followed bc i needed more shownu stans on my dash :-D anyway based on what i saw ur really nice so i was like smash that follow button!! also ur byf... Thank YOu queen . 
what i like most about you: !!!!!! okay so i like your humour?? and how youre generally accepting!! like i literally called u a heracross and u were like ok bihcujhjs idk ur nice to talk to!!! bc ur funnie and i mean ?? how do i word this nicely its like??? youre fine with me being rude?? i mean not really rude but like playfully rude/mean?? so i like that!!! we’ve only had one conversation but we seriously started talking abt how ur a pkmn with a dick on its forehead pleaedjdjsjhhs i laughed so hard i cant believe it oh another thing ur love for shownu.... is so precious wtfhdhhjh god... its so cute i love it i love seeing u ramble and gush in ur tags
again i hope this made sense bfuhjhjdhhjs i love you nd i hope u have a good day! thank u for sending a tree in :-D 
mutuals send me ‘🎁’ for a compliment or send me ‘🎄’ for why i followed you / what i like most about you!
5 notes ¡ View notes
dreamscript ¡ 8 years ago
Text
File #666
“So let me get this straight, Yoongi: you’re saying that this thing is the reason why your friends were found hanging from the ceiling fan? That this was the thing that nearly killed them?”
Yoongi’s convinced a double suicide attempt is actually a murder, and you’re busy stalking a comatose student’s blog.
request - 666: for continue file #666 from welcome to ff.net ; badpasta gone cereal.
horror triggers apply.
5.5k words, horror/thriller, yoongi + reader, college/cop au.
You tug the thick manila folder from the stack of files. File #666, marked as “resolved.” You take it from the storage and back to your cubicle. Ruminate over the case a bit. In a strange, twisted way, it’s funny: for months, members of the department had been making bets and dark-humored jokes about what the six hundredth and sixth case would be. Would it be bizarre? Or something more commonplace?
When case #665 turned out to be the kidnapping of twenty-six schoolchildren and gained international attention, speculations for case #666 grew exponentially. A mass murder. A mysterious outbreak. Or maybe someone would actually manage to summon Satan.
And yet, after all the debates and guesses, case #666 turned out to be a double suicide attempt. It’s uncommon—of course, but it was underwhelming compared to all the expectations it had garnered. You lay the folder on your desk before taking a seat. Two college students. Roommates. Park Jimin and Kim Taehyung. You review their profiles, just to make sure that nothing’s been changed.
Nothing has, as expected.
According to the case file, one of them was a blogger—Jimin, you think—and a link to the blog is hastily scribbled on the bottom corner of the folder:
mochi-min. university . blog . com
Dutifully, you type the URL into your browser.
The notes in the folder say that nothing of importance was found on the website; it was simply a loose, carefree, lifestyle blog. The last few entries talked about gaming—but the psychologist’s notes say that the “sudden recession” into “nostalgic times” and the “gaming world” suggest the two stressed students were simply “trying to find an escape from reality.”
And eventually, the two boys realized that the ultimate escape was Death itself, not a digital world of fantasy. So, together, they tied each other’s nooses and hung themselves from their ceiling fan.
Or so the story goes.
You think back to your talk with Yoongi earlier, the way his voice was cracked with desperation, determined to prove the facts wrong. The webpage finally loads.
The minimalistic layout is aesthetic, functional, and the sidebar contains a sunny biography of the blogger:
Jimin. University, ‘19. I love giving advice and writing about my day!!! Dance is my passion and graphic design is my major. Hmu ! ig: @mochi-minz15 sc: @pjm995
Underneath the block of text is a small photo of Jimin. You study his face, compare it to the shots in his file. Yeah—that’s him.
You quickly skim over a few posts, not exactly lingering on a particular one, before sorting them based on chronological order, oldest to newest. Twenty-four entries total. Not bad. You’d been expecting more.
First post!!
“
Hey! I’m Jimin. As an up-and-coming college sophomore, I thought I’d start up this lifestyle blog to provide advice and other college-y things for my younger followers (or at least those who were as anxious and curious about the whole college thing as I was).
School doesn’t begin until next week, but um, here’s this post anyways. I guess I’ll see y’all laters!
”
0 comments
“You’re still on that case?”
Heejun’s voice startles you. Talk about meddling co-workers—seriously. You swear that he and Sehun are the nosiest and biggest gossipers you’ll ever meet.
“Huh–wha–yeah, duh,” you say, turning around to face him. He’s got a mildly amused look on his face, one arm resting casually on your cubicle.
“Didn’t we all conclude it was just a double suicide attempt by two stressed college students?”
“No, you guys did,” you say, turning back to the blog. You’ve still got twenty-three more entries to read. “I wasn’t even assigned to the case, so I never got a say in the manner.”
“So why now?” Heejun shifts his posture. “Why all this sudden interest? And why don’t you think it’s a suicide attempt?”
You turn back to him; it feels a bit awkward talking at a computer. “I was contacted by their best friend, you see. And, funny thing is, their best friend is actually my–oh, what is it? My sister’s cousin-in-law?” Heejun raises his brows skeptically. “Well anyways, we knew each other - kind of - and he insisted that Jimin and Taehyung’s case wasn’t just a suicide.’”
“Then what is it? An almost-successful double murder attempt?” He shoots you a look and you shrug, knowing that a double murder attempt on a college campus is significantly less likely—and plausible—than a double suicide attempt. Heejun crosses his arms.
“I mean, I guess, since besides suicide, there’s no other plausible reason as to why they were both found hanging from the ceiling fan… Thank god Yoongi–that’s their best friend’s name by the way–found them when he did, and the paramedics came when they did, because otherwise those boys would’ve been goners.”
“Well, I wouldn’t be too sure about that. They’re both unresponsive and in critical care. They might be still be goners after all.”
“Have some sensitivity,” you say, and chuck a book at him. He smirks as he straightens up, carefully running a hand through his perfect hair. Prick.
“But seriously, why is that Yoon–Yoonji, was it?–guy so adamant about it being a sort of murder attempt? I can see why the murderer would try to hang them, you know, as a way to fool others into thinking it was a suicide, but what’s the motive? And this was done in a college dorm. Did no one hear any shouting? The walls are pretty thin. The room didn’t seem to show any signs of a struggle, which is weird because this is two full grown men we’re talking about. Not little grade schoolers who will follow you around anywhere ‘long as you got KitKats.”
“KitKats are good,” you say defensively. “But yeah no—that’s what I don’t get either. Who’d want to kill two average, not-rich-but-not-poor college students? What’s there to gain? A higher ranking? A slightly quieter dorm? Was someone jealous that the two of them managed to score a suite? I don’t get it, and Yoongi didn’t have many ideas either, but he vehemently insisted that Jimin and Taehyung would never do that, and that they did not seem to exhibit any signs of depression.”
“And, despite the lack of evidence to back up the claims other than pure intuition, you believed him and are currently studying the case right now.”
“…Yes.”
“On your own free time.”
“…Yes.”
“Please tell me that at least that Yonghi guy or whatever is helping you.”
“Yoongi was actually planning on starting his own investigation, if I hadn’t agreed. So, yes.”
Heejun still continues to look at you judgmentally, so you turn away.
“Well,” he says. “Suit yourself. Don’t forget: we got another briefing at 1.”
“Yeah, yeah.”
//
Friend opened a new shop !
“
So have any of you guys heard of Etsy? I actually didn’t know what it was until one of my friends opened up this like… shop on it. Or at least that’s how he describes it.
Anyways, I went on the website and it looks pretty cool. Kinda like a hipster E-bay and super (SUPER) artsy. My friend asked me to do a promo for him on here, so here it is:
https:/ /www .etsy .com/shop/JoonDaily
He likes to design his clothes and is practically a fashion snob in that respect, but his stuff (I hate to admit it) actually looks really nice… So y’all should go check it out!
”
3 comments
NamsgotJamz commented: Thanks for the shout-out, man. You’re a real     homie.
Guest commented: hey guys this rly worx i just made $89./hr part     time thanks to this check it out —> bit.ly/work@homescam
Pink_mario commented: what the fuck you never told me you were doing     promos, hit me up too. I’ll give you cookies.
The web page buffers for a while before the “no connection” sign comes up. You sigh, tuck your phone back into your pocket. The speeding subway car careens through the tunnel, heading towards Yoongi’s dorm. You check the time—5:06. You’re running a bit late, no thanks to Heejun.
“...the next stop is…”
You get up.
//
“So?” you say. “Come up with any new ideas?”
Yoongi shrugs. He’s still moody as ever—but now there’s this unsettling darkness about him. Determination. Vengeance. Everything brewing just beneath the surface of his pale skin, his lips thinned into a harsh line.
“I visited their dorm yesterday,” he says.
“Oh? How?”
“Got a key.” He flashes it at you before pocketing it. “Tae used to forget his all the time, so I ended up with a copy. Got it illegally replicated, but that’s beside the point.”
“Not sure if you were supposed to tell that to a cop, but okay.”
He gives you a wry smile. “But right now I consider you my partner in crime.”
You shrug. “Sure.”
“Anyways,” he says, brushing past you and towards the door. “I think that, before I say anything, you should go take a look, too. I saw some pretty… interesting things in there.”
Your chest constricts.
//
What I do in my Downtime
“
A few of you guys have been asking about what I do in my freetime/downtime—especially since I keep on telling you all that I have so much more of it now that I’m in college.
Well, most of the time I just sit in my dorm and blog, or I’ll go and hang out with my friends. Or I’ll hit the gym.
Recently, though, I’ve been getting kinda nostalgic for the old days—like, the way old days—so I’ve been kinda playing a few childhood games like Smash and Mario Kart. I actually just downloaded this PC version of Pokemon Emerald from, quite frankly, a sketchy website. I don’t think I got any viruses or anything, though. Hopefully.
So. Anyways. I really encourage people to join clubs—I’m part of a few myself—because they give you a community, and they’re always doing fun stuff so you’re never bored. Don’t be like me, though. Actually attend the meetings and get involved. I mean, I do attend some and such, but like… it’s a lot better to be really involved in one club. That’s when things get super fun, because then you really connect with everyone over that one interest….
In the meantime, you can catch me catching ‘em all…. In Pokemon Emerald (I haven’t started it yet, been kinda busy. But I’ll begin it next week and maybe post about my progress on here?)!
”
2 comments
Guest commented: COME TO THE NEXT MODEL UN MEETING, SLACKER!!!     We’ll kick you from the next conference otherwise >:(
jungl3-c00kie5 commented: wow college sounds lik so much fun. lmao nxt yr     vs me in smash ill shcool u also how much can you benchpress jw
//
“Just before we go in,” you say, “I just wanted to let you know that I brought their file with me.”
Yoongi nods wordlessly and pushes the door open. “Okay.”
“And according to the file, Taehyung was genderfluid.”
“And?” The door squeaks open. Just as the files say, there appear to be no signs of a struggle; it’s disorderly, yes, but nothing seems to be… violently tossed about. No blood on the walls, or scuffs in the paint.
“He was struggling with his sexual identity and appeared to be having trouble coming to terms both with himself and his parents.”
Yoongi looks annoyed. “Look, I know what you’re thinking, but he—he was making it, okay? He was doing well, and we were working on it, and he was slowly just getting his parents to understand.”
“And do you know if he ran into any...problems shortly before his suicide? His parents didn’t tell the cops anything of the sort—but maybe you know?”
“No,” he says bluntly. “I don’t know, but I doubt there wasn’t much of anything. Not when he had so much to live for.”
He leads you into their living room. There are no bodies, but the sense of horror is still in the room, lingering by the ceiling fan. Silently. You and Yoongi both know it and wordlessly move onto their shared bedroom.
“Yoongi,” you say, softly. His back faces you. “I know this might sound a bit… rude but… are you sure you aren’t in… denial?”
He flinches. His fists clench. You steel yourself. And then his fists unclench, and he takes a deep breath.
“Think what you want.”
You chew your bottom lip.
“Come on,” he says, jerking his chin over towards a desk. “I need to show you something.”
He heads over to a laptop, which sits open and blank. It’s been turned off. Yoongi slowly, deliberately pushes it aside, revealing a gray-black skid mark along the cream-colored wall.
“Here,” he says, pointing at the mark. “I was sent over here to help collect the valuables and have them shipped back to their families.”
You nod. “And so what’s so special about this mark?”
“It’s a long story, but in short, I’m 90% sure it’s from the laptop, which means that Jimin—that’s whose desk this is—must’ve like, pushed or thrown this thing against this wall to create such a mark. And like, he’s Jimin. He treasures his computer a lot. Hardly lets anyone touch it and is such a neat freak—like, look. He wipes his keyboard and screen daily. Not a speck of dust. Well, now there is, but before there wouldn’t be.”
Yoongi takes in a deep breath and you urge him to continue. “So he must’ve like, saw something or heard something frightening while on his computer… But I don’t know what. It must’ve been really scary, though.”
“Maybe he was watching horror movies? And this mark could’ve been there before either of them even moved into the apartment. Or it may have appeared during moving. How are you so sure?”
Yoongi shakes his head, slightly frustrated. “Jimin’s a wuss. He wouldn’t do that. And even if he did, he wouldn’t like, throw his computer. One time Jungkook pulled a scare prank on him, and all he did was scream at the screen and back away. This—it’s almost like….” Yoongi shakes his head. “It’s almost like he sensed danger from the computer itself.”
He pauses and meets your skeptical gaze. “Oookay. But that still doesn’t explain how you know that it came from the laptop, and was pretty recent.”
He shrugs. “I’ve done tests. I’ll submit them to you later.”
You narrow your eyes. “Sure, I’ll take a look at them.” You lean in, study the skid mark. Straighten up. “Okay,” you say. “So let’s just go along with this theory you’ve got here. Jimin sees something on his screen, sense his computer is a dangerous object, gets scared, throws and-or pushes it against the wall out of fright. What did he see? And what happens after that? Something crawls from the screen and hangs both him and his roommate?”
Yoongi sighs and deflates slightly. “It sounds ridiculous, doesn’t it?”
You say nothing.
“Hey, you know,” he says. “You said you brought the files, right? Mind if I take a look at them?”
“You’re technically not allowed to,” you reply. “But if it helps us both, then I don’t mind sharing information. You just need to ask for it specifically.”
“Fair enough.”
//
“He had a blog?”
“You know, for someone who claims to be his best friend, I’m very surprised to know that you didn’t know he had one,” you say. “I mean, so many of his other friends did.”
“I mean like, I did, but I thought it was just some kind of hipster-fluffy-animals Tumblr kind of blog, not like, a legit blog!” Yoongi sounds astounded. “Damn.”
“Well, now you know.”
“Hold up,” he says. “Let me—lemme check this out. How many entries have you read up to?”
“There’s only twenty-four. I’ve read through most of them. Want to look at the rest together? The ones at the beginning didn’t really say much at all.’
“Okay.”
He chuckles at the screen as it loads, comments how the layout is “so Jimin.” He visits the Etsy link, blanches, exits. Most of posts are, just as the file says, carefree and loose.
My new Addiction
“
Oh god, I think I’m addicted to Pokemon now. I’ve only just started Emerald and already I’ve got like, 10 hours on the game. Fuck. Thankfully midterms are over but still…
(I even got my roommate hooked LOL)
Anyways, since we’ve already played this game before, my roomie and I are having a race to see who can beat it the fastest. Loser has to do chores for a week and make food. I’ve invested so much money in repellant it’s ridiculous… but hopefully I’ll be able to make it to the Elite Four like, tomorrow. Maybe.
Oh—almost forgot. I don’t know, maybe it’s because it’s a PC version and such, but this copy of the game has got some really cool (and slightly creepy) mods. And glitches. Like some of the music gets played backwards—especially Lavender Town’s. Man, that is creepy as fuck, lol. And what’s really cool, though, is that some of the people you fight against will have more than 6 pokemon. Like, there was this dude who had 10 magikarps LMFAO.
For any of you guys wanting to play this version (some of you have asked me for the download link and I’ll post that later) just know that sometimes Pokemon in your party will get swapped out/go missing… so always make sure to save!
”
2 comments
tea-HYUNG commented: wtf investing in repellant is such a good idea     THANKS FOR THE IDEA MAN NOW GET READY FOR AN ASS WHOOPING TOMORROW BC     GUESS WHOSE GOING TO BEAT HTE ELITE 4 B4 YOU?!!! Thaats rite me ho
jungl3-c00kie5 commented: lul kek
After that, the entries stop. There are no other updates after that date… And, with a twisting feeling in your gut, you note the post was made the day right before his death.
Yoongi knows it too, as his breathing stills for a second and he backs away slightly. “This—this is going to sound kind of crazy,” he says. “But do you think… the game… had anything to do with their deaths?”
“You think this is the thing that Jimin saw?”
“I—I don’t know!”
“It’s literally a rip-off Pokemon game. How… Would this kill them? In any way? And it’s two of them, mind you. Plus, to hang them…” You shake your head. “None of this is making sense. I’m sorry.”
Yoongi doesn’t say anything, just continues to stare at the ground.
“That brings me to another point, Yoongi.” He doesn’t respond, still lost in thought. You gently prod him on the shoulder.
“Yoongi?”
“Hm?” He looks at you from the corner of his eye.
“Can I ask you something?”
“What?” He looks away but this time you know he’s listening.
You take in a breath. “How did you know to go to their place at half-past midnight?”
//
Jimin groans and cracks his neck, flexes his fingers, knocks back a Coke. The taste is getting a bit overly sweet and the fizz is practically gone from sitting out so long, but he drinks it anyway. Outside, the insistent pitter-patter of rainfall threatens to lull him to sleep but he resists, shifting his position. He’s finally made it to the Elite Four, and there’s no way he’s calling it quits now. Not when he’s so close, and when he knows that Taehyung’s also hard at work playing in the living room.
Ah, rivalry. Jimin tips back his near-empty Coke can, tosses it towards the trash can. He misses. Shrugs. He’ll clean that up later—right now, he’s got to focus on beating the game. His PC finally manages to load up the scene, and, unsurprisingly the music is backwards. He rolls his eyes and turns his volume way down; it’s past midnight and he’s really not in the mood for creepy glitches right now.
The battle begins. The first of the Elite Four sends out her Pokemon and the sound it makes is uncharacteristically loud—especially with his volume turned down so low—and strangely, vaguely reminds him of a twisted cry.
It’s hard, no doubt. His Pokemon are pitifully underleveled—a downside to avoiding all possible confrontation and rushing through the game—and he’s only got a few potions and full revives on hand.
“Come on,” Jimin says under his breath. “I need that critical hit—gimme that critical hit, you can do it, I believ—YES!” He jumps up in his seat, ecstatic.
When he gets to Lance, however, Jimin is more than irked. First of all, Lance isn’t supposed to be in this game; the Dragon-type specialist is supposed to be Drake. However, that’s not what’s bothering him—what’s really pissing him off is the fact that all six of the Pokemon in his party have been replaced with unknowns. His annoyance increases when he realizes the unknowns spell out “UR DEAD.”
Seriously? What kind of sick joke was this? This was probably one of those dumb glitches or mods—only this time it came at one of the worst times. He’s practically blanching at the thought of having to restart and fight the other Elites all over again—especially since the main reason why he’s made it so far is purely by chance. And an immense amount of luck.
“Of course I’m dead now,” Jimin hisses at the screen. “All I’ve got are unknowns! You can’t expect me to go into this fight and win, especially since I don’t have Rayquaza with me now…” He glowers angrily at the Pokemon.
Internally, Jimin fights a raging battle. To restart or not to restart? He chews the inside of his cheek.
“Fuck it, ‘m goin’ in.”
He’s probably going to have to restart the game anyway, so he may as well give it a go. Maybe he’ll luck out.
The battle begins, and the music changes.
Lance sends out his first Pokemon—except, to his pure, unadulterated horror, Jimin sees himself and Taehyung. Bloodied and lifeless. The sound the thing unleashes is eerily akin to screams of terror, shrieks of pain. A violent shudder runs down his spine and, throat dry and heart pounding, he shoves his laptop away from himself.
It makes a loud thump against the wall; the screen flickers. Jimin stands up, staring wide-eyed at the screen. When it flickers back again, the image of him and Taehyung is no longer there. In its place is Lance’s signature Dragonite. No blood, no shrieking noises. Just an orange, big-eyed dragon. Jimin blinks, slowly. Was he—was he imagining things?
In the next room he can hear Taehyung curse out loud. He’s fine. It’s okay. He was just seeing things; sleep deprivation does that to you. He knows—he read it in a psych textbook once. Shakily, Jimin sits back down in his chair, carefully drags his laptop towards him.
It’s just a game, he tells himself. And it’s in his computer. Like, what’s it going to do to him? Flash the Blue Screen of Death? He laughs nervously. It’s fine, he’ll be fine, he just needs to finish the game… And then he can go over and gloat to Taehyung and they can laugh about all the dumb glitches. Yeah—that’s right. That’s what’s going to happen.
\\
Thirty minutes later, Jimin stretches back in his seat, a happy—albeit tired—grin on his face. The final Pokemon screeches in defeat before disappearing into the ground. He’s finally beaten the Elite Four—somehow.
With a jump in his step, he triumphantly skips—and almost trips over various objects—to the living room, where he knows Taehyung will be sitting on the couch, PC in his lap, still furiously battling the Elite Four. He’s practically giddy with the thought of getting to see the defeated, disbelieving look on his roommate’s face.
Jimin sucks in a deep breath, grasps the handle, and throws the door open.
“Hey Tae? Guess wha—oh...fuck.”
He stares, horrified, at the shadowy, limp, very Taehyung-shaped body that swings ominously from the ceiling fan.
And then when he feels the foreign touch of fingers—no, those are bones, he realizes—on his shoulder and the brush of a skull against his cheek, he knows that he’s next.
The rough squeeze of the noose and the sudden up-and-down drop from the ceiling fan cut off his screams before they can begin.
Darkness is all that’s left.
//
Yoongi’s silent for a moment. And then, quietly, without moving to catch your eye, “What does the file say?”
You flip it open. “It says that you were going to sleep at their place after coming back from a party. Both because of the proximity and to allow your own roommate some… privacy.”
You look up at him, raise a brow. “But was that all it? The timing is almost impeccable. The coroner said they’d only been strangled for a minute or two before you’d found them. Granted, the nooses weren’t the best, but still.”
“I don’t know,” he says. “I mean, yeah, I was planning to crash at theirs after my roomie told me he was going to take some girl home, but I also felt this thing deep down telling me that something was really, really wrong. Call it a sixth sense or intuition or what—I just really felt a need to check on them.” He pauses, takes in a deep breath. “It sounds suspicious, I know. But just to be clear, I have an alibi.”
You nod. “I know. Otherwise I wouldn’t be so willing to help you.”
He swallows, then gestures at Jimin’s computer. “Um, so, about that game he was playing… He never got around to posting the download link, but I happen to know the password to his computer…”
“You’re planning to play that game?” You put a hand on your hip. “How do you know it’s still on there?”
“I don’t, but it won’t hurt to check.”
“So let me get this straight, Yoongi: you’re saying that this thing is the reason why your friends were found hanging from the ceiling fan? That this was the thing that nearly killed them?” You gesture at the computer.
He shrugs. “I mean, what else do we have?”
“That’s true, but…”
“All that’s left is to play and see. What’s there to lose?” Yoongi shakes the mouse and boots up the PC.
You roll your eyes. Whatever. “Who knows?”
//
Three hours later, and the two of you have yet to encounter any of the glitches that Jimin reported.
“That’s weird,” you say. “Could it be possible he may have been exaggerating them a bit…?”
Yoongi reaches back and scratches his head. “I don’t think so… But at the same time I can’t come up with any other reasonable explanation as to how this is so different…”
You shrug. “I don’t know—maybe giving all that suspense attracted more blog viewers. People do strange things to attract more views, you know. Just saying.”
Yoongi seems reluctant and lost. “Maybe there was something wrong with the wiring that would explain some of the sounds…” He continues to mutter to himself, checking the sides of the PC before picking it up entirely. “But how does the ethernet wire affect the speakers? Maybe I can take it over to the Geek Squad at Best Buy or something…”
You sigh, check the time. “It’s getting late, Yoongi. I’m sorry, but I think I need to go. If you want, we could schedule another meeting next week? I’ll see if I can pull any more information from the servers.”
He nods absentmindedly. “Same place, same time? Wait, no actually, can we do it a bit later? Like, is 7 okay? I know it’s going to be dark and all but…”
“Sure.”
//
The final PokĂŠmon faints, fades away, before the triumphant, happy music comes in. You yawn, stretch back in the chair. Behind you, with his legs crossed and elbows propped on the armrests, Yoongi lounges in his seat, thinking.
“So I guess that confirms it.”
You blink at him. “Confirms what? That I suck at Pokemon? It’s not my fault that you’re so crap at levelling them up—the only one above level 20 is your starter! How the hell am I supposed to fight a team of level 25 Pokemon with this mess?”
“No, not that,” Yoongi says. “And by the way, I don’t normally do that. It’s only that way since I was just messing around—wasn’t taking the game all that seriously.”
“Oh.”
“But anyways, back to the point. I was playing this game on and off through the week, sometimes alone, other times with friends and… I noticed that… the glitches only happened when I was alone…” He looks down. “And…”
“And?”
“And at one point… when one of the guys sent out a Pokemon… I could’ve sworn for a second there that... Instead of a Pokemon, it was a picture of me… except, well, bloodied. Brutally.” Yoongi swallows. “But it quickly disappeared right after a friend of mine walked into the room… Everything went normally after that. But um, I’m really really sure I wasn’t imagining it. I think I’m probably going to post on the forums and see if anyone else experiences something similar… I tried searching for stuff and the original file of this game but not only was I unable to find it, but for some reason the file is locked. Encrypted. I can’t get to it without a password, and I have no idea what it could be. Fortunately, I have a few friends who are heavily involved in cyber, so after we finish examining this game, I was planning to call them and have them help me somehow upload the game onto an online download link so we as a community can post about our experiences and stuff. Y’know?”
He fiddles with his fingers. Your eyes narrow.
“Anyways,” he says, “We should probably finish up with this game anyways. You wanna continue playing or...”
When you don’t answer, he prods you on the shoulder. “Hello?”
“As I thought,” you say, “You’re too dangerous.”
He gives you a confused, slightly suspicious look. “What?” You whip your head around, get out of your seat.
“Nevermind that,” you say, and, quickly, before he can attempt anything, shove a cupcake-shaped stress reliever—it had been sitting on the desk—into his mouth and quickly straddle him, holding his wrists together in one hand with a vice-like grip. He makes incoherent noises as he attempts to fight you off.
“It’s too bad, Yoongi,” you say, as you fumble out the length of rope with your free hand. “If you hadn’t been so adamant about it all, we could’ve avoided this fate. But the thing is you didn’t—you continued to meddle and stick your nose into something that you shouldn’t have. And now, unfortunately, you are going to have to be—well, silenced.” His movements are getting more frantic now.
“Min Yoongi,” you continue, as you swiftly—or as quickly as you can manage with one hand—loop together a noose, “a college student overcome with grief upon losing his two closest friends. After countless hours of research that ultimately led to nothing, he succumbed and hung himself in the very room his late friends took their lives in. How unfortunate.”
You gently place the noose around his neck. He fights hard against you, hands desperately trying to pry themselves from your grip. You giggle.
“That’s not going to work, you see. The undead have much greater strength with the benefit of having no muscle to tire out.” As you speak, a beam of moonlight filters in through the window and reveals you for what you really are: the human skin and flesh disappears under the silvery rays, leaving nothing behind but knotted and rotting bones. A skeleton, with no fingerprints to leave behind or heart to feel emotions.
His struggles stop abruptly as fear overtakes his body. You give him a lopsided grin. “Goodbye, Min Yoongi.”
//
Inside the University Hospital, on the fourth floor, two heart monitors beep. Their slow, mechanical sounds echo off of the walls, seeping through the cracks and diffusing in the stale air. The place smells of antiseptic.
The monitors continue to beep. In unison, the spacing between each sound growing longer and longer until finally, there’s one long, unfaltering beep that continues for nearly a minute.
And then there is nothing at all.
a/n: @goldfishh , after reading this: What The Fuck
helloooo i have a chem test in two days that i know nothing about it’s chill. so. many. projects. holy shit. and then exams starting next week fuuuun
anyways if you watched the video this was based off (it’s hilarious--it’s supposed to be a parody of bad creepypastas) then like. maybe the ending was kinda obvious lol
tbh if it was up to me (like if i weren’t trying to base it off the video) then the ending would have been much different. you, for one, would not have turned into a skeleton lmFAO
157 notes ¡ View notes
riichardwilson ¡ 4 years ago
Text
Smashing Podcast Episode 22 With Chris Coyier: What Is Serverless?
We’re talking about Serverless architectures. What does that mean, and how does it differ from how we might build sites currently? Drew McLellan talks to Chris Coyier to find out.
Today, we’re talking about Serverless architectures. What does that mean, and how does it differ from how we might build sites currently? I spoke to Chris Coyier to find out.
Show Notes
Weekly Update
Transcript
Drew McLellan: He’s a web designer and developer who you may know from CSS-Tricks, a website he started more than 10 years ago and that remains a fantastic learning resource for those building websites. He’s the co-founder of CodePen, the browser based coding playground and community used by front-enders all around the world to share what they make and find inspiration from those they follow. Alongside Dave Rupert is the co-host of ShopTalk Show, a podcast all about making websites. So we know he knows a lot about web development, but did you know he once won a hot dog eating competition using only his charm? My smashing friends, please welcome Chris Coyier. Hello Chris, how are you?
Chris Coyier: Hey, I’m smashing.
Drew: I wanted to talk to you today not about CodePen, and I don’t necessarily want to talk to you about CSS-Tricks, which is one of those amazing resources that I’m sure everyone knows appears right at the top of Google Search results when looking for answers about any web dev question. Up pops your face and there’s a useful blog post written by you or one of your guest contributors.
Chris: Oh, I used to actually do that. There was a… I don’t know, it probably was during the time of when Google had that weird social network. What was that? Google Plus?
Drew: Oh, Plus, yeah.
Chris: Yeah, where they would associate a website with a Plus account, and so my Plus account had an avatar, and the avatar was me, so it would show up in search results. I think those days are gone. I think if you…
Drew: I think so, yeah-
Chris: Yeah.
Drew: But I kind of wanted to talk to you about something that has been a little bit more of a sort of side interest of yours, and that’s this concept of serverless architectures.
Chris: Mm (affirmative).
Drew: This is something you’ve been learning sort of more about for a little while. Is that right?
Chris: Yeah, yeah. I’m just a fan. It seems like a natural fit to the evolution of front-end development, which is where I feel like I have, at least, some expertise. I consider myself much more of a… much more useful on the front-end than the back-end, not that I… I do it all these days. I’ve been around long enough that I’m not afraid of looking at a little Ruby code, that’s for sure. But I prefer the front-end. I’ve studied it more. I’ve participated in projects more at that level, and then along comes this little kind of a new paradigm that says, “You can use your JavaScript skills on the server,” and it’s interesting. You know? That’s how I think of it. There’s a lot more to it than that, but that’s why I care, is because I feel it’s like front-end developers have dug so deep into JavaScript. And now we can use that same skill set elsewhere. Mm, pretty cool.
Drew: Seems like a whole new world has opened up, whereas if you were just a front-end coder… I say, just a front-end coder, I shouldn’t. If you’re a front-end coder, and you’re used to working with a colleague or a friend to help you with the back-end implementation, suddenly that’s opened up. And it’s something that you can manage more of the whole stack yourself.
Chris: Yeah, yeah. That’s it.
Drew: Addressing the elephant in the room, right at the top. We’re talking about serverless, and obviously, naming things is hard. We all know that. Serverless architecture doesn’t mean there are no servers, does it?
Chris: I think it’s mandatory, like if this is the first podcast you’re hearing of it, or in the first… you’re only hearing the word “serverless” in the first dozen times you ever heard it, it’s mandatory that you have a visceral reaction and have this kind of, “Oh, but there are still servers.” That’s okay. If that’s happening to you right now, just know that, that’s a required step in this. It’s just like anything else in life. There’s stages to understanding. The first time you hear something, you’re required to kind of reject it a little bit, and then only after a dozen times or so, or after it’s proven its worth a little bit to you, do you get to enter the further stages of understanding here. But the word has won, so if you’re still fighting against the word “serverless”, I hate to tell you, that the train has left the station there. The word is already successful. You’re not going to win this one. So, sorry.
Chris: But I do think it’s interesting that… it’s starting to be like, maybe there actually aren’t servers involved sometimes. I would think one of the things that locked serverless in as a concept was AWS Lambda. They were kind of the first on the scene. A lambda is like a function that you give to AWS and it puts it in the magical sky and then… it has a URL, and you can hit it and it will run that function and return something if you want it to. You know? That’s just HTTP or whatever. That’s how it works, which… the first time you hear that, you’re like, “Why? I don’t care.” But then, there’s some obvious things to it. It could know my API keys that nobody else has access to. That’s why you run back-end to begin with, is that it knows secret stuff that doesn’t have to be in the JavaScript on the client side. So if it needs to talk to a database, it can do that. It can do that securely without having to expose API keys elsewhere. Or even where that data is or how it gets it, it’s…
Chris: So that’s pretty cool. I can write a function that talks to a database, get some data, returns that. Cool. So, Lambda is that, but AWS works. You have to pick a region. You’re like, “I don’t know. Where it should be, Virginia? Oregon? Should I pick the Australia one? I don’t know.” They have 20, 30. I don’t even know how many they have these days, but even lambdas had regions. They, I think, these days have Lambda@Edge, which means it’s all of the regions, which is kind of cool. But they were first, and now everybody’s got something like Lambda. All the cloud services. They want some kind of service in this world. One of them is CloudFlare. CloudFlare has workers. They have way more locations than AWS has, but they executed it kind of at a different time too… the way a CloudFlare worker… it’s similar to a lambda in that you can run Node. You can run JavaScript. You can run a number of other languages too, but… I think of this stuff largely, the most interesting language is JavaScript, just because of the prevalence of it.
Chris: It happens just at the CDN level, which I guess is a server, but I tend to not think of CDNs as a server. Not as obviously as something else. It’s starting to feel even more serverless-y lately. Is a CDN a server? I mean, I guess it’s a computer somewhere, but it feels like even less server-y.
Drew: It feels like, yes, a CDN may be a server, but it’s the most sort of minimal version of a server. It’s like a thin server, if you like.
Chris: Yeah. Sure.
Drew: All right. I’ve heard it said… I can’t remember the source to credit, unfortunately, but I’ve heard serverless described as being “like using a ride-sharing service like Uber or Lyft” or whatever. You can be carless and not own a car, but that doesn’t mean you never use a car.
Chris: Yeah, it doesn’t mean cars don’t exist. Mm, that’s nice.
Drew: You just summon one when you need it, but at the same time, you’re not paying the upfront purchase cost of a car. You’re not paying maintenance or fuel or-
Chris: Right, and the pricing makes sense, too, right? That’s nice. That’s a nice analogy, I think. And then, because it’s at the CDN level too, it just intercepts HTTP requests that are already happening, which means you don’t ask it… you don’t send a request to it and it sends a request back. It’s just happening during the request naturally, which also makes it feel less server-y. I don’t know, it’s interesting. It’s interesting for sure. So that’s a big deal, though, that you brought up the pricing thing. That you only pay for what you use. That’s significant too, because… let’s say, you’re a back-end dev, who’s used to spinning up servers their whole life. And they run the costs, “I need this kind of server with this kind of memory and this kind of CPU and these kind of specs. And this is how much it’s going to cost.” Serverless comes along and chops the head off of that pricing.
Chris: So, even if you’re a back-end dev who just doesn’t like this that much, that they’re just not into it, like your skill set is just what it is over the years, you compare the price and you’re like, “What? I could be paying 1% of what I was paying before?” You are not allowed to not care about that, right? If you’re this back-end dev that’s paying a hundred times more for their service than they need to be paying, you’re just kind of bad at your job then. Sorry to say. This has come along and this has shattered pricing in a lot of ways. You have to care about that. And it’s kind of cool that somebody else is… It’s not like you don’t have to worry about security at all, but it’s not your server. You don’t have… your lambda or cloud function, or your worker, or whatever, isn’t sitting on a server that’s right next to some really sensitive data on your own network. It’s not right next to your database.
Chris: If somebody writes code that somehow tries to eject itself from the worker or the lambda, or whatever, and try to get access to other things in their way, there’s nothing there to get. So the security’s a big deal too, so again, if that’s your job as the server admin, is to deal with the security of this thing. Running it, running certain things in Lambda, you just get some natural security from it, which is great. So, it’s way cheaper. It’s way more secure. It encourages these small modular architecture, which can be a good idea. It seems to be domino after domino of good ideas here. That’s why it’s notable. You know?
Drew: Yeah, I mean, traditionally with a server based architecture that we’ve been running for decades on the web, you have a web server that you run yourself. It holds your front-end code, your back-end code, your database and everything. Then you need to maintain that and keep it running and pay the bills, and even if it’s not being used, it’s there clocking up bills. The user would make a request and it would build all that HTML query stuff from the database, send it all down the line to the browser. That process works. It’s how loads of things are built. It’s probably the majority of how the web is built. It’s how things like WordPress work. Is this really a problem that we need to solve? I mean, we’ve talked about costs a little bit. What are the other sort of problems with that, that we’re… that we need to address, and that serverless might help us with?
Chris: Yeah, the problems with the old school approach. Yeah, I don’t know, maybe there isn’t any. I mean, I’m not saying the whole web needs to change their whole… the whole thing overnight. I don’t know. Maybe it doesn’t really, but I think it opens up doors. It just seems like, when good ideas arrive like this, they just slowly change how the web operates at all. So, if there’s some CMS that is built in some way that expects a database to be there, it means that maybe the hosts of the future will start leveraging this in interesting ways. Maybe it feels to you like it’s still just a traditional server, but the hosts themselves have farmed it out, how they operate, to serverless architectures. So you don’t even really know that that’s happening, but they’ve found a way to slash their costs by hosting the stuff that you need in serverless ways. Maybe yeah don’t even need to care as a developer, but at a meta level, that’s what’s happening. Maybe. I don’t know.
Chris: It also doesn’t mean that… Databases are still there. If it turns out that architecturally having a relational database is the correct way to store that data, great. I mention that because this world of Serverless is kind of growing up at the same time that JAMstack is. And JAMstack is this architecture that’s, “You should be serving your website off of static hosts, that run nothing at all except for…” They’re like little CDNs. They’re like, “I can do nothing. I don’t run PHP. I don’t run Ruby. I run nothing. I run on a tiny little web server that’s just designed to serve static files only.”
Chris: “And then, if you need to do more than that, if you need to pull data from a relational database, then please do it at some other time, not at the server time. You can either do it in a build process ahead of time, and pull that stuff out of the database, pre-build static files and I’ll serve those, or do it at runtime.” Meaning you get this shell of a document, and then it makes a JavaScript request to get some data and prefills it then. So you do it ahead of time or after time, but it doesn’t mean, “Don’t use a relational database.” It just means, “Don’t have the server generate it at the time of the request of the document,” which is a… I don’t know, it’s a little bit of a paradigm shift.
Chris: It’s not just JAMstack either. We’re also living in the time of JavaScript frameworks. We’re living in a time where it’s starting to be a little more expected that the way that a JavaScript application boots up, is that it mounts some components, and as those components mount, it asks for the data that it needs. And so, it can be kind of a natural fit for something like a React website to be like, “Well, I’ll just hit a serverless function to cough up the data that it needs. It hits some JSON API essentially. I get the JSON data that I need and I construct myself out of that data, and then I render onto the page.” Now, whether that’s good or bad for the web, it’s like, “I don’t know. Too bad. Ship has sailed. That’s how a lot of people are building sites.” It’s just client rendered things. So, serverless and modern JavaScript kind of go hand in hand.
Drew: I suppose you don’t have to wholesale… be looking at one architecture or another. There’s an area in the middle where parts of an infrastructure might be more traditional and parts could be serverless, I’m guessing?
Chris: Yeah. Well, they’re trying to tell you that anyway. Anybody that wants to sell you any part of their architecture is like, “You don’t have to buy in all right now. Just do it a little bit.” Because of course, they want you to dip your toe into whatever they’re selling, because once you dip the toe, the chances that you splash yourself into the pool is a lot higher. So, I think that… it’s not a lie, though, necessarily, although I find a little less luck in… I don’t want my stack to be a little bit of everything. I think there’s some technical death there that I don’t always want to swallow.
Drew: Mm (affirmative).
Chris: But it’s possible to do. I think the most quoted one is… let’s say I have a site that has an eCommerce element to it, which means… and let’s say large scale eCommerce, so 10,000 products or something, that this JAMstack architecture hasn’t gotten to the point where that’s always particularly efficient to rebuild that statically. So, the thinking goes, “Then don’t.” Let that part kind of hydrate naturally with… hit serverless functions and get the data that it needs, and do all that. But the rest of the site, which isn’t… there’s not as many pages, there’s not as much data, you could kind of pre-render or whatever. So a little bit of both.
Drew: Of course, plenty of people are dealing with legacy systems that… some old database thing that was built in the 2000s that they may be able to stick a sort of JSON API layer on top of…
Chris: Yeah.
Drew: … and build something more modern, and perhaps serverless, and then still interact with those legacy systems by sort of gluing it altogether in a weird way.
Chris: Yeah. I like that though, isn’t it? Aren’t… most websites already exist. How many of us are totally green-fielding websites? Most of us work on some crap that already exists that needs to be dragged into the future for some reason, because I don’t know, developers want to work faster, or you can’t hire anybody in COBOL anymore, or whatever the story is. You know?
Drew: So terminology wise, we’re talking about JAMstack which is this methodology of running a code pretty much in the browser, serving it from a CDN. So, not having anything dynamic on the server. And then when we talk about serverless, we’re talking about those small bits of functionality that run on their server somewhere else. Is that right? That we were talking about these cloud function kind of-
Chris: Yeah, I mean, they just happen to be both kind of hot ideas right now. So it’s kind of easy to talk about one and talk about the other. But they don’t necessarily need to be together. You could run a JAMstack site that has nothing to do with serverless anything. You’re just doing it, you just pre-build the site and run it, and you can use serverless without having to care about JAMstack. In fact, CodePen does nothing JAMstack at all. Not that we want to talk about CodePen necessarily, but it’s a Ruby on Rails app. It runs on a whole bunch of AWS EC2 instances and a variety of other architecture to make it happen. But we use serverless stuff whenever we can for whatever we can, because it’s cheap and secure, and just a nice way to work. So, no JAMstack in use at all but serverless all over the place.
Drew: That’s quite interesting. What sort of tasks are you putting serverless to on CodePen?
Chris: Well, there’s a whole bunch of things. One of them is, I think, hopefully fairly obvious is, I need… the point of CodePen is that you write each HTML, CSS and JavaScript in the browser and it renders it in front of you, right? But you can pick pre-processor languages as well. Let’s say you like Sass. You turn Sass on in the CSS, and you write Sass. Well, something has to process the Sass. These days, Sass is written in Dart or something.
Chris: Theoretically, you could do that in the client. But these libraries that do pre-processing are pretty big. I don’t think I want to ship the entire Sass library to you, just to run that thing. I don’t want to… it’s just not, that’s not the right architecture for this necessarily. Maybe it is down the road, I mean, we could talk about offline crap, yada, yada, Web Workers. There’s a million architectural things we could do. But here’s how it does work now, is there’s a lambda. It processes Sass. It has one tiny, tiny, tiny, little job.
Chris: You send it this blob of Sass and it sends you stuff back, which is the processed CSS, maybe a site map, whatever. It has one tiny little job and we probably pay for that lambda, like four cents or something. Because lambdas are just incredibly cheap and you can hammer it too. You don’t have to worry about scale. You just hit that thing as much as you want and your bill will be astonishingly cheap. There is moments where serverless starts to cross that line of being too expensive. I don’t know what that is, I’m not that master of stuff like that. But generally, any serverless stuff we do, we basically… all nearly count as free, because it’s that cheap. But there’s one for Sass. There’s one for Less. There’s one for Babbel. There’s one for TypeScript. There’s one for… All those are individual lambdas that we run. Here’s some code, give it to the lambda, it comes back, and we do whatever we’re going to do with it. But we use it for a lot more than that, even recently.
Chris: Here’s an example. Every single Pen on CodePen has a screenshot. That’s kind of cool, right? So, the people make a thing and then we need a PNG or a JPEG, or something of it, so that we can… that way when you tweet it, you get the little preview of it. If you share it in Slack, you get the little preview of it. We use it on the website itself to render… instead of an iframe, if we could detect that the Pen isn’t animated, because an iframe’s image is much lighter, so why not use the image? It’s not animated anyway. Just performance gains like that. So each of those screenshots has a URL to it, obviously. And we’ve architected it so that that URL is actually a serverless function. It’s a worker. And so, if that URL gets hit, we can really quickly check if we’ve already taken that screenshot or not.
Chris: That’s actually enabled by CloudFlare Workers, because CloudFlare Workers are not just a serverless function, but they have a data store too. They have this thing called key-value store, so the ID of that, we can just check really quick and it’ll be, “True or false, do you have it or not?” If it’s got it, it serves it. And it serves it over CloudFlare, which is super fast to begin with. And then gives you all this ability too. Because it’s an image CDN, you can say, “Well, serve it in the optimal format. Serve it as these dimensions.” I don’t have to make the image in those dimensions. You just put the dimensions in the URL and it comes back as that size, magically. So that’s really nice. If it doesn’t have it, it asks another serverless function to make it really quick. So it’ll make it and then it’ll put it in a bucket somewhere… because you have to have a origin for the image, right? You have to actually host it somewhere usually. So we put it in an S3 bucket real quick and then serve it.
Chris: So there’s no queuing server, there’s no nothing. It’s like serverless functions manage the creation, storage and serving of these images. And there’s like 50 million or 80 million of them or something. It’s a lot, so it handles that as scale pretty nicely. We just don’t even touch it. It just happens. It all happens super fast. Super nice.
Drew: I guess it… well, a serverless function is ideally going to suit a task that needs very little knowledge of state of things. I mean, you mentioned CloudFlare’s ability to store key-value pairs to see if you’ve got something cached already or not.
Chris: Yeah. That’s what they’re trying to solve, though, with those. Those key-value pairs, is that… I think that traditionally was true. They’re like, “Avoid state in the thing,” because you just can’t count on it. And CloudFlare Workers are being like, “Yeah, actually, you can deal with state, to some degree.” It’s not as fancy as a… I don’t know, it’s key values, so it’s a key in a value. It’s not like a nested, relational fancy thing. So there’s probably some limits to that. But this is baby days for this. I think that stuff’s going to evolve to be more powerful, so you do have some ability to do some state-like stuff.
Drew: And sometimes the limitation, that sort of limited ability to maintain state, or the fact that you have no… you want to maintain no state at all, kind of pushes you into an architecture that gives you this sort of… Well, when we talk about the software philosophy of “Small Pieces Loosely Joined”, don’t we?
Chris: Mm (affirmative).
Drew: Where each little component does one thing and does it well. And doesn’t really know about the rest of the ecosystem around it. And it seems that really applies to this concept of serverless functions. Do you agree?
Chris: Yeah. I think you could have a philosophical debate whether that’s a good idea or not. You know? I think some people like the monolith, as it were. I think there’s possible… there’s ways to overdo this and to make too many small parts that are too hard to test altogether. It’s nice to have a test that’s like, “Oh, I wonder if my Sass function is working. Well, let’s just write a little test for it and make sure that it is.” But let’s say, what matters to the user is some string of seven of those. How do you test all seven of them together? I think that story gets a little more complicated. I don’t know how to speak super intelligently to all that stuff, but I know that it’s not necessarily that, if you roll with all serverless functions that’s automatically a better architecture than any other architecture. I like it. It reasons out to me nicely, but I don’t know that it’s the end-all be-all of all architectures. You know?
Drew: To me, it feels extremely web-like, in that… this is exactly how HTML works, isn’t it? You deliver some HTML and the browser will then go and fetch your images and fetch your JavaScript and fetch your CSS. It seems like it’s an expansion of that –
Chris: It’s nice.
Drew: … sort of idea. But, one thing we know about the web, is it’s designed to be resilient because network’s fragile.
Chris: Mm (affirmative).
Drew: How robust is the sort of serverless approach? What happens if something… if one of those small pieces goes away?
Chris: That would be very bad. You know? It would be a disaster. Your site would go down just like any other server, if it happens to go down, I guess.
Drew: Are there ways to mitigate that, that are particularly –
Chris: I don’t know.
Drew: … suited to this sort of approach, that you’ve come across?
Chris: Maybe. I mean, like I said, a really super fancy robust thing might be like… let’s say you visit CodePen and let’s say that there’s a JavaScript implementation of Sass and we noticed that you’re on a fairly fast network and that you’re idle right now. Maybe we’ll go grab that JavaScript and we’ll throw it in a service worker. Then, if we detect that the lambda fails, or something, or that you have this thing installed already, then we’ll hit the service worker instead of the lambda, and service workers are able to work offline. So, that’s kind of nice too. That’s interesting. I mean, they are the same language-ish. Service workers are JavaScript and a lot of Cloud functions are JavaScript, so there’s some… I think that’s a possibility, although that… it’s just, that’s some serious technical that… It just scares me to have this chunk of JavaScript that you’ve delivered to how many thousands of user, that you don’t necessarily know what they have, and what version of it they have. Eww, but that’s just my own scarediness. I’m sure some people have done a good job with that type of thing.
Chris: I actually don’t know. Maybe you know some strategies that I don’t, on resiliency of serverless.
Drew: I guess there’s a failure mode, a style of failure, that could happen with serverless functions, where you run a function once and it fails, and you can run it a second time immediately afterwards and it would succeed, because it might hit a completely different server. Or whatever the problem was, when that run may not exist on a second request. The issues of an entire host being down is one thing, but maybe there are… you have individual problems with the machine. You have a particular server where its memory has gone bad, and it’s throwing a load of errors, and the first time you hit it, it’s going to fail. Second time, that problem might have been rooted around.
Chris: Companies that tend to offer this technology, you have to trust them, but they also happen to be the type of companies that… this is their pride. This is the reason why people use them is because they’re reliable. I’m sure people could point to some AWS outages of the past, but they tend to be a little rare, and not super common. If you were hosting your own crap, I bet they got you beat from an SLA percentage kind of level. You know? So it’s not like, “Don’t build in a resilient way,” but generally the type of companies that offer these things are pretty damn reliable. The chances of you going down because you screwed up that function are a lot higher than because their architecture is failing.
Drew: I suppose, I mean, just like anything where you’re using an API or something that can fail, is just making sure you structure your code to cope with that failure mode, and to know what happens next, rather than just throwing up an error to the user, or just dying, or what have you. It’s being aware of that and asking the user to try again. Or trying again yourself, or something.
Chris: Yeah, I like that idea of trying more than once, rather than just being, “Oh no. Fail. Abort.” “I don’t know, why don’t you try again there, buddy?”
Drew: So I mean, when it comes to testing and development of serverless functions, sort of cloud functions, is that something that can be done locally? Does it have to be done in the cloud? Are there ways to manage that?
Chris: I think there are some ways. I don’t know if the story is as awesome. It’s still a relatively new concept, so I think that that gets better and better. But from what I know, for one thing, you’re writing a fairly normal Node function. Assuming you’re using JavaScript to do this, and I know that on Lambda specifically, they support all kinds of stuff. You can write a fricking PHP Cloud Function. You can write a Ruby Cloud Function. So, I know I’m specifically talking about JavaScript, because I have a feeling that most of these things are JavaScript. Even no matter what language it is, I mean, you can go to your command line locally and execute the thing. Some of that testing is… you just test it like you would any other code. You just call the function locally and see if it works.
Chris: It’s a little different story when you’re talking about an HTTP request to it, that’s the thing that you’re trying to test. Does it respond to the request properly? And does it return the stuff properly? I don’t know. The network might get involved there. So you might want to write tests at that level. That’s fine. I don’t know. What is the normal story there? You spin up some kind of local server or something that serves it. Use Postman, I don’t know. But there’s… Frameworks try to help too. I know that the serverless “.com”, which is just terribly confusing, but there’s literally a company called Serverless and they make a framework for writing the serverless functions that helps you deploy them.
Chris: So if you like NPM install serverless, you get their framework. And it’s widely regarded as very good, because it’s just very helpful, but they don’t have their own cloud or whatever. You write these and then it helps you get them to a real lambda. Or it might work with multiple cloud providers. I don’t even know these days, but their purpose of existing is to make the deployment story easier. I don’t know what… AWS is not renowned for their simplicity. You know? There’s all this world of tooling to help you use AWS and they’re one of them.
Chris: They have some kind of paid product. I don’t even know what it is exactly. I think one of the things they do is… the purpose of using them is for testing, is to have a dev environment that’s for testing your serverless function.
Drew: Yeah, because I guess, that is quite a big part of the workflow, isn’t it? If you’ve written your JavaScript function, you’ve tested it locally, you know it’s going to do the job. How do you actually pick which provider it’s going to go into and how do you get it onto that service? Now, I mean, that’s a minefield, isn’t it?
Chris: Yeah. I mean, if you want to use no tooling at all, I think they have a really… like AWS, specifically, has a really rudimentary GUI for the thing. You can paste the code in there and hit save and be like, “Okay, I guess it’s live now.” That’s not the best dev story, but I think you could do it that way. I know CloudFlare workers have this thing called Wrangler that you install locally. You spin it up and it spins up a fake browser on the top and then dev tools below. Then you can visit the URL and it somehow intercepts that and runs your local cloud function against it. Because one of the interesting things about workers is… you know how I described how it… you don’t hit a URL and then it returns stuff. It just automatically runs when you… when it intercepts the URL, like CDN style.
Chris: So, one of the things it can do is manipulate the HTML on the way through. The worker, it has access to the complete HTML document. They have a jQuery-esque thing that’s like, “Look for this selector. Get the content from it. Replace it with this content. And then continue the request.” So you can mess with code on the way through it. To test that locally, you’re using their little Wrangler tool thing to do that. Also, I think the way we did it was… it’s also a little dangerous. The second you put it live, it’s affecting all your web traffic. It’s kind of a big deal. You don’t want to screw up a worker. You know? You can spin up a dev worker that’s at a fake subdomain, and because it’s CloudFlare, you can… CloudFlare can just make a subdomain anyway. I don’t know. It’s just kind of a nice way to do a… as you’re only affecting sub-domain traffic, not your main traffic yet. But the subdomain’s just a mirror of a production anyway, so that’s kind of a… that’s a testing story there.
Chris: It brings up an interesting thing, though, to me. It’s like… imagine you have two websites. One of them is… for us it’s like a Ruby on Rails app. Whatever. It’s a thing. But we don’t have a CMS for that. That’s just like… it’s not a CMS, really. I think there’s probably Ruby CMSs, but there’s not any renowned ones. You know? It seems like all the good CMSs are PHP, for some reason. So, you want a quality CMS. Drew, you’ve lived in the CMS market for a long time –
Drew: Absolutely.
Chris: … so you know how this goes. Let’s say you want to manage your sites in Perch or whatever, because it’s a good CMS and that’s the proper thing to use to build the kind of pages you want to build. But you don’t want to run them on the same server. Unless you want to manage the pages on one site, but show them on another site. Well, I don’t know, there’s any number of ways to do that. But one JavaScript way could be, “Okay, load the page. There’s an empty div there. Run some JavaScript. Ask the other site for the content of that page and then plunk it out on the new page.” That’s fine, I guess, but now you’re in a client side rendered page. It’s going to be slow. It’s going to have bad SEO Company, because… Google will see it eventually, but it takes 10 days or something. It’s just a bad story for SEO Company. It’s not very resilient, because who knows what’s going to happen in the network. It’s not the greatest way to do this kind of “content elsewhere, content on site B, show page of site A”, situation.
Chris: You could also do it on the server side, though. Let’s say you had… Ruby is capable of granting a network request too, but that’s even scarier because then if something fails on the network, the whole page could die or something. It’s like a nervous thing. I don’t love doing that either. But we did this just recently with a worker, in that we… because the worker’s JavaScript, it can make a fetch request. So, it fetches site A, it finds this div on the page, and then it goes and asks site B for the content. Gets the content. Plugs it into that div, and serves the page before it gets anything. So it looks like a server rendered page, but it wasn’t. It all happened at the… on the edge, at the worker level, at the serverless level.
Chris: So it’s kind of cool. I think you can imagine a fetch request on the browser probably takes, I don’t know, a second and a half or something. It probably takes a minute to do it. But because these are… site B is hosted on some nice hosting and Cloudflare has some… who knows what kind of super computers they use to do it. They do. Those are just two servers talking to each other, and that fetch request happens just so super duper, duper fast. It’s not limited to the internet connection speed of the user, so that little request takes like two milliseconds to get that data. So it’s kind of this cool way to stitch together a site from multiple sources and have it feel like, and behave like, a server rendered page. I think there’s a cool future to that.
Drew: Are there any sort of conventions that are sort of springing up around serverless stuff. I’m sort of thinking about how to architect things. Say I’ve got something where I want to do two sort of requests to different APIs. I want to take in a postal address and geocode it against one, and then take those coordinates and send that to a florist who’s going to flower bomb my front yard or something. How would you build that? Would you do two separate things? Or would you turn that into one function and just make the request once from the browser?
Chris: Mm (affirmative). That’s a fascinating question. I’d probably have an architect function or something. One function would be the one that’s in charge of orchestrating the rest of them. It doesn’t have to be, your website is the hub and it only communicates to this array of single sources. Serverless functions can talk to other serverless functions. So I think that’s somewhat common to have kind of an orchestrator function that makes the different calls and stitches them together, and returns them as one. I think that is probably smart and faster, because you want servers talking to servers, not the client talking to a whole bunch of servers. If it can make one request and get everything that it needs, I think that’s probably generally a good idea-
Drew: Yeah, that sounds smart. Yep.
Chris: But I think that’s the ultimate thing. You get a bunch of server nerds talking, they’ll talk about the different approaches to that exact idea in 10 different ways.
Drew: Yeah. No, that sounds pretty smart. I mean, you mentioned as well that this approach is ideal if you’re using APIs where you’ve got secret information. You’ve got API keys or something that you don’t want to live in the client. Because I don’t know, maybe this florist API charges you $100 dollars every time flower bomb someone.
Chris: Easily.
Drew: You can basically use those functions to almost proxy the request and add in the secret information as it goes, and keep it secret. That’s a viable way to work?
Chris: Yeah, yeah. I think so. I mean, secrets are, I don’t know, they’re interesting. They’re a form of buy in I think to whatever provider you go with, because… I think largely because of source control. It’s kind of like, you could just put your API key right in the serverless function, because it’s just going to a server, right? You don’t even have to abstract it, really. The client will never see that code that executes, but in order for it to get there, there’s probably a source control along the way. It’s probably like you commit to master, and then master… then some kind of deployment happens that makes that thing go to the serverless function. Then you can’t put your API key in there, because then it’s in the repo, and you don’t put your API keys in repos. That’s good advice. Now there’s stuff. We’ve just done… at CodePen recently, we started using this git-crypt thing, which is an interesting way to put keys safely into your repos, because it’s encrypted by the time anybody’s looking at that file.
Chris: But only locally they’re decrypted, so they’re useful. So it’s just kind of an interesting idea. I don’t know if that helps in this case, but usually, cloud providers of these things have a web interface that’s, “Put your API keys here, and we’ll make them available at runtime of that function.” Then it kind of locks… it doesn’t lock you in forever but it kind of is… it’s not as easy to move, because all your keys are… you put in some input field and some admin interface somewhere.
Drew: Yeah, I think that’s the way that Netlify manage it.
Chris: They all do, you know?
Drew: Yeah. You have the secret environment variables that you can set from the web interface. That seems to work quite nicely.
Chris: Yeah, right. But then you got to leave… I don’t know, it’s not that big of a deal. I’m not saying they’re doing anything nefarious or anything. How do you deal with those secrets? Well, it’s a hard problem. So they kind of booted it to, I don’t know, “Just put them in this input field and we’ll take care of it for you, don’t worry about it.”
Drew: Is there anything that you’ve seen that stands out as an obvious case for things that you can do with serverless, that you just couldn’t do with a traditional kind of serverfull approach? Or is it just taking that code and sort of almost deploying it in a different way?
Chris: It’s probably mostly that. I don’t know that it unlocks any possibility that you just absolutely couldn’t run it any other way. Yeah, I think that’s a fair answer, but it does kind of commoditize it in an interesting way. Like, if somebody writes a really nice serverless function… I don’t know that this exists quite yet, but there could kind of a marketplace, almost, for these functions. Like, I want a really good serverless function that can take a screenshot. That could be an open source project that lots of eyeballs around, that does a tremendously good job of doing it and solves all these weird edge cases. That’s the one I want to use. I think that’s kind of cool. You know? That you can kind of benefit from other people’s experience in that way. I think that will happen more and more.
Drew: I guess it’s the benefit that we talked about, right at the top, of enabling people who write JavaScript and may have written JavaScript only for the front-end, to expand and use those skills on the back-end as well.
Chris: Yeah, yeah. I think so, I think that’s… because there’s moments like… you don’t have to be tremendously skilled to know what’s appropriate and what’s not for a website. Like, I did a little tutorial the other week, where there was this glitch uses these… when you save a glitch, they give you a slug for your thing that you built, that’s, “Whiskey, tango, foxtrot. 1,000.” It’s like a clever little thing. The chances of it being unique are super high, because I think they even append a number to it or something too. But they end up being these fun little things. They open source their library that has all those words in it, but it’s like a hundred, thousands of words. The file is huge. You know? It’s megabytes large of just a dictionary of words. You probably learn in your first year of development, “Don’t ship a JavaScript file that’s megabytes of a dictionary.” That’s not a good thing to ship. You know? But Node doesn’t care. You can ship hundreds of them. It’s irrelevant to the speed on a server.
Drew: Yeah.
Chris: It doesn’t matter on a server. So, I could be like, “Hmm, well, I’ll just do it in Node then.” I’ll have a statement that says, “Words equal require words,” or whatever, and a note at the top, “Have it randomize a number. Pull it out of the array and return it.” So that serverless function is eight lines of code with a packaged@JSON that pulls in this open source library. And then my front-end code, there’s a URL to the serverless function. It hits that URL. The URL returns one word or a group of words or whatever. You build your own little API for it. And now, I have a really kind of nice, efficient thing. What was nice about that is, it’s so simple. I’m not worried about the security of it. I don’t… you know?
Chris: It’s just… a very average or beginner JavaScript developer, I think, can pull that off, which is cool. That’s an enabling thing that they didn’t have before. Before, they were like, “Well, here’s a 2MB array of words.” “Oh, I can’t ship that to the client.” “Oh, you’ll just shut down then.” You might hit this wall that’s like, “I just can’t do that part then. I need to ask somebody else to help me with that or just not do it or pick more boring slugs or some…” It’s just, you have to go some other way that is a wall to you, because you couldn’t do it. And now, you’re, “Oh, well, I’ll just…” Instead of having that in my script slash, or in my source slash scripts folder, I’ll put it in my functions folder instead.
Chris: You kind of like moved the script from one folder to the other. And that one happens to get deployed as a serverless function instead. How cool is that? You know? You’re using the same exact skill set, almost. There’s still some rough edges to it, but it’s pretty close.
Drew: It’s super cool. You’ve put together a sort of little micro site all about these ideas, haven’t you?
Chris: Yeah. I was a little early to the game. I was just working on it today, though, because… it gets pull requests. The idea… well, it’s at serverless.css-tricks.com and… there’s a dash in CSS-Tricks, by the way. So it’s a subdomain of CSS-Tricks, and I built it serverlessly too, so this is… CSS-Tricks is like a WordPress site, but this is a static site generator site. All the content of it is in the GitHub repo, which is open-source. So if you want to change the content of the site, you can just submit a poll request, which is nice because there’s been a hundred or so of those over time. But I built all the original content.
Drew: It’s a super useful place, because it lists… If you’re thinking, “Right, I want to get started with serverless functions,” it lists all the providers who you could try it and…
Chris: That’s all it is, pretty much, is lists of technology. Yeah.
Drew: Which is great, because otherwise, you’re just Googling for whatever and you don’t know what you’re finding. Yeah, it’s lists of API providers that help you do these sorts of things.
Chris: Forms is one example of that, because… so the minute that you choose to… let’s say, you’re going to go JAMstack, which I know that’s not necessarily the point of this, but you see how hand in hand they are. All of a sudden, you don’t have a PHP file or whatever to process that form with. How do you do forms on a JAMstack site? Well, there’s any number of ways to do it. Everybody and their sister wants to help you solve that problem, apparently. So I think if I was the inventor of the word JAMstack, so they try to help you naturally, but you don’t have to use them.
Chris: In fact, I was so surprised putting this site together. Let’s see. There’s six, nine, twelve, fifteen, eighteen, twenty one, twenty two services out there, that want to help you serverlessly process your forms on this site right now. If you want to be the 23rd, you’re welcome to it, but you have some competition out there. So the idea behind this is that you write a form in HTML, like literally a form element. And then the action attribute of the form, it can’t point anywhere internally, because there’s nothing to point to. You can’t process, so it points externally. It points to whatever they want you to point it to. They’ll process the form and then they tend to do things that you’d expect them to, like send an email notification. Or send a Slack thing. Or then send it to Zapier and Zapier will send it somewhere else. They all have slightly different feature sets and pricing and things, but they’re all trying to solve that problem for you, like, “You don’t want to process your own forms? No problem. We’ll process it for you.”
Drew: Yeah, it’s a super useful resource. I’d really recommend everyone check it out. It’s serverless.css-tricks.com. So, I’ve been learning all about serverless. What have you been learning about lately, Chris?
Chris: Well, I’m still very much in this world too and learning about serverless stuff. I had an idea to… I used to play this online role playing game ages ago. I just recently discovered that it’s still alive. It’s a text based medieval fantasy kind of game. I played it when AOL was a thing, because AOL wanted to have these games that you had to be logged on to play it, because they wanted you to spend hours and hours on AOL, so they could send you these huge bills, which was, I’m sure, why they did so well at some point.
Drew: So billing by the second. Yeah.
Chris: Yeah. So games was big for them. If they could get you playing games with other people on there. So this game kind of… it didn’t debut there, but it moved to AOL, because I’m sure they got a juicy deal for it, but it was so… I mean, it’s just, couldn’t possibly be nerdier. You’re a dwarven mage and you get rune staff from your leather sheath. And you type commands into it like a terminal. Then the game responds to you. I played that game for a very long time. I was very into it. I got into the community of it and the spirit of it. It was kind of a… it was like I was just alone by myself at my computer, but yet I look back on that time in my life, and be like, “That was a wonderful time in my life.” I was really… I just liked the people and the game and all that. But then I grew up and stopped playing it, because life happens to you.
Chris: I only found out recently, because somebody started doing a podcast about it again… I don’t know how I came across it, but I just did. I was like, “This game is alive and well in today’s world, are you kidding me? This text based thing.” And I was more than happy to reactivate and get my old characters back and play it. But only to find out that the clients that they have you download for this game, haven’t evolved at all. They are awful. They almost assume that you’re using Windows. There’s just these terribly cheesy poorly rendering… and it’s text based, you think it’d at least have nice typography. No. So I’m like, “I could be involved. I could write a client for this game. Put beautiful typography in it.” Just modernize the thing, and I think the players of the game would appreciate it, but it felt overwhelming to me. “How can I do it?” But I find some open source projects. One of them is like… you can play the game through an actual terminal window, and it uses some open source libs to kind of make a GUI out of a terminal window.
Drew: Really?
Chris: I don’t know. So that was kind of cool. I was like, “If they wrote that, there must be code in there to how to connect to the game and get it all going and stuff. So at least I have some starter code.” I was trying to go along the app, “Maybe I’ll do it in Flutter or something,” so the final product app would work on mobile phones and, “I could really modernize this thing.” But then I got overwhelmed. I was like, “Ah, this is too big a… I can’t. I’m busy.” But I found another person who had the same idea and they were way further along with it, so I could just contribute on a design level. And it’s been really fun to work on, but I’ve been learning a lot too, because it’s rare for me to jump into a project that’s somebody else’s baby, and I’m just contributing to a little bit, and that has totally different technology choices than I would have ever picked.
Chris: It’s an Electron app. They picked that, which is also kind of a cool way to go too, because it’s my web skills… so I’m not learning anything too weird, and it’s cross-platform, which is great. So, I’ve been learning a lot about Electron. I think it’s fun.
Drew: That’s fascinating. It’s always amazing how little side projects and things that we do for fun, end up being the place where we sometimes learn the most. And learn skills that can then feed back into our sort of daily work.
Chris: That’s the only way I learn things. I’m dragged into something that… I was like, “They’re not…” It’s rendered with a JavaScript library called Mithril, which is… I don’t know if you’ve ever heard of it, but it’s weird. It’s not… it’s almost like writing React without JSX. You have to “create element” and do all these… but it’s supposed to benchmark way better than it… And it actually kind of matters because in this text based game, the text is just flying. There’s a lot of data manipulation, which is like… you’d think this text based game would be so easy for a browser window to run, but it’s actually kind of not. There’s so much data manipulation happening, that you really have to be really… we have to be conscientious about the speed of the rendering. You know?
Drew: That’s fascinating-
Chris: Pretty cool.
Drew: Yeah. If you, dear listener, would like to hear more from Chris, you can find him on Twitter, where he’s @chriscoyier. Of course, CSS-Tricks can be found at css-tricks.com and CodePen at codepen.io. But most of all, I recommend that you subscribe to the ShopTalk Show podcast if you haven’t already done so, at shoptalkshow.com. Thanks for joining us today, Chris. Do you have any parting words?
Chris: Smashingpodcast.com. I hope that’s the real URL.
(il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/smashing-podcast-episode-22-with-chris-coyier-what-is-serverless/ source https://scpie.tumblr.com/post/626242138958610432
0 notes
scpie ¡ 4 years ago
Text
Smashing Podcast Episode 22 With Chris Coyier: What Is Serverless?
We’re talking about Serverless architectures. What does that mean, and how does it differ from how we might build sites currently? Drew McLellan talks to Chris Coyier to find out.
Today, we’re talking about Serverless architectures. What does that mean, and how does it differ from how we might build sites currently? I spoke to Chris Coyier to find out.
Show Notes
Weekly Update
Transcript
Drew McLellan: He’s a web designer and developer who you may know from CSS-Tricks, a website he started more than 10 years ago and that remains a fantastic learning resource for those building websites. He’s the co-founder of CodePen, the browser based coding playground and community used by front-enders all around the world to share what they make and find inspiration from those they follow. Alongside Dave Rupert is the co-host of ShopTalk Show, a podcast all about making websites. So we know he knows a lot about web development, but did you know he once won a hot dog eating competition using only his charm? My smashing friends, please welcome Chris Coyier. Hello Chris, how are you?
Chris Coyier: Hey, I’m smashing.
Drew: I wanted to talk to you today not about CodePen, and I don’t necessarily want to talk to you about CSS-Tricks, which is one of those amazing resources that I’m sure everyone knows appears right at the top of Google Search results when looking for answers about any web dev question. Up pops your face and there’s a useful blog post written by you or one of your guest contributors.
Chris: Oh, I used to actually do that. There was a… I don’t know, it probably was during the time of when Google had that weird social network. What was that? Google Plus?
Drew: Oh, Plus, yeah.
Chris: Yeah, where they would associate a website with a Plus account, and so my Plus account had an avatar, and the avatar was me, so it would show up in search results. I think those days are gone. I think if you…
Drew: I think so, yeah-
Chris: Yeah.
Drew: But I kind of wanted to talk to you about something that has been a little bit more of a sort of side interest of yours, and that’s this concept of serverless architectures.
Chris: Mm (affirmative).
Drew: This is something you’ve been learning sort of more about for a little while. Is that right?
Chris: Yeah, yeah. I’m just a fan. It seems like a natural fit to the evolution of front-end development, which is where I feel like I have, at least, some expertise. I consider myself much more of a… much more useful on the front-end than the back-end, not that I… I do it all these days. I’ve been around long enough that I’m not afraid of looking at a little Ruby code, that’s for sure. But I prefer the front-end. I’ve studied it more. I’ve participated in projects more at that level, and then along comes this little kind of a new paradigm that says, “You can use your JavaScript skills on the server,” and it’s interesting. You know? That’s how I think of it. There’s a lot more to it than that, but that’s why I care, is because I feel it’s like front-end developers have dug so deep into JavaScript. And now we can use that same skill set elsewhere. Mm, pretty cool.
Drew: Seems like a whole new world has opened up, whereas if you were just a front-end coder… I say, just a front-end coder, I shouldn’t. If you’re a front-end coder, and you’re used to working with a colleague or a friend to help you with the back-end implementation, suddenly that’s opened up. And it’s something that you can manage more of the whole stack yourself.
Chris: Yeah, yeah. That’s it.
Drew: Addressing the elephant in the room, right at the top. We’re talking about serverless, and obviously, naming things is hard. We all know that. Serverless architecture doesn’t mean there are no servers, does it?
Chris: I think it’s mandatory, like if this is the first podcast you’re hearing of it, or in the first… you’re only hearing the word “serverless” in the first dozen times you ever heard it, it’s mandatory that you have a visceral reaction and have this kind of, “Oh, but there are still servers.” That’s okay. If that’s happening to you right now, just know that, that’s a required step in this. It’s just like anything else in life. There’s stages to understanding. The first time you hear something, you’re required to kind of reject it a little bit, and then only after a dozen times or so, or after it’s proven its worth a little bit to you, do you get to enter the further stages of understanding here. But the word has won, so if you’re still fighting against the word “serverless”, I hate to tell you, that the train has left the station there. The word is already successful. You’re not going to win this one. So, sorry.
Chris: But I do think it’s interesting that… it’s starting to be like, maybe there actually aren’t servers involved sometimes. I would think one of the things that locked serverless in as a concept was AWS Lambda. They were kind of the first on the scene. A lambda is like a function that you give to AWS and it puts it in the magical sky and then… it has a URL, and you can hit it and it will run that function and return something if you want it to. You know? That’s just HTTP or whatever. That’s how it works, which… the first time you hear that, you’re like, “Why? I don’t care.” But then, there’s some obvious things to it. It could know my API keys that nobody else has access to. That’s why you run back-end to begin with, is that it knows secret stuff that doesn’t have to be in the JavaScript on the client side. So if it needs to talk to a database, it can do that. It can do that securely without having to expose API keys elsewhere. Or even where that data is or how it gets it, it’s…
Chris: So that’s pretty cool. I can write a function that talks to a database, get some data, returns that. Cool. So, Lambda is that, but AWS works. You have to pick a region. You’re like, “I don’t know. Where it should be, Virginia? Oregon? Should I pick the Australia one? I don’t know.” They have 20, 30. I don’t even know how many they have these days, but even lambdas had regions. They, I think, these days have Lambda@Edge, which means it’s all of the regions, which is kind of cool. But they were first, and now everybody’s got something like Lambda. All the cloud services. They want some kind of service in this world. One of them is CloudFlare. CloudFlare has workers. They have way more locations than AWS has, but they executed it kind of at a different time too… the way a CloudFlare worker… it’s similar to a lambda in that you can run Node. You can run JavaScript. You can run a number of other languages too, but… I think of this stuff largely, the most interesting language is JavaScript, just because of the prevalence of it.
Chris: It happens just at the CDN level, which I guess is a server, but I tend to not think of CDNs as a server. Not as obviously as something else. It’s starting to feel even more serverless-y lately. Is a CDN a server? I mean, I guess it’s a computer somewhere, but it feels like even less server-y.
Drew: It feels like, yes, a CDN may be a server, but it’s the most sort of minimal version of a server. It’s like a thin server, if you like.
Chris: Yeah. Sure.
Drew: All right. I’ve heard it said… I can’t remember the source to credit, unfortunately, but I’ve heard serverless described as being “like using a ride-sharing service like Uber or Lyft” or whatever. You can be carless and not own a car, but that doesn’t mean you never use a car.
Chris: Yeah, it doesn’t mean cars don’t exist. Mm, that’s nice.
Drew: You just summon one when you need it, but at the same time, you’re not paying the upfront purchase cost of a car. You’re not paying maintenance or fuel or-
Chris: Right, and the pricing makes sense, too, right? That’s nice. That’s a nice analogy, I think. And then, because it’s at the CDN level too, it just intercepts HTTP requests that are already happening, which means you don’t ask it… you don’t send a request to it and it sends a request back. It’s just happening during the request naturally, which also makes it feel less server-y. I don’t know, it’s interesting. It’s interesting for sure. So that’s a big deal, though, that you brought up the pricing thing. That you only pay for what you use. That’s significant too, because… let’s say, you’re a back-end dev, who’s used to spinning up servers their whole life. And they run the costs, “I need this kind of server with this kind of memory and this kind of CPU and these kind of specs. And this is how much it’s going to cost.” Serverless comes along and chops the head off of that pricing.
Chris: So, even if you’re a back-end dev who just doesn’t like this that much, that they’re just not into it, like your skill set is just what it is over the years, you compare the price and you’re like, “What? I could be paying 1% of what I was paying before?” You are not allowed to not care about that, right? If you’re this back-end dev that’s paying a hundred times more for their service than they need to be paying, you’re just kind of bad at your job then. Sorry to say. This has come along and this has shattered pricing in a lot of ways. You have to care about that. And it’s kind of cool that somebody else is… It’s not like you don’t have to worry about security at all, but it’s not your server. You don’t have… your lambda or cloud function, or your worker, or whatever, isn’t sitting on a server that’s right next to some really sensitive data on your own network. It’s not right next to your database.
Chris: If somebody writes code that somehow tries to eject itself from the worker or the lambda, or whatever, and try to get access to other things in their way, there’s nothing there to get. So the security’s a big deal too, so again, if that’s your job as the server admin, is to deal with the security of this thing. Running it, running certain things in Lambda, you just get some natural security from it, which is great. So, it’s way cheaper. It’s way more secure. It encourages these small modular architecture, which can be a good idea. It seems to be domino after domino of good ideas here. That’s why it’s notable. You know?
Drew: Yeah, I mean, traditionally with a server based architecture that we’ve been running for decades on the web, you have a web server that you run yourself. It holds your front-end code, your back-end code, your database and everything. Then you need to maintain that and keep it running and pay the bills, and even if it’s not being used, it’s there clocking up bills. The user would make a request and it would build all that HTML query stuff from the database, send it all down the line to the browser. That process works. It’s how loads of things are built. It’s probably the majority of how the web is built. It’s how things like WordPress work. Is this really a problem that we need to solve? I mean, we’ve talked about costs a little bit. What are the other sort of problems with that, that we’re… that we need to address, and that serverless might help us with?
Chris: Yeah, the problems with the old school approach. Yeah, I don’t know, maybe there isn’t any. I mean, I’m not saying the whole web needs to change their whole… the whole thing overnight. I don’t know. Maybe it doesn’t really, but I think it opens up doors. It just seems like, when good ideas arrive like this, they just slowly change how the web operates at all. So, if there’s some CMS that is built in some way that expects a database to be there, it means that maybe the hosts of the future will start leveraging this in interesting ways. Maybe it feels to you like it’s still just a traditional server, but the hosts themselves have farmed it out, how they operate, to serverless architectures. So you don’t even really know that that’s happening, but they’ve found a way to slash their costs by hosting the stuff that you need in serverless ways. Maybe yeah don’t even need to care as a developer, but at a meta level, that’s what’s happening. Maybe. I don’t know.
Chris: It also doesn’t mean that… Databases are still there. If it turns out that architecturally having a relational database is the correct way to store that data, great. I mention that because this world of Serverless is kind of growing up at the same time that JAMstack is. And JAMstack is this architecture that’s, “You should be serving your website off of static hosts, that run nothing at all except for…” They’re like little CDNs. They’re like, “I can do nothing. I don’t run PHP. I don’t run Ruby. I run nothing. I run on a tiny little web server that’s just designed to serve static files only.”
Chris: “And then, if you need to do more than that, if you need to pull data from a relational database, then please do it at some other time, not at the server time. You can either do it in a build process ahead of time, and pull that stuff out of the database, pre-build static files and I’ll serve those, or do it at runtime.” Meaning you get this shell of a document, and then it makes a JavaScript request to get some data and prefills it then. So you do it ahead of time or after time, but it doesn’t mean, “Don’t use a relational database.” It just means, “Don’t have the server generate it at the time of the request of the document,” which is a… I don’t know, it’s a little bit of a paradigm shift.
Chris: It’s not just JAMstack either. We’re also living in the time of JavaScript frameworks. We’re living in a time where it’s starting to be a little more expected that the way that a JavaScript application boots up, is that it mounts some components, and as those components mount, it asks for the data that it needs. And so, it can be kind of a natural fit for something like a React website to be like, “Well, I’ll just hit a serverless function to cough up the data that it needs. It hits some JSON API essentially. I get the JSON data that I need and I construct myself out of that data, and then I render onto the page.” Now, whether that’s good or bad for the web, it’s like, “I don’t know. Too bad. Ship has sailed. That’s how a lot of people are building sites.” It’s just client rendered things. So, serverless and modern JavaScript kind of go hand in hand.
Drew: I suppose you don’t have to wholesale… be looking at one architecture or another. There’s an area in the middle where parts of an infrastructure might be more traditional and parts could be serverless, I’m guessing?
Chris: Yeah. Well, they’re trying to tell you that anyway. Anybody that wants to sell you any part of their architecture is like, “You don’t have to buy in all right now. Just do it a little bit.” Because of course, they want you to dip your toe into whatever they’re selling, because once you dip the toe, the chances that you splash yourself into the pool is a lot higher. So, I think that… it’s not a lie, though, necessarily, although I find a little less luck in… I don’t want my stack to be a little bit of everything. I think there’s some technical death there that I don’t always want to swallow.
Drew: Mm (affirmative).
Chris: But it’s possible to do. I think the most quoted one is… let’s say I have a site that has an eCommerce element to it, which means… and let’s say large scale eCommerce, so 10,000 products or something, that this JAMstack architecture hasn’t gotten to the point where that’s always particularly efficient to rebuild that statically. So, the thinking goes, “Then don’t.” Let that part kind of hydrate naturally with… hit serverless functions and get the data that it needs, and do all that. But the rest of the site, which isn’t… there’s not as many pages, there’s not as much data, you could kind of pre-render or whatever. So a little bit of both.
Drew: Of course, plenty of people are dealing with legacy systems that… some old database thing that was built in the 2000s that they may be able to stick a sort of JSON API layer on top of…
Chris: Yeah.
Drew: … and build something more modern, and perhaps serverless, and then still interact with those legacy systems by sort of gluing it altogether in a weird way.
Chris: Yeah. I like that though, isn’t it? Aren’t… most websites already exist. How many of us are totally green-fielding websites? Most of us work on some crap that already exists that needs to be dragged into the future for some reason, because I don’t know, developers want to work faster, or you can’t hire anybody in COBOL anymore, or whatever the story is. You know?
Drew: So terminology wise, we’re talking about JAMstack which is this methodology of running a code pretty much in the browser, serving it from a CDN. So, not having anything dynamic on the server. And then when we talk about serverless, we’re talking about those small bits of functionality that run on their server somewhere else. Is that right? That we were talking about these cloud function kind of-
Chris: Yeah, I mean, they just happen to be both kind of hot ideas right now. So it’s kind of easy to talk about one and talk about the other. But they don’t necessarily need to be together. You could run a JAMstack site that has nothing to do with serverless anything. You’re just doing it, you just pre-build the site and run it, and you can use serverless without having to care about JAMstack. In fact, CodePen does nothing JAMstack at all. Not that we want to talk about CodePen necessarily, but it’s a Ruby on Rails app. It runs on a whole bunch of AWS EC2 instances and a variety of other architecture to make it happen. But we use serverless stuff whenever we can for whatever we can, because it’s cheap and secure, and just a nice way to work. So, no JAMstack in use at all but serverless all over the place.
Drew: That’s quite interesting. What sort of tasks are you putting serverless to on CodePen?
Chris: Well, there’s a whole bunch of things. One of them is, I think, hopefully fairly obvious is, I need… the point of CodePen is that you write each HTML, CSS and JavaScript in the browser and it renders it in front of you, right? But you can pick pre-processor languages as well. Let’s say you like Sass. You turn Sass on in the CSS, and you write Sass. Well, something has to process the Sass. These days, Sass is written in Dart or something.
Chris: Theoretically, you could do that in the client. But these libraries that do pre-processing are pretty big. I don’t think I want to ship the entire Sass library to you, just to run that thing. I don’t want to… it’s just not, that’s not the right architecture for this necessarily. Maybe it is down the road, I mean, we could talk about offline crap, yada, yada, Web Workers. There’s a million architectural things we could do. But here’s how it does work now, is there’s a lambda. It processes Sass. It has one tiny, tiny, tiny, little job.
Chris: You send it this blob of Sass and it sends you stuff back, which is the processed CSS, maybe a site map, whatever. It has one tiny little job and we probably pay for that lambda, like four cents or something. Because lambdas are just incredibly cheap and you can hammer it too. You don’t have to worry about scale. You just hit that thing as much as you want and your bill will be astonishingly cheap. There is moments where serverless starts to cross that line of being too expensive. I don’t know what that is, I’m not that master of stuff like that. But generally, any serverless stuff we do, we basically… all nearly count as free, because it’s that cheap. But there’s one for Sass. There’s one for Less. There’s one for Babbel. There’s one for TypeScript. There’s one for… All those are individual lambdas that we run. Here’s some code, give it to the lambda, it comes back, and we do whatever we’re going to do with it. But we use it for a lot more than that, even recently.
Chris: Here’s an example. Every single Pen on CodePen has a screenshot. That’s kind of cool, right? So, the people make a thing and then we need a PNG or a JPEG, or something of it, so that we can… that way when you tweet it, you get the little preview of it. If you share it in Slack, you get the little preview of it. We use it on the website itself to render… instead of an iframe, if we could detect that the Pen isn’t animated, because an iframe’s image is much lighter, so why not use the image? It’s not animated anyway. Just performance gains like that. So each of those screenshots has a URL to it, obviously. And we’ve architected it so that that URL is actually a serverless function. It’s a worker. And so, if that URL gets hit, we can really quickly check if we’ve already taken that screenshot or not.
Chris: That’s actually enabled by CloudFlare Workers, because CloudFlare Workers are not just a serverless function, but they have a data store too. They have this thing called key-value store, so the ID of that, we can just check really quick and it’ll be, “True or false, do you have it or not?” If it’s got it, it serves it. And it serves it over CloudFlare, which is super fast to begin with. And then gives you all this ability too. Because it’s an image CDN, you can say, “Well, serve it in the optimal format. Serve it as these dimensions.” I don’t have to make the image in those dimensions. You just put the dimensions in the URL and it comes back as that size, magically. So that’s really nice. If it doesn’t have it, it asks another serverless function to make it really quick. So it’ll make it and then it’ll put it in a bucket somewhere… because you have to have a origin for the image, right? You have to actually host it somewhere usually. So we put it in an S3 bucket real quick and then serve it.
Chris: So there’s no queuing server, there’s no nothing. It’s like serverless functions manage the creation, storage and serving of these images. And there’s like 50 million or 80 million of them or something. It’s a lot, so it handles that as scale pretty nicely. We just don’t even touch it. It just happens. It all happens super fast. Super nice.
Drew: I guess it… well, a serverless function is ideally going to suit a task that needs very little knowledge of state of things. I mean, you mentioned CloudFlare’s ability to store key-value pairs to see if you’ve got something cached already or not.
Chris: Yeah. That’s what they’re trying to solve, though, with those. Those key-value pairs, is that… I think that traditionally was true. They’re like, “Avoid state in the thing,” because you just can’t count on it. And CloudFlare Workers are being like, “Yeah, actually, you can deal with state, to some degree.” It’s not as fancy as a… I don’t know, it’s key values, so it’s a key in a value. It’s not like a nested, relational fancy thing. So there’s probably some limits to that. But this is baby days for this. I think that stuff’s going to evolve to be more powerful, so you do have some ability to do some state-like stuff.
Drew: And sometimes the limitation, that sort of limited ability to maintain state, or the fact that you have no… you want to maintain no state at all, kind of pushes you into an architecture that gives you this sort of… Well, when we talk about the software philosophy of “Small Pieces Loosely Joined”, don’t we?
Chris: Mm (affirmative).
Drew: Where each little component does one thing and does it well. And doesn’t really know about the rest of the ecosystem around it. And it seems that really applies to this concept of serverless functions. Do you agree?
Chris: Yeah. I think you could have a philosophical debate whether that’s a good idea or not. You know? I think some people like the monolith, as it were. I think there’s possible… there’s ways to overdo this and to make too many small parts that are too hard to test altogether. It’s nice to have a test that’s like, “Oh, I wonder if my Sass function is working. Well, let’s just write a little test for it and make sure that it is.” But let’s say, what matters to the user is some string of seven of those. How do you test all seven of them together? I think that story gets a little more complicated. I don’t know how to speak super intelligently to all that stuff, but I know that it’s not necessarily that, if you roll with all serverless functions that’s automatically a better architecture than any other architecture. I like it. It reasons out to me nicely, but I don’t know that it’s the end-all be-all of all architectures. You know?
Drew: To me, it feels extremely web-like, in that… this is exactly how HTML works, isn’t it? You deliver some HTML and the browser will then go and fetch your images and fetch your JavaScript and fetch your CSS. It seems like it’s an expansion of that –
Chris: It’s nice.
Drew: … sort of idea. But, one thing we know about the web, is it’s designed to be resilient because network’s fragile.
Chris: Mm (affirmative).
Drew: How robust is the sort of serverless approach? What happens if something… if one of those small pieces goes away?
Chris: That would be very bad. You know? It would be a disaster. Your site would go down just like any other server, if it happens to go down, I guess.
Drew: Are there ways to mitigate that, that are particularly –
Chris: I don’t know.
Drew: … suited to this sort of approach, that you’ve come across?
Chris: Maybe. I mean, like I said, a really super fancy robust thing might be like… let’s say you visit CodePen and let’s say that there’s a JavaScript implementation of Sass and we noticed that you’re on a fairly fast network and that you’re idle right now. Maybe we’ll go grab that JavaScript and we’ll throw it in a service worker. Then, if we detect that the lambda fails, or something, or that you have this thing installed already, then we’ll hit the service worker instead of the lambda, and service workers are able to work offline. So, that’s kind of nice too. That’s interesting. I mean, they are the same language-ish. Service workers are JavaScript and a lot of Cloud functions are JavaScript, so there’s some… I think that’s a possibility, although that… it’s just, that’s some serious technical that… It just scares me to have this chunk of JavaScript that you’ve delivered to how many thousands of user, that you don’t necessarily know what they have, and what version of it they have. Eww, but that’s just my own scarediness. I’m sure some people have done a good job with that type of thing.
Chris: I actually don’t know. Maybe you know some strategies that I don’t, on resiliency of serverless.
Drew: I guess there’s a failure mode, a style of failure, that could happen with serverless functions, where you run a function once and it fails, and you can run it a second time immediately afterwards and it would succeed, because it might hit a completely different server. Or whatever the problem was, when that run may not exist on a second request. The issues of an entire host being down is one thing, but maybe there are… you have individual problems with the machine. You have a particular server where its memory has gone bad, and it’s throwing a load of errors, and the first time you hit it, it’s going to fail. Second time, that problem might have been rooted around.
Chris: Companies that tend to offer this technology, you have to trust them, but they also happen to be the type of companies that… this is their pride. This is the reason why people use them is because they’re reliable. I’m sure people could point to some AWS outages of the past, but they tend to be a little rare, and not super common. If you were hosting your own crap, I bet they got you beat from an SLA percentage kind of level. You know? So it’s not like, “Don’t build in a resilient way,” but generally the type of companies that offer these things are pretty damn reliable. The chances of you going down because you screwed up that function are a lot higher than because their architecture is failing.
Drew: I suppose, I mean, just like anything where you’re using an API or something that can fail, is just making sure you structure your code to cope with that failure mode, and to know what happens next, rather than just throwing up an error to the user, or just dying, or what have you. It’s being aware of that and asking the user to try again. Or trying again yourself, or something.
Chris: Yeah, I like that idea of trying more than once, rather than just being, “Oh no. Fail. Abort.” “I don’t know, why don’t you try again there, buddy?”
Drew: So I mean, when it comes to testing and development of serverless functions, sort of cloud functions, is that something that can be done locally? Does it have to be done in the cloud? Are there ways to manage that?
Chris: I think there are some ways. I don’t know if the story is as awesome. It’s still a relatively new concept, so I think that that gets better and better. But from what I know, for one thing, you’re writing a fairly normal Node function. Assuming you’re using JavaScript to do this, and I know that on Lambda specifically, they support all kinds of stuff. You can write a fricking PHP Cloud Function. You can write a Ruby Cloud Function. So, I know I’m specifically talking about JavaScript, because I have a feeling that most of these things are JavaScript. Even no matter what language it is, I mean, you can go to your command line locally and execute the thing. Some of that testing is… you just test it like you would any other code. You just call the function locally and see if it works.
Chris: It’s a little different story when you’re talking about an HTTP request to it, that’s the thing that you’re trying to test. Does it respond to the request properly? And does it return the stuff properly? I don’t know. The network might get involved there. So you might want to write tests at that level. That’s fine. I don’t know. What is the normal story there? You spin up some kind of local server or something that serves it. Use Postman, I don’t know. But there’s… Frameworks try to help too. I know that the serverless “.com”, which is just terribly confusing, but there’s literally a company called Serverless and they make a framework for writing the serverless functions that helps you deploy them.
Chris: So if you like NPM install serverless, you get their framework. And it’s widely regarded as very good, because it’s just very helpful, but they don’t have their own cloud or whatever. You write these and then it helps you get them to a real lambda. Or it might work with multiple cloud providers. I don’t even know these days, but their purpose of existing is to make the deployment story easier. I don’t know what… AWS is not renowned for their simplicity. You know? There’s all this world of tooling to help you use AWS and they’re one of them.
Chris: They have some kind of paid product. I don’t even know what it is exactly. I think one of the things they do is… the purpose of using them is for testing, is to have a dev environment that’s for testing your serverless function.
Drew: Yeah, because I guess, that is quite a big part of the workflow, isn’t it? If you’ve written your JavaScript function, you’ve tested it locally, you know it’s going to do the job. How do you actually pick which provider it’s going to go into and how do you get it onto that service? Now, I mean, that’s a minefield, isn’t it?
Chris: Yeah. I mean, if you want to use no tooling at all, I think they have a really… like AWS, specifically, has a really rudimentary GUI for the thing. You can paste the code in there and hit save and be like, “Okay, I guess it’s live now.” That’s not the best dev story, but I think you could do it that way. I know CloudFlare workers have this thing called Wrangler that you install locally. You spin it up and it spins up a fake browser on the top and then dev tools below. Then you can visit the URL and it somehow intercepts that and runs your local cloud function against it. Because one of the interesting things about workers is… you know how I described how it… you don’t hit a URL and then it returns stuff. It just automatically runs when you… when it intercepts the URL, like CDN style.
Chris: So, one of the things it can do is manipulate the HTML on the way through. The worker, it has access to the complete HTML document. They have a jQuery-esque thing that’s like, “Look for this selector. Get the content from it. Replace it with this content. And then continue the request.” So you can mess with code on the way through it. To test that locally, you’re using their little Wrangler tool thing to do that. Also, I think the way we did it was… it’s also a little dangerous. The second you put it live, it’s affecting all your web traffic. It’s kind of a big deal. You don’t want to screw up a worker. You know? You can spin up a dev worker that’s at a fake subdomain, and because it’s CloudFlare, you can… CloudFlare can just make a subdomain anyway. I don’t know. It’s just kind of a nice way to do a… as you’re only affecting sub-domain traffic, not your main traffic yet. But the subdomain’s just a mirror of a production anyway, so that’s kind of a… that’s a testing story there.
Chris: It brings up an interesting thing, though, to me. It’s like… imagine you have two websites. One of them is… for us it’s like a Ruby on Rails app. Whatever. It’s a thing. But we don’t have a CMS for that. That’s just like… it’s not a CMS, really. I think there’s probably Ruby CMSs, but there’s not any renowned ones. You know? It seems like all the good CMSs are PHP, for some reason. So, you want a quality CMS. Drew, you’ve lived in the CMS market for a long time –
Drew: Absolutely.
Chris: … so you know how this goes. Let’s say you want to manage your sites in Perch or whatever, because it’s a good CMS and that’s the proper thing to use to build the kind of pages you want to build. But you don’t want to run them on the same server. Unless you want to manage the pages on one site, but show them on another site. Well, I don’t know, there’s any number of ways to do that. But one JavaScript way could be, “Okay, load the page. There’s an empty div there. Run some JavaScript. Ask the other site for the content of that page and then plunk it out on the new page.” That’s fine, I guess, but now you’re in a client side rendered page. It’s going to be slow. It’s going to have bad SEO Company, because… Google will see it eventually, but it takes 10 days or something. It’s just a bad story for SEO Company. It’s not very resilient, because who knows what’s going to happen in the network. It’s not the greatest way to do this kind of “content elsewhere, content on site B, show page of site A”, situation.
Chris: You could also do it on the server side, though. Let’s say you had… Ruby is capable of granting a network request too, but that’s even scarier because then if something fails on the network, the whole page could die or something. It’s like a nervous thing. I don’t love doing that either. But we did this just recently with a worker, in that we… because the worker’s JavaScript, it can make a fetch request. So, it fetches site A, it finds this div on the page, and then it goes and asks site B for the content. Gets the content. Plugs it into that div, and serves the page before it gets anything. So it looks like a server rendered page, but it wasn’t. It all happened at the… on the edge, at the worker level, at the serverless level.
Chris: So it’s kind of cool. I think you can imagine a fetch request on the browser probably takes, I don’t know, a second and a half or something. It probably takes a minute to do it. But because these are… site B is hosted on some nice hosting and Cloudflare has some… who knows what kind of super computers they use to do it. They do. Those are just two servers talking to each other, and that fetch request happens just so super duper, duper fast. It’s not limited to the internet connection speed of the user, so that little request takes like two milliseconds to get that data. So it’s kind of this cool way to stitch together a site from multiple sources and have it feel like, and behave like, a server rendered page. I think there’s a cool future to that.
Drew: Are there any sort of conventions that are sort of springing up around serverless stuff. I’m sort of thinking about how to architect things. Say I’ve got something where I want to do two sort of requests to different APIs. I want to take in a postal address and geocode it against one, and then take those coordinates and send that to a florist who’s going to flower bomb my front yard or something. How would you build that? Would you do two separate things? Or would you turn that into one function and just make the request once from the browser?
Chris: Mm (affirmative). That’s a fascinating question. I’d probably have an architect function or something. One function would be the one that’s in charge of orchestrating the rest of them. It doesn’t have to be, your website is the hub and it only communicates to this array of single sources. Serverless functions can talk to other serverless functions. So I think that’s somewhat common to have kind of an orchestrator function that makes the different calls and stitches them together, and returns them as one. I think that is probably smart and faster, because you want servers talking to servers, not the client talking to a whole bunch of servers. If it can make one request and get everything that it needs, I think that’s probably generally a good idea-
Drew: Yeah, that sounds smart. Yep.
Chris: But I think that’s the ultimate thing. You get a bunch of server nerds talking, they’ll talk about the different approaches to that exact idea in 10 different ways.
Drew: Yeah. No, that sounds pretty smart. I mean, you mentioned as well that this approach is ideal if you’re using APIs where you’ve got secret information. You’ve got API keys or something that you don’t want to live in the client. Because I don’t know, maybe this florist API charges you $100 dollars every time flower bomb someone.
Chris: Easily.
Drew: You can basically use those functions to almost proxy the request and add in the secret information as it goes, and keep it secret. That’s a viable way to work?
Chris: Yeah, yeah. I think so. I mean, secrets are, I don’t know, they’re interesting. They’re a form of buy in I think to whatever provider you go with, because… I think largely because of source control. It’s kind of like, you could just put your API key right in the serverless function, because it’s just going to a server, right? You don’t even have to abstract it, really. The client will never see that code that executes, but in order for it to get there, there’s probably a source control along the way. It’s probably like you commit to master, and then master… then some kind of deployment happens that makes that thing go to the serverless function. Then you can’t put your API key in there, because then it’s in the repo, and you don’t put your API keys in repos. That’s good advice. Now there’s stuff. We’ve just done… at CodePen recently, we started using this git-crypt thing, which is an interesting way to put keys safely into your repos, because it’s encrypted by the time anybody’s looking at that file.
Chris: But only locally they’re decrypted, so they’re useful. So it’s just kind of an interesting idea. I don’t know if that helps in this case, but usually, cloud providers of these things have a web interface that’s, “Put your API keys here, and we’ll make them available at runtime of that function.” Then it kind of locks… it doesn’t lock you in forever but it kind of is… it’s not as easy to move, because all your keys are… you put in some input field and some admin interface somewhere.
Drew: Yeah, I think that’s the way that Netlify manage it.
Chris: They all do, you know?
Drew: Yeah. You have the secret environment variables that you can set from the web interface. That seems to work quite nicely.
Chris: Yeah, right. But then you got to leave… I don’t know, it’s not that big of a deal. I’m not saying they’re doing anything nefarious or anything. How do you deal with those secrets? Well, it’s a hard problem. So they kind of booted it to, I don’t know, “Just put them in this input field and we’ll take care of it for you, don’t worry about it.”
Drew: Is there anything that you’ve seen that stands out as an obvious case for things that you can do with serverless, that you just couldn’t do with a traditional kind of serverfull approach? Or is it just taking that code and sort of almost deploying it in a different way?
Chris: It’s probably mostly that. I don’t know that it unlocks any possibility that you just absolutely couldn’t run it any other way. Yeah, I think that’s a fair answer, but it does kind of commoditize it in an interesting way. Like, if somebody writes a really nice serverless function… I don’t know that this exists quite yet, but there could kind of a marketplace, almost, for these functions. Like, I want a really good serverless function that can take a screenshot. That could be an open source project that lots of eyeballs around, that does a tremendously good job of doing it and solves all these weird edge cases. That’s the one I want to use. I think that’s kind of cool. You know? That you can kind of benefit from other people’s experience in that way. I think that will happen more and more.
Drew: I guess it’s the benefit that we talked about, right at the top, of enabling people who write JavaScript and may have written JavaScript only for the front-end, to expand and use those skills on the back-end as well.
Chris: Yeah, yeah. I think so, I think that’s… because there’s moments like… you don’t have to be tremendously skilled to know what’s appropriate and what’s not for a website. Like, I did a little tutorial the other week, where there was this glitch uses these… when you save a glitch, they give you a slug for your thing that you built, that’s, “Whiskey, tango, foxtrot. 1,000.” It’s like a clever little thing. The chances of it being unique are super high, because I think they even append a number to it or something too. But they end up being these fun little things. They open source their library that has all those words in it, but it’s like a hundred, thousands of words. The file is huge. You know? It’s megabytes large of just a dictionary of words. You probably learn in your first year of development, “Don’t ship a JavaScript file that’s megabytes of a dictionary.” That’s not a good thing to ship. You know? But Node doesn’t care. You can ship hundreds of them. It’s irrelevant to the speed on a server.
Drew: Yeah.
Chris: It doesn’t matter on a server. So, I could be like, “Hmm, well, I’ll just do it in Node then.” I’ll have a statement that says, “Words equal require words,” or whatever, and a note at the top, “Have it randomize a number. Pull it out of the array and return it.” So that serverless function is eight lines of code with a packaged@JSON that pulls in this open source library. And then my front-end code, there’s a URL to the serverless function. It hits that URL. The URL returns one word or a group of words or whatever. You build your own little API for it. And now, I have a really kind of nice, efficient thing. What was nice about that is, it’s so simple. I’m not worried about the security of it. I don’t… you know?
Chris: It’s just… a very average or beginner JavaScript developer, I think, can pull that off, which is cool. That’s an enabling thing that they didn’t have before. Before, they were like, “Well, here’s a 2MB array of words.” “Oh, I can’t ship that to the client.” “Oh, you’ll just shut down then.” You might hit this wall that’s like, “I just can’t do that part then. I need to ask somebody else to help me with that or just not do it or pick more boring slugs or some…” It’s just, you have to go some other way that is a wall to you, because you couldn’t do it. And now, you’re, “Oh, well, I’ll just…” Instead of having that in my script slash, or in my source slash scripts folder, I’ll put it in my functions folder instead.
Chris: You kind of like moved the script from one folder to the other. And that one happens to get deployed as a serverless function instead. How cool is that? You know? You’re using the same exact skill set, almost. There’s still some rough edges to it, but it’s pretty close.
Drew: It’s super cool. You’ve put together a sort of little micro site all about these ideas, haven’t you?
Chris: Yeah. I was a little early to the game. I was just working on it today, though, because… it gets pull requests. The idea… well, it’s at serverless.css-tricks.com and… there’s a dash in CSS-Tricks, by the way. So it’s a subdomain of CSS-Tricks, and I built it serverlessly too, so this is… CSS-Tricks is like a WordPress site, but this is a static site generator site. All the content of it is in the GitHub repo, which is open-source. So if you want to change the content of the site, you can just submit a poll request, which is nice because there’s been a hundred or so of those over time. But I built all the original content.
Drew: It’s a super useful place, because it lists… If you’re thinking, “Right, I want to get started with serverless functions,” it lists all the providers who you could try it and…
Chris: That’s all it is, pretty much, is lists of technology. Yeah.
Drew: Which is great, because otherwise, you’re just Googling for whatever and you don’t know what you’re finding. Yeah, it’s lists of API providers that help you do these sorts of things.
Chris: Forms is one example of that, because… so the minute that you choose to… let’s say, you’re going to go JAMstack, which I know that’s not necessarily the point of this, but you see how hand in hand they are. All of a sudden, you don’t have a PHP file or whatever to process that form with. How do you do forms on a JAMstack site? Well, there’s any number of ways to do it. Everybody and their sister wants to help you solve that problem, apparently. So I think if I was the inventor of the word JAMstack, so they try to help you naturally, but you don’t have to use them.
Chris: In fact, I was so surprised putting this site together. Let’s see. There’s six, nine, twelve, fifteen, eighteen, twenty one, twenty two services out there, that want to help you serverlessly process your forms on this site right now. If you want to be the 23rd, you’re welcome to it, but you have some competition out there. So the idea behind this is that you write a form in HTML, like literally a form element. And then the action attribute of the form, it can’t point anywhere internally, because there’s nothing to point to. You can’t process, so it points externally. It points to whatever they want you to point it to. They’ll process the form and then they tend to do things that you’d expect them to, like send an email notification. Or send a Slack thing. Or then send it to Zapier and Zapier will send it somewhere else. They all have slightly different feature sets and pricing and things, but they’re all trying to solve that problem for you, like, “You don’t want to process your own forms? No problem. We’ll process it for you.”
Drew: Yeah, it’s a super useful resource. I’d really recommend everyone check it out. It’s serverless.css-tricks.com. So, I’ve been learning all about serverless. What have you been learning about lately, Chris?
Chris: Well, I’m still very much in this world too and learning about serverless stuff. I had an idea to… I used to play this online role playing game ages ago. I just recently discovered that it’s still alive. It’s a text based medieval fantasy kind of game. I played it when AOL was a thing, because AOL wanted to have these games that you had to be logged on to play it, because they wanted you to spend hours and hours on AOL, so they could send you these huge bills, which was, I’m sure, why they did so well at some point.
Drew: So billing by the second. Yeah.
Chris: Yeah. So games was big for them. If they could get you playing games with other people on there. So this game kind of… it didn’t debut there, but it moved to AOL, because I’m sure they got a juicy deal for it, but it was so… I mean, it’s just, couldn’t possibly be nerdier. You’re a dwarven mage and you get rune staff from your leather sheath. And you type commands into it like a terminal. Then the game responds to you. I played that game for a very long time. I was very into it. I got into the community of it and the spirit of it. It was kind of a… it was like I was just alone by myself at my computer, but yet I look back on that time in my life, and be like, “That was a wonderful time in my life.” I was really… I just liked the people and the game and all that. But then I grew up and stopped playing it, because life happens to you.
Chris: I only found out recently, because somebody started doing a podcast about it again… I don’t know how I came across it, but I just did. I was like, “This game is alive and well in today’s world, are you kidding me? This text based thing.” And I was more than happy to reactivate and get my old characters back and play it. But only to find out that the clients that they have you download for this game, haven’t evolved at all. They are awful. They almost assume that you’re using Windows. There’s just these terribly cheesy poorly rendering… and it’s text based, you think it’d at least have nice typography. No. So I’m like, “I could be involved. I could write a client for this game. Put beautiful typography in it.” Just modernize the thing, and I think the players of the game would appreciate it, but it felt overwhelming to me. “How can I do it?” But I find some open source projects. One of them is like… you can play the game through an actual terminal window, and it uses some open source libs to kind of make a GUI out of a terminal window.
Drew: Really?
Chris: I don’t know. So that was kind of cool. I was like, “If they wrote that, there must be code in there to how to connect to the game and get it all going and stuff. So at least I have some starter code.” I was trying to go along the app, “Maybe I’ll do it in Flutter or something,” so the final product app would work on mobile phones and, “I could really modernize this thing.” But then I got overwhelmed. I was like, “Ah, this is too big a… I can’t. I’m busy.” But I found another person who had the same idea and they were way further along with it, so I could just contribute on a design level. And it’s been really fun to work on, but I’ve been learning a lot too, because it’s rare for me to jump into a project that’s somebody else’s baby, and I’m just contributing to a little bit, and that has totally different technology choices than I would have ever picked.
Chris: It’s an Electron app. They picked that, which is also kind of a cool way to go too, because it’s my web skills… so I’m not learning anything too weird, and it’s cross-platform, which is great. So, I’ve been learning a lot about Electron. I think it’s fun.
Drew: That’s fascinating. It’s always amazing how little side projects and things that we do for fun, end up being the place where we sometimes learn the most. And learn skills that can then feed back into our sort of daily work.
Chris: That’s the only way I learn things. I’m dragged into something that… I was like, “They’re not…” It’s rendered with a JavaScript library called Mithril, which is… I don’t know if you’ve ever heard of it, but it’s weird. It’s not… it’s almost like writing React without JSX. You have to “create element” and do all these… but it’s supposed to benchmark way better than it… And it actually kind of matters because in this text based game, the text is just flying. There’s a lot of data manipulation, which is like… you’d think this text based game would be so easy for a browser window to run, but it’s actually kind of not. There’s so much data manipulation happening, that you really have to be really… we have to be conscientious about the speed of the rendering. You know?
Drew: That’s fascinating-
Chris: Pretty cool.
Drew: Yeah. If you, dear listener, would like to hear more from Chris, you can find him on Twitter, where he’s @chriscoyier. Of course, CSS-Tricks can be found at css-tricks.com and CodePen at codepen.io. But most of all, I recommend that you subscribe to the ShopTalk Show podcast if you haven’t already done so, at shoptalkshow.com. Thanks for joining us today, Chris. Do you have any parting words?
Chris: Smashingpodcast.com. I hope that’s the real URL.
(il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/smashing-podcast-episode-22-with-chris-coyier-what-is-serverless/
0 notes
laurelkrugerr ¡ 4 years ago
Text
Smashing Podcast Episode 22 With Chris Coyier: What Is Serverless?
We’re talking about Serverless architectures. What does that mean, and how does it differ from how we might build sites currently? Drew McLellan talks to Chris Coyier to find out.
Today, we’re talking about Serverless architectures. What does that mean, and how does it differ from how we might build sites currently? I spoke to Chris Coyier to find out.
Show Notes
Weekly Update
Transcript
Drew McLellan: He’s a web designer and developer who you may know from CSS-Tricks, a website he started more than 10 years ago and that remains a fantastic learning resource for those building websites. He’s the co-founder of CodePen, the browser based coding playground and community used by front-enders all around the world to share what they make and find inspiration from those they follow. Alongside Dave Rupert is the co-host of ShopTalk Show, a podcast all about making websites. So we know he knows a lot about web development, but did you know he once won a hot dog eating competition using only his charm? My smashing friends, please welcome Chris Coyier. Hello Chris, how are you?
Chris Coyier: Hey, I’m smashing.
Drew: I wanted to talk to you today not about CodePen, and I don’t necessarily want to talk to you about CSS-Tricks, which is one of those amazing resources that I’m sure everyone knows appears right at the top of Google Search results when looking for answers about any web dev question. Up pops your face and there’s a useful blog post written by you or one of your guest contributors.
Chris: Oh, I used to actually do that. There was a… I don’t know, it probably was during the time of when Google had that weird social network. What was that? Google Plus?
Drew: Oh, Plus, yeah.
Chris: Yeah, where they would associate a website with a Plus account, and so my Plus account had an avatar, and the avatar was me, so it would show up in search results. I think those days are gone. I think if you…
Drew: I think so, yeah-
Chris: Yeah.
Drew: But I kind of wanted to talk to you about something that has been a little bit more of a sort of side interest of yours, and that’s this concept of serverless architectures.
Chris: Mm (affirmative).
Drew: This is something you’ve been learning sort of more about for a little while. Is that right?
Chris: Yeah, yeah. I’m just a fan. It seems like a natural fit to the evolution of front-end development, which is where I feel like I have, at least, some expertise. I consider myself much more of a… much more useful on the front-end than the back-end, not that I… I do it all these days. I’ve been around long enough that I’m not afraid of looking at a little Ruby code, that’s for sure. But I prefer the front-end. I’ve studied it more. I’ve participated in projects more at that level, and then along comes this little kind of a new paradigm that says, “You can use your JavaScript skills on the server,” and it’s interesting. You know? That’s how I think of it. There’s a lot more to it than that, but that’s why I care, is because I feel it’s like front-end developers have dug so deep into JavaScript. And now we can use that same skill set elsewhere. Mm, pretty cool.
Drew: Seems like a whole new world has opened up, whereas if you were just a front-end coder… I say, just a front-end coder, I shouldn’t. If you’re a front-end coder, and you’re used to working with a colleague or a friend to help you with the back-end implementation, suddenly that’s opened up. And it’s something that you can manage more of the whole stack yourself.
Chris: Yeah, yeah. That’s it.
Drew: Addressing the elephant in the room, right at the top. We’re talking about serverless, and obviously, naming things is hard. We all know that. Serverless architecture doesn’t mean there are no servers, does it?
Chris: I think it’s mandatory, like if this is the first podcast you’re hearing of it, or in the first… you’re only hearing the word “serverless” in the first dozen times you ever heard it, it’s mandatory that you have a visceral reaction and have this kind of, “Oh, but there are still servers.” That’s okay. If that’s happening to you right now, just know that, that’s a required step in this. It’s just like anything else in life. There’s stages to understanding. The first time you hear something, you’re required to kind of reject it a little bit, and then only after a dozen times or so, or after it’s proven its worth a little bit to you, do you get to enter the further stages of understanding here. But the word has won, so if you’re still fighting against the word “serverless”, I hate to tell you, that the train has left the station there. The word is already successful. You’re not going to win this one. So, sorry.
Chris: But I do think it’s interesting that… it’s starting to be like, maybe there actually aren’t servers involved sometimes. I would think one of the things that locked serverless in as a concept was AWS Lambda. They were kind of the first on the scene. A lambda is like a function that you give to AWS and it puts it in the magical sky and then… it has a URL, and you can hit it and it will run that function and return something if you want it to. You know? That’s just HTTP or whatever. That’s how it works, which… the first time you hear that, you’re like, “Why? I don’t care.” But then, there’s some obvious things to it. It could know my API keys that nobody else has access to. That’s why you run back-end to begin with, is that it knows secret stuff that doesn’t have to be in the JavaScript on the client side. So if it needs to talk to a database, it can do that. It can do that securely without having to expose API keys elsewhere. Or even where that data is or how it gets it, it’s…
Chris: So that’s pretty cool. I can write a function that talks to a database, get some data, returns that. Cool. So, Lambda is that, but AWS works. You have to pick a region. You’re like, “I don’t know. Where it should be, Virginia? Oregon? Should I pick the Australia one? I don’t know.” They have 20, 30. I don’t even know how many they have these days, but even lambdas had regions. They, I think, these days have Lambda@Edge, which means it’s all of the regions, which is kind of cool. But they were first, and now everybody’s got something like Lambda. All the cloud services. They want some kind of service in this world. One of them is CloudFlare. CloudFlare has workers. They have way more locations than AWS has, but they executed it kind of at a different time too… the way a CloudFlare worker… it’s similar to a lambda in that you can run Node. You can run JavaScript. You can run a number of other languages too, but… I think of this stuff largely, the most interesting language is JavaScript, just because of the prevalence of it.
Chris: It happens just at the CDN level, which I guess is a server, but I tend to not think of CDNs as a server. Not as obviously as something else. It’s starting to feel even more serverless-y lately. Is a CDN a server? I mean, I guess it’s a computer somewhere, but it feels like even less server-y.
Drew: It feels like, yes, a CDN may be a server, but it’s the most sort of minimal version of a server. It’s like a thin server, if you like.
Chris: Yeah. Sure.
Drew: All right. I’ve heard it said… I can’t remember the source to credit, unfortunately, but I’ve heard serverless described as being “like using a ride-sharing service like Uber or Lyft” or whatever. You can be carless and not own a car, but that doesn’t mean you never use a car.
Chris: Yeah, it doesn’t mean cars don’t exist. Mm, that’s nice.
Drew: You just summon one when you need it, but at the same time, you’re not paying the upfront purchase cost of a car. You’re not paying maintenance or fuel or-
Chris: Right, and the pricing makes sense, too, right? That’s nice. That’s a nice analogy, I think. And then, because it’s at the CDN level too, it just intercepts HTTP requests that are already happening, which means you don’t ask it… you don’t send a request to it and it sends a request back. It’s just happening during the request naturally, which also makes it feel less server-y. I don’t know, it’s interesting. It’s interesting for sure. So that’s a big deal, though, that you brought up the pricing thing. That you only pay for what you use. That’s significant too, because… let’s say, you’re a back-end dev, who’s used to spinning up servers their whole life. And they run the costs, “I need this kind of server with this kind of memory and this kind of CPU and these kind of specs. And this is how much it’s going to cost.” Serverless comes along and chops the head off of that pricing.
Chris: So, even if you’re a back-end dev who just doesn’t like this that much, that they’re just not into it, like your skill set is just what it is over the years, you compare the price and you’re like, “What? I could be paying 1% of what I was paying before?” You are not allowed to not care about that, right? If you’re this back-end dev that’s paying a hundred times more for their service than they need to be paying, you’re just kind of bad at your job then. Sorry to say. This has come along and this has shattered pricing in a lot of ways. You have to care about that. And it’s kind of cool that somebody else is… It’s not like you don’t have to worry about security at all, but it’s not your server. You don’t have… your lambda or cloud function, or your worker, or whatever, isn’t sitting on a server that’s right next to some really sensitive data on your own network. It’s not right next to your database.
Chris: If somebody writes code that somehow tries to eject itself from the worker or the lambda, or whatever, and try to get access to other things in their way, there’s nothing there to get. So the security’s a big deal too, so again, if that’s your job as the server admin, is to deal with the security of this thing. Running it, running certain things in Lambda, you just get some natural security from it, which is great. So, it’s way cheaper. It’s way more secure. It encourages these small modular architecture, which can be a good idea. It seems to be domino after domino of good ideas here. That’s why it’s notable. You know?
Drew: Yeah, I mean, traditionally with a server based architecture that we’ve been running for decades on the web, you have a web server that you run yourself. It holds your front-end code, your back-end code, your database and everything. Then you need to maintain that and keep it running and pay the bills, and even if it’s not being used, it’s there clocking up bills. The user would make a request and it would build all that HTML query stuff from the database, send it all down the line to the browser. That process works. It’s how loads of things are built. It’s probably the majority of how the web is built. It’s how things like WordPress work. Is this really a problem that we need to solve? I mean, we’ve talked about costs a little bit. What are the other sort of problems with that, that we’re… that we need to address, and that serverless might help us with?
Chris: Yeah, the problems with the old school approach. Yeah, I don’t know, maybe there isn’t any. I mean, I’m not saying the whole web needs to change their whole… the whole thing overnight. I don’t know. Maybe it doesn’t really, but I think it opens up doors. It just seems like, when good ideas arrive like this, they just slowly change how the web operates at all. So, if there’s some CMS that is built in some way that expects a database to be there, it means that maybe the hosts of the future will start leveraging this in interesting ways. Maybe it feels to you like it’s still just a traditional server, but the hosts themselves have farmed it out, how they operate, to serverless architectures. So you don’t even really know that that’s happening, but they’ve found a way to slash their costs by hosting the stuff that you need in serverless ways. Maybe yeah don’t even need to care as a developer, but at a meta level, that’s what’s happening. Maybe. I don’t know.
Chris: It also doesn’t mean that… Databases are still there. If it turns out that architecturally having a relational database is the correct way to store that data, great. I mention that because this world of Serverless is kind of growing up at the same time that JAMstack is. And JAMstack is this architecture that’s, “You should be serving your website off of static hosts, that run nothing at all except for…” They’re like little CDNs. They’re like, “I can do nothing. I don’t run PHP. I don’t run Ruby. I run nothing. I run on a tiny little web server that’s just designed to serve static files only.”
Chris: “And then, if you need to do more than that, if you need to pull data from a relational database, then please do it at some other time, not at the server time. You can either do it in a build process ahead of time, and pull that stuff out of the database, pre-build static files and I’ll serve those, or do it at runtime.” Meaning you get this shell of a document, and then it makes a JavaScript request to get some data and prefills it then. So you do it ahead of time or after time, but it doesn’t mean, “Don’t use a relational database.” It just means, “Don’t have the server generate it at the time of the request of the document,” which is a… I don’t know, it’s a little bit of a paradigm shift.
Chris: It’s not just JAMstack either. We’re also living in the time of JavaScript frameworks. We’re living in a time where it’s starting to be a little more expected that the way that a JavaScript application boots up, is that it mounts some components, and as those components mount, it asks for the data that it needs. And so, it can be kind of a natural fit for something like a React website to be like, “Well, I’ll just hit a serverless function to cough up the data that it needs. It hits some JSON API essentially. I get the JSON data that I need and I construct myself out of that data, and then I render onto the page.” Now, whether that’s good or bad for the web, it’s like, “I don’t know. Too bad. Ship has sailed. That’s how a lot of people are building sites.” It’s just client rendered things. So, serverless and modern JavaScript kind of go hand in hand.
Drew: I suppose you don’t have to wholesale… be looking at one architecture or another. There’s an area in the middle where parts of an infrastructure might be more traditional and parts could be serverless, I’m guessing?
Chris: Yeah. Well, they’re trying to tell you that anyway. Anybody that wants to sell you any part of their architecture is like, “You don’t have to buy in all right now. Just do it a little bit.” Because of course, they want you to dip your toe into whatever they’re selling, because once you dip the toe, the chances that you splash yourself into the pool is a lot higher. So, I think that… it’s not a lie, though, necessarily, although I find a little less luck in… I don’t want my stack to be a little bit of everything. I think there’s some technical death there that I don’t always want to swallow.
Drew: Mm (affirmative).
Chris: But it’s possible to do. I think the most quoted one is… let’s say I have a site that has an eCommerce element to it, which means… and let’s say large scale eCommerce, so 10,000 products or something, that this JAMstack architecture hasn’t gotten to the point where that’s always particularly efficient to rebuild that statically. So, the thinking goes, “Then don’t.” Let that part kind of hydrate naturally with… hit serverless functions and get the data that it needs, and do all that. But the rest of the site, which isn’t… there’s not as many pages, there’s not as much data, you could kind of pre-render or whatever. So a little bit of both.
Drew: Of course, plenty of people are dealing with legacy systems that… some old database thing that was built in the 2000s that they may be able to stick a sort of JSON API layer on top of…
Chris: Yeah.
Drew: … and build something more modern, and perhaps serverless, and then still interact with those legacy systems by sort of gluing it altogether in a weird way.
Chris: Yeah. I like that though, isn’t it? Aren’t… most websites already exist. How many of us are totally green-fielding websites? Most of us work on some crap that already exists that needs to be dragged into the future for some reason, because I don’t know, developers want to work faster, or you can’t hire anybody in COBOL anymore, or whatever the story is. You know?
Drew: So terminology wise, we’re talking about JAMstack which is this methodology of running a code pretty much in the browser, serving it from a CDN. So, not having anything dynamic on the server. And then when we talk about serverless, we’re talking about those small bits of functionality that run on their server somewhere else. Is that right? That we were talking about these cloud function kind of-
Chris: Yeah, I mean, they just happen to be both kind of hot ideas right now. So it’s kind of easy to talk about one and talk about the other. But they don’t necessarily need to be together. You could run a JAMstack site that has nothing to do with serverless anything. You’re just doing it, you just pre-build the site and run it, and you can use serverless without having to care about JAMstack. In fact, CodePen does nothing JAMstack at all. Not that we want to talk about CodePen necessarily, but it’s a Ruby on Rails app. It runs on a whole bunch of AWS EC2 instances and a variety of other architecture to make it happen. But we use serverless stuff whenever we can for whatever we can, because it’s cheap and secure, and just a nice way to work. So, no JAMstack in use at all but serverless all over the place.
Drew: That’s quite interesting. What sort of tasks are you putting serverless to on CodePen?
Chris: Well, there’s a whole bunch of things. One of them is, I think, hopefully fairly obvious is, I need… the point of CodePen is that you write each HTML, CSS and JavaScript in the browser and it renders it in front of you, right? But you can pick pre-processor languages as well. Let’s say you like Sass. You turn Sass on in the CSS, and you write Sass. Well, something has to process the Sass. These days, Sass is written in Dart or something.
Chris: Theoretically, you could do that in the client. But these libraries that do pre-processing are pretty big. I don’t think I want to ship the entire Sass library to you, just to run that thing. I don’t want to… it’s just not, that’s not the right architecture for this necessarily. Maybe it is down the road, I mean, we could talk about offline crap, yada, yada, Web Workers. There’s a million architectural things we could do. But here’s how it does work now, is there’s a lambda. It processes Sass. It has one tiny, tiny, tiny, little job.
Chris: You send it this blob of Sass and it sends you stuff back, which is the processed CSS, maybe a site map, whatever. It has one tiny little job and we probably pay for that lambda, like four cents or something. Because lambdas are just incredibly cheap and you can hammer it too. You don’t have to worry about scale. You just hit that thing as much as you want and your bill will be astonishingly cheap. There is moments where serverless starts to cross that line of being too expensive. I don’t know what that is, I’m not that master of stuff like that. But generally, any serverless stuff we do, we basically… all nearly count as free, because it’s that cheap. But there’s one for Sass. There’s one for Less. There’s one for Babbel. There’s one for TypeScript. There’s one for… All those are individual lambdas that we run. Here’s some code, give it to the lambda, it comes back, and we do whatever we’re going to do with it. But we use it for a lot more than that, even recently.
Chris: Here’s an example. Every single Pen on CodePen has a screenshot. That’s kind of cool, right? So, the people make a thing and then we need a PNG or a JPEG, or something of it, so that we can… that way when you tweet it, you get the little preview of it. If you share it in Slack, you get the little preview of it. We use it on the website itself to render… instead of an iframe, if we could detect that the Pen isn’t animated, because an iframe’s image is much lighter, so why not use the image? It’s not animated anyway. Just performance gains like that. So each of those screenshots has a URL to it, obviously. And we’ve architected it so that that URL is actually a serverless function. It’s a worker. And so, if that URL gets hit, we can really quickly check if we’ve already taken that screenshot or not.
Chris: That’s actually enabled by CloudFlare Workers, because CloudFlare Workers are not just a serverless function, but they have a data store too. They have this thing called key-value store, so the ID of that, we can just check really quick and it’ll be, “True or false, do you have it or not?” If it’s got it, it serves it. And it serves it over CloudFlare, which is super fast to begin with. And then gives you all this ability too. Because it’s an image CDN, you can say, “Well, serve it in the optimal format. Serve it as these dimensions.” I don’t have to make the image in those dimensions. You just put the dimensions in the URL and it comes back as that size, magically. So that’s really nice. If it doesn’t have it, it asks another serverless function to make it really quick. So it’ll make it and then it’ll put it in a bucket somewhere… because you have to have a origin for the image, right? You have to actually host it somewhere usually. So we put it in an S3 bucket real quick and then serve it.
Chris: So there’s no queuing server, there’s no nothing. It’s like serverless functions manage the creation, storage and serving of these images. And there’s like 50 million or 80 million of them or something. It’s a lot, so it handles that as scale pretty nicely. We just don’t even touch it. It just happens. It all happens super fast. Super nice.
Drew: I guess it… well, a serverless function is ideally going to suit a task that needs very little knowledge of state of things. I mean, you mentioned CloudFlare’s ability to store key-value pairs to see if you’ve got something cached already or not.
Chris: Yeah. That’s what they’re trying to solve, though, with those. Those key-value pairs, is that… I think that traditionally was true. They’re like, “Avoid state in the thing,” because you just can’t count on it. And CloudFlare Workers are being like, “Yeah, actually, you can deal with state, to some degree.” It’s not as fancy as a… I don’t know, it’s key values, so it’s a key in a value. It’s not like a nested, relational fancy thing. So there’s probably some limits to that. But this is baby days for this. I think that stuff’s going to evolve to be more powerful, so you do have some ability to do some state-like stuff.
Drew: And sometimes the limitation, that sort of limited ability to maintain state, or the fact that you have no… you want to maintain no state at all, kind of pushes you into an architecture that gives you this sort of… Well, when we talk about the software philosophy of “Small Pieces Loosely Joined”, don’t we?
Chris: Mm (affirmative).
Drew: Where each little component does one thing and does it well. And doesn’t really know about the rest of the ecosystem around it. And it seems that really applies to this concept of serverless functions. Do you agree?
Chris: Yeah. I think you could have a philosophical debate whether that’s a good idea or not. You know? I think some people like the monolith, as it were. I think there’s possible… there’s ways to overdo this and to make too many small parts that are too hard to test altogether. It’s nice to have a test that’s like, “Oh, I wonder if my Sass function is working. Well, let’s just write a little test for it and make sure that it is.” But let’s say, what matters to the user is some string of seven of those. How do you test all seven of them together? I think that story gets a little more complicated. I don’t know how to speak super intelligently to all that stuff, but I know that it’s not necessarily that, if you roll with all serverless functions that’s automatically a better architecture than any other architecture. I like it. It reasons out to me nicely, but I don’t know that it’s the end-all be-all of all architectures. You know?
Drew: To me, it feels extremely web-like, in that… this is exactly how HTML works, isn’t it? You deliver some HTML and the browser will then go and fetch your images and fetch your JavaScript and fetch your CSS. It seems like it’s an expansion of that –
Chris: It’s nice.
Drew: … sort of idea. But, one thing we know about the web, is it’s designed to be resilient because network’s fragile.
Chris: Mm (affirmative).
Drew: How robust is the sort of serverless approach? What happens if something… if one of those small pieces goes away?
Chris: That would be very bad. You know? It would be a disaster. Your site would go down just like any other server, if it happens to go down, I guess.
Drew: Are there ways to mitigate that, that are particularly –
Chris: I don’t know.
Drew: … suited to this sort of approach, that you’ve come across?
Chris: Maybe. I mean, like I said, a really super fancy robust thing might be like… let’s say you visit CodePen and let’s say that there’s a JavaScript implementation of Sass and we noticed that you’re on a fairly fast network and that you’re idle right now. Maybe we’ll go grab that JavaScript and we’ll throw it in a service worker. Then, if we detect that the lambda fails, or something, or that you have this thing installed already, then we’ll hit the service worker instead of the lambda, and service workers are able to work offline. So, that’s kind of nice too. That’s interesting. I mean, they are the same language-ish. Service workers are JavaScript and a lot of Cloud functions are JavaScript, so there’s some… I think that’s a possibility, although that… it’s just, that’s some serious technical that… It just scares me to have this chunk of JavaScript that you’ve delivered to how many thousands of user, that you don’t necessarily know what they have, and what version of it they have. Eww, but that’s just my own scarediness. I’m sure some people have done a good job with that type of thing.
Chris: I actually don’t know. Maybe you know some strategies that I don’t, on resiliency of serverless.
Drew: I guess there’s a failure mode, a style of failure, that could happen with serverless functions, where you run a function once and it fails, and you can run it a second time immediately afterwards and it would succeed, because it might hit a completely different server. Or whatever the problem was, when that run may not exist on a second request. The issues of an entire host being down is one thing, but maybe there are… you have individual problems with the machine. You have a particular server where its memory has gone bad, and it’s throwing a load of errors, and the first time you hit it, it’s going to fail. Second time, that problem might have been rooted around.
Chris: Companies that tend to offer this technology, you have to trust them, but they also happen to be the type of companies that… this is their pride. This is the reason why people use them is because they’re reliable. I’m sure people could point to some AWS outages of the past, but they tend to be a little rare, and not super common. If you were hosting your own crap, I bet they got you beat from an SLA percentage kind of level. You know? So it’s not like, “Don’t build in a resilient way,” but generally the type of companies that offer these things are pretty damn reliable. The chances of you going down because you screwed up that function are a lot higher than because their architecture is failing.
Drew: I suppose, I mean, just like anything where you’re using an API or something that can fail, is just making sure you structure your code to cope with that failure mode, and to know what happens next, rather than just throwing up an error to the user, or just dying, or what have you. It’s being aware of that and asking the user to try again. Or trying again yourself, or something.
Chris: Yeah, I like that idea of trying more than once, rather than just being, “Oh no. Fail. Abort.” “I don’t know, why don’t you try again there, buddy?”
Drew: So I mean, when it comes to testing and development of serverless functions, sort of cloud functions, is that something that can be done locally? Does it have to be done in the cloud? Are there ways to manage that?
Chris: I think there are some ways. I don’t know if the story is as awesome. It’s still a relatively new concept, so I think that that gets better and better. But from what I know, for one thing, you’re writing a fairly normal Node function. Assuming you’re using JavaScript to do this, and I know that on Lambda specifically, they support all kinds of stuff. You can write a fricking PHP Cloud Function. You can write a Ruby Cloud Function. So, I know I’m specifically talking about JavaScript, because I have a feeling that most of these things are JavaScript. Even no matter what language it is, I mean, you can go to your command line locally and execute the thing. Some of that testing is… you just test it like you would any other code. You just call the function locally and see if it works.
Chris: It’s a little different story when you’re talking about an HTTP request to it, that’s the thing that you’re trying to test. Does it respond to the request properly? And does it return the stuff properly? I don’t know. The network might get involved there. So you might want to write tests at that level. That’s fine. I don’t know. What is the normal story there? You spin up some kind of local server or something that serves it. Use Postman, I don’t know. But there’s… Frameworks try to help too. I know that the serverless “.com”, which is just terribly confusing, but there’s literally a company called Serverless and they make a framework for writing the serverless functions that helps you deploy them.
Chris: So if you like NPM install serverless, you get their framework. And it’s widely regarded as very good, because it’s just very helpful, but they don’t have their own cloud or whatever. You write these and then it helps you get them to a real lambda. Or it might work with multiple cloud providers. I don’t even know these days, but their purpose of existing is to make the deployment story easier. I don’t know what… AWS is not renowned for their simplicity. You know? There’s all this world of tooling to help you use AWS and they’re one of them.
Chris: They have some kind of paid product. I don’t even know what it is exactly. I think one of the things they do is… the purpose of using them is for testing, is to have a dev environment that’s for testing your serverless function.
Drew: Yeah, because I guess, that is quite a big part of the workflow, isn’t it? If you’ve written your JavaScript function, you’ve tested it locally, you know it’s going to do the job. How do you actually pick which provider it’s going to go into and how do you get it onto that service? Now, I mean, that’s a minefield, isn’t it?
Chris: Yeah. I mean, if you want to use no tooling at all, I think they have a really… like AWS, specifically, has a really rudimentary GUI for the thing. You can paste the code in there and hit save and be like, “Okay, I guess it’s live now.” That’s not the best dev story, but I think you could do it that way. I know CloudFlare workers have this thing called Wrangler that you install locally. You spin it up and it spins up a fake browser on the top and then dev tools below. Then you can visit the URL and it somehow intercepts that and runs your local cloud function against it. Because one of the interesting things about workers is… you know how I described how it… you don’t hit a URL and then it returns stuff. It just automatically runs when you… when it intercepts the URL, like CDN style.
Chris: So, one of the things it can do is manipulate the HTML on the way through. The worker, it has access to the complete HTML document. They have a jQuery-esque thing that’s like, “Look for this selector. Get the content from it. Replace it with this content. And then continue the request.” So you can mess with code on the way through it. To test that locally, you’re using their little Wrangler tool thing to do that. Also, I think the way we did it was… it’s also a little dangerous. The second you put it live, it’s affecting all your web traffic. It’s kind of a big deal. You don’t want to screw up a worker. You know? You can spin up a dev worker that’s at a fake subdomain, and because it’s CloudFlare, you can… CloudFlare can just make a subdomain anyway. I don’t know. It’s just kind of a nice way to do a… as you’re only affecting sub-domain traffic, not your main traffic yet. But the subdomain’s just a mirror of a production anyway, so that’s kind of a… that’s a testing story there.
Chris: It brings up an interesting thing, though, to me. It’s like… imagine you have two websites. One of them is… for us it’s like a Ruby on Rails app. Whatever. It’s a thing. But we don’t have a CMS for that. That’s just like… it’s not a CMS, really. I think there’s probably Ruby CMSs, but there’s not any renowned ones. You know? It seems like all the good CMSs are PHP, for some reason. So, you want a quality CMS. Drew, you’ve lived in the CMS market for a long time –
Drew: Absolutely.
Chris: … so you know how this goes. Let’s say you want to manage your sites in Perch or whatever, because it’s a good CMS and that’s the proper thing to use to build the kind of pages you want to build. But you don’t want to run them on the same server. Unless you want to manage the pages on one site, but show them on another site. Well, I don’t know, there’s any number of ways to do that. But one JavaScript way could be, “Okay, load the page. There’s an empty div there. Run some JavaScript. Ask the other site for the content of that page and then plunk it out on the new page.” That’s fine, I guess, but now you’re in a client side rendered page. It’s going to be slow. It’s going to have bad SEO Company, because… Google will see it eventually, but it takes 10 days or something. It’s just a bad story for SEO Company. It’s not very resilient, because who knows what’s going to happen in the network. It’s not the greatest way to do this kind of “content elsewhere, content on site B, show page of site A”, situation.
Chris: You could also do it on the server side, though. Let’s say you had… Ruby is capable of granting a network request too, but that’s even scarier because then if something fails on the network, the whole page could die or something. It’s like a nervous thing. I don’t love doing that either. But we did this just recently with a worker, in that we… because the worker’s JavaScript, it can make a fetch request. So, it fetches site A, it finds this div on the page, and then it goes and asks site B for the content. Gets the content. Plugs it into that div, and serves the page before it gets anything. So it looks like a server rendered page, but it wasn’t. It all happened at the… on the edge, at the worker level, at the serverless level.
Chris: So it’s kind of cool. I think you can imagine a fetch request on the browser probably takes, I don’t know, a second and a half or something. It probably takes a minute to do it. But because these are… site B is hosted on some nice hosting and Cloudflare has some… who knows what kind of super computers they use to do it. They do. Those are just two servers talking to each other, and that fetch request happens just so super duper, duper fast. It’s not limited to the internet connection speed of the user, so that little request takes like two milliseconds to get that data. So it’s kind of this cool way to stitch together a site from multiple sources and have it feel like, and behave like, a server rendered page. I think there’s a cool future to that.
Drew: Are there any sort of conventions that are sort of springing up around serverless stuff. I’m sort of thinking about how to architect things. Say I’ve got something where I want to do two sort of requests to different APIs. I want to take in a postal address and geocode it against one, and then take those coordinates and send that to a florist who’s going to flower bomb my front yard or something. How would you build that? Would you do two separate things? Or would you turn that into one function and just make the request once from the browser?
Chris: Mm (affirmative). That’s a fascinating question. I’d probably have an architect function or something. One function would be the one that’s in charge of orchestrating the rest of them. It doesn’t have to be, your website is the hub and it only communicates to this array of single sources. Serverless functions can talk to other serverless functions. So I think that’s somewhat common to have kind of an orchestrator function that makes the different calls and stitches them together, and returns them as one. I think that is probably smart and faster, because you want servers talking to servers, not the client talking to a whole bunch of servers. If it can make one request and get everything that it needs, I think that’s probably generally a good idea-
Drew: Yeah, that sounds smart. Yep.
Chris: But I think that’s the ultimate thing. You get a bunch of server nerds talking, they’ll talk about the different approaches to that exact idea in 10 different ways.
Drew: Yeah. No, that sounds pretty smart. I mean, you mentioned as well that this approach is ideal if you’re using APIs where you’ve got secret information. You’ve got API keys or something that you don’t want to live in the client. Because I don’t know, maybe this florist API charges you $100 dollars every time flower bomb someone.
Chris: Easily.
Drew: You can basically use those functions to almost proxy the request and add in the secret information as it goes, and keep it secret. That’s a viable way to work?
Chris: Yeah, yeah. I think so. I mean, secrets are, I don’t know, they’re interesting. They’re a form of buy in I think to whatever provider you go with, because… I think largely because of source control. It’s kind of like, you could just put your API key right in the serverless function, because it’s just going to a server, right? You don’t even have to abstract it, really. The client will never see that code that executes, but in order for it to get there, there’s probably a source control along the way. It’s probably like you commit to master, and then master… then some kind of deployment happens that makes that thing go to the serverless function. Then you can’t put your API key in there, because then it’s in the repo, and you don’t put your API keys in repos. That’s good advice. Now there’s stuff. We’ve just done… at CodePen recently, we started using this git-crypt thing, which is an interesting way to put keys safely into your repos, because it’s encrypted by the time anybody’s looking at that file.
Chris: But only locally they’re decrypted, so they’re useful. So it’s just kind of an interesting idea. I don’t know if that helps in this case, but usually, cloud providers of these things have a web interface that’s, “Put your API keys here, and we’ll make them available at runtime of that function.” Then it kind of locks… it doesn’t lock you in forever but it kind of is… it’s not as easy to move, because all your keys are… you put in some input field and some admin interface somewhere.
Drew: Yeah, I think that’s the way that Netlify manage it.
Chris: They all do, you know?
Drew: Yeah. You have the secret environment variables that you can set from the web interface. That seems to work quite nicely.
Chris: Yeah, right. But then you got to leave… I don’t know, it’s not that big of a deal. I’m not saying they’re doing anything nefarious or anything. How do you deal with those secrets? Well, it’s a hard problem. So they kind of booted it to, I don’t know, “Just put them in this input field and we’ll take care of it for you, don’t worry about it.”
Drew: Is there anything that you’ve seen that stands out as an obvious case for things that you can do with serverless, that you just couldn’t do with a traditional kind of serverfull approach? Or is it just taking that code and sort of almost deploying it in a different way?
Chris: It’s probably mostly that. I don’t know that it unlocks any possibility that you just absolutely couldn’t run it any other way. Yeah, I think that’s a fair answer, but it does kind of commoditize it in an interesting way. Like, if somebody writes a really nice serverless function… I don’t know that this exists quite yet, but there could kind of a marketplace, almost, for these functions. Like, I want a really good serverless function that can take a screenshot. That could be an open source project that lots of eyeballs around, that does a tremendously good job of doing it and solves all these weird edge cases. That’s the one I want to use. I think that’s kind of cool. You know? That you can kind of benefit from other people’s experience in that way. I think that will happen more and more.
Drew: I guess it’s the benefit that we talked about, right at the top, of enabling people who write JavaScript and may have written JavaScript only for the front-end, to expand and use those skills on the back-end as well.
Chris: Yeah, yeah. I think so, I think that’s… because there’s moments like… you don’t have to be tremendously skilled to know what’s appropriate and what’s not for a website. Like, I did a little tutorial the other week, where there was this glitch uses these… when you save a glitch, they give you a slug for your thing that you built, that’s, “Whiskey, tango, foxtrot. 1,000.” It’s like a clever little thing. The chances of it being unique are super high, because I think they even append a number to it or something too. But they end up being these fun little things. They open source their library that has all those words in it, but it’s like a hundred, thousands of words. The file is huge. You know? It’s megabytes large of just a dictionary of words. You probably learn in your first year of development, “Don’t ship a JavaScript file that’s megabytes of a dictionary.” That’s not a good thing to ship. You know? But Node doesn’t care. You can ship hundreds of them. It’s irrelevant to the speed on a server.
Drew: Yeah.
Chris: It doesn’t matter on a server. So, I could be like, “Hmm, well, I’ll just do it in Node then.” I’ll have a statement that says, “Words equal require words,” or whatever, and a note at the top, “Have it randomize a number. Pull it out of the array and return it.” So that serverless function is eight lines of code with a packaged@JSON that pulls in this open source library. And then my front-end code, there’s a URL to the serverless function. It hits that URL. The URL returns one word or a group of words or whatever. You build your own little API for it. And now, I have a really kind of nice, efficient thing. What was nice about that is, it’s so simple. I’m not worried about the security of it. I don’t… you know?
Chris: It’s just… a very average or beginner JavaScript developer, I think, can pull that off, which is cool. That’s an enabling thing that they didn’t have before. Before, they were like, “Well, here’s a 2MB array of words.” “Oh, I can’t ship that to the client.” “Oh, you’ll just shut down then.” You might hit this wall that’s like, “I just can’t do that part then. I need to ask somebody else to help me with that or just not do it or pick more boring slugs or some…” It’s just, you have to go some other way that is a wall to you, because you couldn’t do it. And now, you’re, “Oh, well, I’ll just…” Instead of having that in my script slash, or in my source slash scripts folder, I’ll put it in my functions folder instead.
Chris: You kind of like moved the script from one folder to the other. And that one happens to get deployed as a serverless function instead. How cool is that? You know? You’re using the same exact skill set, almost. There’s still some rough edges to it, but it’s pretty close.
Drew: It’s super cool. You’ve put together a sort of little micro site all about these ideas, haven’t you?
Chris: Yeah. I was a little early to the game. I was just working on it today, though, because… it gets pull requests. The idea… well, it’s at serverless.css-tricks.com and… there’s a dash in CSS-Tricks, by the way. So it’s a subdomain of CSS-Tricks, and I built it serverlessly too, so this is… CSS-Tricks is like a WordPress site, but this is a static site generator site. All the content of it is in the GitHub repo, which is open-source. So if you want to change the content of the site, you can just submit a poll request, which is nice because there’s been a hundred or so of those over time. But I built all the original content.
Drew: It’s a super useful place, because it lists… If you’re thinking, “Right, I want to get started with serverless functions,” it lists all the providers who you could try it and…
Chris: That’s all it is, pretty much, is lists of technology. Yeah.
Drew: Which is great, because otherwise, you’re just Googling for whatever and you don’t know what you’re finding. Yeah, it’s lists of API providers that help you do these sorts of things.
Chris: Forms is one example of that, because… so the minute that you choose to… let’s say, you’re going to go JAMstack, which I know that’s not necessarily the point of this, but you see how hand in hand they are. All of a sudden, you don’t have a PHP file or whatever to process that form with. How do you do forms on a JAMstack site? Well, there’s any number of ways to do it. Everybody and their sister wants to help you solve that problem, apparently. So I think if I was the inventor of the word JAMstack, so they try to help you naturally, but you don’t have to use them.
Chris: In fact, I was so surprised putting this site together. Let’s see. There’s six, nine, twelve, fifteen, eighteen, twenty one, twenty two services out there, that want to help you serverlessly process your forms on this site right now. If you want to be the 23rd, you’re welcome to it, but you have some competition out there. So the idea behind this is that you write a form in HTML, like literally a form element. And then the action attribute of the form, it can’t point anywhere internally, because there’s nothing to point to. You can’t process, so it points externally. It points to whatever they want you to point it to. They’ll process the form and then they tend to do things that you’d expect them to, like send an email notification. Or send a Slack thing. Or then send it to Zapier and Zapier will send it somewhere else. They all have slightly different feature sets and pricing and things, but they’re all trying to solve that problem for you, like, “You don’t want to process your own forms? No problem. We’ll process it for you.”
Drew: Yeah, it’s a super useful resource. I’d really recommend everyone check it out. It’s serverless.css-tricks.com. So, I’ve been learning all about serverless. What have you been learning about lately, Chris?
Chris: Well, I’m still very much in this world too and learning about serverless stuff. I had an idea to… I used to play this online role playing game ages ago. I just recently discovered that it’s still alive. It’s a text based medieval fantasy kind of game. I played it when AOL was a thing, because AOL wanted to have these games that you had to be logged on to play it, because they wanted you to spend hours and hours on AOL, so they could send you these huge bills, which was, I’m sure, why they did so well at some point.
Drew: So billing by the second. Yeah.
Chris: Yeah. So games was big for them. If they could get you playing games with other people on there. So this game kind of… it didn’t debut there, but it moved to AOL, because I’m sure they got a juicy deal for it, but it was so… I mean, it’s just, couldn’t possibly be nerdier. You’re a dwarven mage and you get rune staff from your leather sheath. And you type commands into it like a terminal. Then the game responds to you. I played that game for a very long time. I was very into it. I got into the community of it and the spirit of it. It was kind of a… it was like I was just alone by myself at my computer, but yet I look back on that time in my life, and be like, “That was a wonderful time in my life.” I was really… I just liked the people and the game and all that. But then I grew up and stopped playing it, because life happens to you.
Chris: I only found out recently, because somebody started doing a podcast about it again… I don’t know how I came across it, but I just did. I was like, “This game is alive and well in today’s world, are you kidding me? This text based thing.” And I was more than happy to reactivate and get my old characters back and play it. But only to find out that the clients that they have you download for this game, haven’t evolved at all. They are awful. They almost assume that you’re using Windows. There’s just these terribly cheesy poorly rendering… and it’s text based, you think it’d at least have nice typography. No. So I’m like, “I could be involved. I could write a client for this game. Put beautiful typography in it.” Just modernize the thing, and I think the players of the game would appreciate it, but it felt overwhelming to me. “How can I do it?” But I find some open source projects. One of them is like… you can play the game through an actual terminal window, and it uses some open source libs to kind of make a GUI out of a terminal window.
Drew: Really?
Chris: I don’t know. So that was kind of cool. I was like, “If they wrote that, there must be code in there to how to connect to the game and get it all going and stuff. So at least I have some starter code.” I was trying to go along the app, “Maybe I’ll do it in Flutter or something,” so the final product app would work on mobile phones and, “I could really modernize this thing.” But then I got overwhelmed. I was like, “Ah, this is too big a… I can’t. I’m busy.” But I found another person who had the same idea and they were way further along with it, so I could just contribute on a design level. And it’s been really fun to work on, but I’ve been learning a lot too, because it’s rare for me to jump into a project that’s somebody else’s baby, and I’m just contributing to a little bit, and that has totally different technology choices than I would have ever picked.
Chris: It’s an Electron app. They picked that, which is also kind of a cool way to go too, because it’s my web skills… so I’m not learning anything too weird, and it’s cross-platform, which is great. So, I’ve been learning a lot about Electron. I think it’s fun.
Drew: That’s fascinating. It’s always amazing how little side projects and things that we do for fun, end up being the place where we sometimes learn the most. And learn skills that can then feed back into our sort of daily work.
Chris: That’s the only way I learn things. I’m dragged into something that… I was like, “They’re not…” It’s rendered with a JavaScript library called Mithril, which is… I don’t know if you’ve ever heard of it, but it’s weird. It’s not… it’s almost like writing React without JSX. You have to “create element” and do all these… but it’s supposed to benchmark way better than it… And it actually kind of matters because in this text based game, the text is just flying. There’s a lot of data manipulation, which is like… you’d think this text based game would be so easy for a browser window to run, but it’s actually kind of not. There’s so much data manipulation happening, that you really have to be really… we have to be conscientious about the speed of the rendering. You know?
Drew: That’s fascinating-
Chris: Pretty cool.
Drew: Yeah. If you, dear listener, would like to hear more from Chris, you can find him on Twitter, where he’s @chriscoyier. Of course, CSS-Tricks can be found at css-tricks.com and CodePen at codepen.io. But most of all, I recommend that you subscribe to the ShopTalk Show podcast if you haven’t already done so, at shoptalkshow.com. Thanks for joining us today, Chris. Do you have any parting words?
Chris: Smashingpodcast.com. I hope that’s the real URL.
(il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/smashing-podcast-episode-22-with-chris-coyier-what-is-serverless/ source https://scpie1.blogspot.com/2020/08/smashing-podcast-episode-22-with-chris.html
0 notes
lanceprance-blog ¡ 6 years ago
Text
Is SEO 2019 The Most Trending Thing Now?
Making money on the web is difficult for many individuals, but if you combine the particular power of article marketing along with SEO, or search engine optimisation, then you have an nearly unbeatable combination. Voice lookup is going to be 1 of the main parts of concentrate for SEO in 2019 plus beyond. By 2019 mobile advertising will represent 72% of all US digital advertisement spending. They will should understand that SEO Internet advertising mandates a business website, given that it is a necessary on the internet marketing tool. Eventually you can post these pages on various SEARCH ENGINE OPTIMIZATION sites or simply submit the particular web page so that the particular search engine spiders can get on your created content. The history of SEO will go back to the 90s whenever the search engines emerged intended for the first time. High quality content material is critical in any lengthy term SEO strategy. Successful SEO includes on-page strategies, which use intent-based key phrases; and off-page strategies, which gain inbound links from other web sites. So, along with content marketing and advertising, SEO now ought to be deeply aimed with your company's PR initiatives. Information will be a good introduction to and summary of lookup engine optimization (SEO), a very important tactic for driving visitors to your internet site. There will be a lots of misinformation about exactly what an SEO campaign (company) may accomplish when it comes in order to search engines engine rankings. But using the particular SEO analysis tools, you may increase the chances of your own website's high ranking that can enable you to get more traffic and ultimately, more business and income. Those who have the many to achieve are small businesses that will before a new harder period breaking into the snug SEARCH ENGINE OPTIMIZATION world. Deciding on the best key phrases is critical for successful SEARCH ENGINE OPTIMIZATION and it is easy in order to choose the wrong ones through falling into the trap associated with optimization. Lookup engine marketing, or SEO, is the procedure of enhancing your site's position in search results. Web Marketing SEO, and in specific, Google SEO is the essential. Get into your competitor's URL into the particular SEMRush search bar and you should end up being provided with a list associated with SEO keywords, with their ranks and traffic. About: Brighton SEO is made up of courses and a one-day search marketing conference. Before this change, the greatest practice was to avoid concealed content at any cost because it wasn't as effective intended for SEO (it was either as well much to crawl for the particular bot in some instances or even given less important by Search engines in others). This is due to the particular fact that you will require contents to be submitted in order to the websites for whom a person are working as an SEARCH ENGINE OPTIMIZATION, when you build the hyperlinks, you will need to supply the profile information, and a person will also have to provide articles for submissions as properly as numerous other types associated with written work. If you've actually searched for something online (and most of us have), a person already know read more regarding SEO than you think a person do. All of us already see this trend within several places, like extremely exact targeting of social ads -- some brands still approach SEARCH ENGINE OPTIMIZATION and content creation with the one-size-fits all attitude. You've added even more relevant content to your site blog post and increased the on-page SEARCH ENGINE OPTIMIZATION targeted against your focus keyword(s). Before my first ISS, My partner and i had always thought I may just learn everything by myself personally about global online marketing matters for example International SEO just by means of doing online investigation and experimentation, but honestly nothing beats the particular efficiency of attending a meeting like ISS where one could share your experiences and immediately gain a treasure trove associated with learnings and best practices through other international marketers. That method, you and your SEO may ensure that your site is usually designed to be search engine-friendly from the bottom up. Even so, a good SEO can furthermore help improve a current web site. If you need to know what kind associated with SEO trends are going in order to develop in 2019, look simply no further than the trends that will are developing in search within both 2017 and 2018. Webmasters are usually going to remain competitive within the online business when these people stick with SEO experts. SEARCH ENGINE OPTIMIZATION and social media marketing assure that one's site has the particular best SEO Online marketing, which usually means that their company may remain competitive in the on-line market. An SEO ("search engine optimization") expert is somebody trained to improve your presence on search engines. From an SEO perspective, a person want to have more inside links pointing to your the majority of important content.
Tumblr media
To get a better SEARCH ENGINE OPTIMIZATION, helps your website can obtain on the top among well-known search engines like Bing plus Google. On the additional side, you can ensure a good effective content marketing campaign just when you apply the SEARCH ENGINE OPTIMIZATION techniques properly. SEO : Search engine optimization: the procedure of making your internet site better intended for search engines. The purpose of SEARCH ENGINE OPTIMIZATION writing is to make your own company more visual, more attractive in website search engines. SEO will be the practice of increasing this quantity and quality of site visitors to your website through organic and natural search engine results. 31. SEO data can notify a smart social media technique. Solid keyword & marketplace research assist SEO strategy plus allow us to supply How SEO 2019 Can Help You Improve Your Health realistic projections and forecasts of opportunity inside your market. Nevertheless, when this comes to developing and carrying out an audio SEO strategy intended for your business, just creating content material for the keywords your clients are looking for is each arduous and, well, wrong. In this situation, in, the article ranks correct after the official Google suggestions (and it makes sense that will Google should be number one on their own branded query) but Smashing magazine is proven as a position 0” little of text on the question Google pop up guidelines” within. Search Engine Land, a top quality SEO blog this is the pillar of the community is definitely ranking after Smashing (which occurs to be really a style blog than an SEO one). Siteimprove SEO incorporates sixty six unique SEO checks, including tests for missing meta descriptions, punctuational mistakes, broken links, outdated documents, poor readability, and links in order to unsafe domains. But when we're looking for a larger trend it's that SEO plus what we call real marketing” will continue to blur the particular lines between them as the particular job of the SEO will become that of a traditional online marketer - having to understand the particular user, the competitors, the market and also the implementation aspect. Thanks for going to the world of Search Motor Optimization (SEO). For example, we regularly make content on the topic associated with "SEO, " but it's nevertheless very hard to rank nicely on Google for such the popular topic on this acronym alone. What can this industry shifts show about the particular future of SEO and content material marketing? Search engine marketing (SEO) is on a move. Whether a person are an SEO Professional, Electronic Marketing Agency, SMB or Brand name, looking to increase your visitors or to monitor your web site's evolution, this SEO software will certainly provide you with best within class digital marketing strategy evaluation and insights for your company. Their expertise will be incredibly valuable because there is usually plenty of science to SEO, plus it is constantly changing since search engines like Google keep on to update their algorithms. From a content viewpoint, I'd say one of the particular best ways to get SEARCH ENGINE OPTIMIZATION value out of video will be to focus your efforts upon addressing your customer's pain factors. This particular SEO model is called the "topic cluster, " and contemporary search engine algorithms rely upon them to connect users along with the information they're looking regarding. Your own SEO strategy likely involves content material designed to be shared upon social media. Take this article with regard to example, if you search with regard to reverse engineer Google, ” seo secrets, ” reverse engineering seo, ” this post is on the particular first page for every associated with those search terms. Social media marketing and SEO ought to be working together, sharing content material or utilizing engagement metrics because data for future article marketing and advertising. Simply put, SEARCH ENGINE OPTIMIZATION is marketing through an knowing of how search algorithms function combined with a knowledge associated with what human users might research for. The results furthermore underscore the value of creating new content with your SEO online marketing strategy. Once you create new content structured on your priority keywords, a person have several advantages by having an SEARCH ENGINE OPTIMIZATION marketing strategy. Both SEO and content material marketing converge in numerous places; these people do not work in seclusion. Free to show up at SearchLeeds covers everything from technological SEO and analytics, to PAGE RANK, content marketing, paid media in addition to more. Following technical mobile SEO greatest practices (e. g., image search engine optimization, redirects, JavaScript and CSS) is definitely a necessary barrier to access in today's digital world. The much better you get at SEO, the particular more traffic - and even more leads - you're likely in order to attract over time. To find out there more read our 2019 developments in SEO marketing report. Are voice searches plus it's expected that by 2019, 67 million voice-assisted devices will be going to be in make use of in the U. S. These types of kinds of changes and provide on your website shouldn't become a problem logistically — the particular overall practice among the greatest web companies nowadays is making sure that websites are flexible sufficient, especially for SEO purposes. Whether you usually are a marketer, webmaster or enterprise owner, it is very essential invest in voice SEO optimisation to reap benefits in 2019. We said earlier that cultural media isn't a direct SEARCH ENGINE OPTIMIZATION ranking factor, so you're most likely wondering why we're even talking about it. The particular effects of Black hat SEARCH ENGINE OPTIMIZATION are temporary, it shouldn't take the particular search engine long before this spots these illegal strategies plus then penalizes you; the research engine may spam your hyperlinks and if you continue making use of these malpractices the search motor will altogether block your web site and links. Algorithmic chasers, technical SEOs, plus Google Doodle followers should develop their technical skills to concentrate on emerging voice search systems and AI applications. Single Grain is a electronic marketing agency in order in order to companies like Uber, Amazon plus Salesforce grow their revenues on the internet using SEO and paid marketing.
Tumblr media
UnGagged London, uk is really a 2-day SEARCH ENGINE OPTIMISATION & Digital Marketing conference of which takes place June 11-12th, along with one-day intensive masterclasses on Summer 13th. These ‘quality updates' are very reminiscent of Search engines Panda updates and often effect many websites at the exact same time - and often these types of concentrate on demoting similar ‘low-quality' SEO techniques we have already been told Panda focuses on. I think savvy SEOs are going to utilize AI content generation (text and pictures especially) in 2019 to generate a whole new kind associated with search algorithm gaming, that might almost be viewed as dark hat. This course covers how in order to build strong links for much better SEO. SEO companies ensure that will your site has all associated with the SEO Internet marketing like as business improvement, localized item sales, high quality online era and the rest. 2018 brought many adjustments to the world of SEARCH ENGINE OPTIMISATION, including a few new formula evolutions through Google. An expert Seo agency may help any dimensions of company take full advantage of web marketing and raise the likelihood associated with actual sales while simultaneously raise brand awareness one of the particular potential audience segment. Recently we were speaking about the subject with the friendly agency in Valencia plus we directed to this entrance of Search Engine Journal along with the 20 questions that ought to be done to any SEARCH ENGINE OPTIMIZATION or SEO agency that desires to hire. Dave Gregory, Content Marketing Supervisor from the UK based overall performance marketing agency, SiteVisibility, predicts that will 2019, and not 2018, is usually going to be the genuine year of voice. If we consider Google's Guide then there are almost 200+ factors that lead a site in ranking, which we possess researched and clustered in twenty one On Page SEO Factors, that will needs your attention in 2019. SEO Wise Links can automatically link crucial terms in your posts plus comments with corresponding posts, webpages, categories and tags on your own blog. 41. An effective cultural media strategy needs a strong SEO plan. Google does make several of this data obtainable in their own free Webmaster Tools interface (if you haven't set up a free account, this is a very useful SEO tool both for unearthing search query data and with regard to diagnosing various technical SEO issues). AI and Tone of voice Search Impact SEO, Lets notice how voice search analytics Impact's SEARCH ENGINE OPTIMIZATION and can impact in the particular coming time. A great many businesses choose to hire external help for you to get the full benefits involving SEO, so a large portion of our audience is understanding how to convince their customers that search is an excellent investment (and then prove it! ). Nevertheless, SEOs tend in order to prefer links higher on the page. Because your site, because of to the nature of your own business is going to become more image orientated than written text heavy, you may be at a moderate disadvantage when it comes in order to employing SEO techniques such while keywords, backlinking and so on. Screaming Frog SEO Index tool does it to suit your needs inside a few seconds, even with regard to larger websites. SEOs also used to believe that buying links was the valid method of link developing; however, Google will now punish you for buying links within an attempt to manipulate page rank. Ultimately, achievement in SEO in 2018 plus forward will depend on generating amazing content and making this as easy as possible with regard to search engines like google in order to understand exactly what that content material is all about. Answer: When you focus upon SEO for voice search anyone need to create your articles around long tail keywords while people tend to use a lot more words in voice search. SEO is the practice associated with increasing the search engine search positions of your webpages so that will they appear higher in research results, bringing more traffic in order to your website. In the particular previous example, Bob's home web page might have the title, "Bob's Soccer Store - Soccer Shoes and boots and Equipment. " The name is the most important component of SEO, since it shows the search engine exactly exactly what the page is all regarding. 47. When creating SEO articles, keep the social layer within your mind. For those who have time to get good search engine optimisation education, after that combine this knowledge with greatest practices and you are upon your way to become a good SEO expert. 46. Use SEO practices in order to optimize your social media articles. 4. Mobile SEO plus Local Business: - As all of us mentioned before, users tend in order to search for local business upon the smartphones.
Tumblr media
Since her business, web traffic, in addition to customer base grow, Sue will certainly require some outside support with regard to keeping her SEO on observe so she could sell the particular best shoes on the stop. Whilst links continue to be essential and it's incredibly difficult in order to rank well without links through other websites, content and on-page SEO has become increasingly essential. For businesses searching to raise their search search positions, what this means is that will a comprehensive social media technique could be in order - within addition to all of the particular usual SEO tactics. Because of formula changes and the trend in order to more local searches, it actually is no longer an massive cost to implement good SEARCH ENGINE OPTIMIZATION. Whether you're killing it along with SEO, or struggling to split Blog9T the very first page, a good SEO audit may help give your own rankings a shot within the particular arm. According to web marketing experts, the impact associated with AI and Voice Browse SEARCH ENGINE OPTIMIZATION can be expected in 2019 after that. Gowns it. If you'd like in order to speak to us about a good SEO campaign, or even multilingual SEO marketing and keyword analysis then get in touch associated with just start a live conversation if we're around. Moreover, Google will carry on to elevate the importance associated with usability and technical SEO aspects, like site security, page acceleration, mobile friendliness, and navigability. As a consultant, this individual has helped many different businesses—including, Lonely Planet, Zillow, Tower Information, and literally numerous medium plus small businesses—with SEO and online-marketing advice.
Tumblr media
Right now there are a few fundamentals that will can help boost the technique, but SEO, or seo, is usually hardly ever considered. While employing the services of a great SEO agency can get a person good marketing copy for the particular website and an effective make use of of the related keywords, getting a brilliantly designed website can help a lot when this comes to attracting people plus even the search engines in order to your website. You are able to get into important SEO-related data like the particular page title, description, and key phrases for every page or a person can have the system instantly populate this data depending upon a document name or additional fields. SEO has become broadly adopted as an online marketing and advertising strategy due to its effectiveness. Creating high-quality content along with SEO in your mind through the beginning boosts search presence. In contrast, dark hat SEO is about attempting to take shortcuts and sport search engines. You may also use Google Analytics in order to find SEO keywords for content material optimization. Keyword research is the particular process SEOs value to discover what search queries consumers get into into a search engine regarding a given topic. Within today's rapidly shifting world, SEARCH ENGINE OPTIMIZATION techniques can change on the dime—and the worst part will be that you might not actually know it. Hacks that can have won you a front-page result as recently as 2016 are not only obsolete today, but they may even harm your website's rankings. This guide will be made to describe all locations of SEO—from seeking the terms plus phrases (keywords) that generate visitors to your website, to producing your internet site friendly to search motors, to building links and marketing and advertising the unique associated with your own site. With no SEO, a website can end up being invisible to search engines. On-page SEO refers to be able to every strategy, technique, and device you utilize within your web-site to optimize your web internet pages and content for search search engines like google. Today, the quality of newly arriving links is evaluated higher as compared to their quantity and may lead your SEO efforts. Lookup engine optimization (SEO) tools assist companies position themselves to obtain a favorable ranking in internet search engine results. The particular second biggest SEO trend within 2019 will be voice research. Jooxie is long past mobile search plus voice-search being a ‘trend' : they are the full upon normal now, outdoing desktop research in both volume and SEO-favorability. Rather compared to marketing at people, you require to make it possible intended for them to find you whenever they want you, and gowns where SEO is available within. Prior To proceeding BlowFish SEO full Time, Robert Headed very successful internet incoming marketing campaigns for Bella Sante Day Spa's of Boston plus Red Door Spas increasing their own yearly Gift Card Sales simply by over 400% and increasing consumer appointments over 300%. In 2019 and further than, the majority of the on the web searches will be in the particular form of conversation, and because a result, the online internet marketers will give more importance in order to artificial intelligence keywords for marketing of the web content.
Tumblr media
Here's a true statement a person hear as often: Your SEARCH ENGINE OPTIMIZATION technique for 2018 shouldn't concentrate on keywords. (1888PressRelease) Packet Marketing, a Boston-based, full-service SEARCH ENGINE OPTIMIZATION and internet marketing firm today announces they have been rated as the number five SEARCH ENGINE OPTIMIZATION firm in the 2010 Advertising World Top ten SEO Organization Award initiative. According to Forrester Study, the number of global mobile phone subscribers is expected to achieve 3. 5 billion by 2019, crossing the 50% mark intended for smartphone penetration by 2018, plus reaching 59% by 2019. On-page SEARCH ENGINE OPTIMIZATION ensures that your site can be read by both possible customers and search engine software. In 2019, voice-search will end up being the dominant way that individuals search. But SEO is all regarding the organic” rankings, which show up in the middle of the particular search results page. The most important SEARCH ENGINE OPTIMIZATION factor for creating high-quality content material is doing good keyword study. Formula changes in 2018 seem in order to centre on reducing the effectiveness of old-school SEO techniques, along with the May 2015 Google ‘Quality' protocol update bruisingly familiar. Keep in mind in SEO article writing suggestions you keywords have to create sense too. Domain Authority within SEO is a rank that will measures how popular and reliable search engines call at your own website. If the terms you happen to be hoping to rank with regard to don't display on the page, this will be much more difficult to achieve your goals -- making on-page optimization a important part of most SEO strategies. Let's confirm our knowing of SEO basics with the one question quiz about the particular factors in search rankings: webpages, links and keyphrases. When it comes in order to Google SEO, the rel=canonical hyperlink element has become VERY IMPORTANT over the many years and NEVER MORE SO. To place the particular focus on the website customer, it has been suggested that will acronym SEO should are a symbol of lookup experience optimization. It's important to remember in order to share content from your internet site or blog socially to provide it an SEO boost as well. Some Webmasters will pay out thousands of dollars to several so-called professional SEO expert in order to get their Websites on best in the rankings. It is usually preferable to ask questions upon their SEO procedures and find out whether they have knowledge associated with keyword density or if they will have information about the most recent keyword research strategies and equipment. This combined expertise makes all of us uniquely qualified to present a good ethics-based, search engine-friendly SEO guide to teach you guidelines that will reflect the latest developments looking. They protect important subjects for example search motor success factors and how SEARCH ENGINE OPTIMIZATION relates to social media advertising. In order in order to make web pages appear in high positions in the search outcomes, SEO tries to shape the website according to Google's formula. The major problem of SEO is the reality that there are billions associated with pages in the internet research engine indexes and your place in the SERPS is reliant on a constantly changing protocol which is not published.
0 notes
claraoswald81 ¡ 6 years ago
Text
You Will Never Thought That Knowing SEO 2019 Could Be So Beneficial!
Magento will be an outstanding e-Commerce platform along with inbuilt SEO. Carrying out technical SEARCH ENGINE OPTIMIZATION for local search engines is definitely really a similar process. Search engine optimization (SEO) will be a way to generate even more (and desired) traffic to your own site with the help associated with better search engine rankings regarding a keyword. SEO had gone through drastic changes over the yrs and getting higher rankings upon search engines by stuffing the particular information with too many key phrases is a thing of the particular past. This should become a crucial part of any local SEARCH ENGINE OPTIMIZATION checklists, as reviews and rankings could make it easier to stand out in search engine results. Research Engine Optimization, or SEO, need to rank in as one associated with the biggest part of your own finances for online advertising. SEO or even Search Engine Optimisation is the particular name given to activity that will attempts to improve search motor rankings. Search engine marketing (SEO) is the procedure with regard to affecting the visibility of the website or a web web page in a web search engine's unpaid results—often referred to because " natural ", " natural ", or "earned" results. Regional SEO utilizes a variety associated with strategies — getting your web site ranked on search engines such as Google, business directories such since Yelp, Superpages, Foursquare, Yellowbook, Search engines My Business listing, Bing Locations for Business page, localized articles on your website, online evaluations and other strategies. We frequently compose in-depth analyses on the method SEO and digital marketing is definitely used to improve the traffic in order to various websites. Given that lookup engines have complex algorithms that will power their technology and every person's marketing needs are unique, we are going to unable to provide specific SEARCH ENGINE OPTIMIZATION advice to our customers. All of us think SEO in 2019 will discover a shift to focusing much more on user intent, problem resolving, and hyper locality in purchase to capitalize on the ongoing rise of voice search. Private demographic information would come in a great deal handier in 2019 as significantly as the ranking of key phrases is concerned. Links are one of the particular most important SEO ranking elements. However, more advanced that will readers will recognize the reduce quality of sites employing dark hat SEO at the expenditure from the reader experience, which usually will reduce the site's visitors and page rank over period. So - THERE IS SIMPLY NO BEST PRACTICE AMOUNT OF HEROES any SEO could lay down since exact best practice to GUARANTEE a title will certainly display, in full in Search engines, at least, since the search little title, on every device. While getting as many pages listed in Google was historically the priority for an SEO, Search engines is now rating the high quality of pages in your site plus the type of pages this really is indexing. Jerrika Scott, Digital Marketing Specialist from Archway Cards Ltd, also feels in voice being the craze of 2019 rather than 2018. Today, regardless of all the hype about regardless of whether SEO is dead, we discover that organic search is nevertheless one of the highest RETURN ON INVESTMENT digital marketing channels. Upon the subject of speed, from the beginning of 2017 presently there was still much resistance in order to AMP in the SEO local community overall, but as we mind toward 2018 that feels in order to be dissipating now somewhat along with a reluctant acceptance that AMPLIFIER looks as though it's not really going away sooner. The biggest way that individuals misuse SEO is assuming that will it's a game or that will it's about outsmarting or deceiving the search engines. Both are crucial to the particular success of an SEO marketing campaign, but they're on completely different edges of the fence when this comes to improving your search motor rankings. A lot more than 50% of mobile phone customers started using voice search correct from 2015, and so we all can expect that in 2019 and after that not much less than 50% of searches can be in the form associated with voice search. Within the past, getting a great SEO was only about making use of keywords. Just remember that , SEO will be about targeting real people, not really only search engines. When you do these on-page plus off-page elements of SEO in least along with your competition, you can achieve higher research engine ranking positions in the particular organic section of search motor results pages and have the quality website capable of keeping your revenue goals. In my opinion that 2018 is going to be the particular year where voice search changes how users search and SEOs need to optimize. SEO or Search engine marketing is a term coined jointly to describe the techniques that will the website should use in order to boost its rankings on the search engine.
Tumblr media
To possess a better SEARCH ENGINE OPTIMIZATION, helps your website can obtain on the top among well-known search engines like Bing plus Google. On the some other side, you can ensure a good effective content marketing campaign just when you apply the SEARCH ENGINE OPTIMIZATION techniques properly. SEO : Search engine optimization: the procedure of making your web site better intended for search engines. The purpose of SEARCH ENGINE OPTIMIZATION writing is to make your own company more visual, more attractive in website search engines. SEO is definitely the practice of increasing this quantity and quality of targeted traffic to your website through natural search engine results. 31. SEO data can notify a smart social media technique. Solid keyword & marketplace research assist SEO strategy plus allow us to supply Eliminate Your Fears And Doubts About SEO 2019 realistic projections and forecasts of opportunity inside your market. Nevertheless, when this comes to developing and carrying out an audio SEO strategy with regard to your business, just creating content material for the keywords your clients are looking for is each arduous and, well, wrong. In this situation, in, the article ranks correct after the official Google suggestions (and it makes sense that will Google should be number one on their own branded query) but Smashing magazine is proven as a position 0” little of text on the question Google pop up guidelines” within. Search Engine Land, a top quality SEO blog this is the pillar of the community will be ranking after Smashing (which occurs to be really a style blog than an SEO one). The traditional technique to SEO has been devoted to creating excellent content that will is easily searchable via lookup engine bots. To realize SEO, you'll also need in order to know how Google search functions. 2019 will certainly still use many of these kinds of newly implemented tactics, but lookup engine optimization experts are in addition suggesting there will be a lot more. Currently more than half associated with searches account for mobile gadgets, and the number will surely move up in 2019. Within the remaining 2018 quarter, a person need to invest in mobile-first content that will rank a person higher in mobile search within 2019. The vast majority of your SEO learning need to come from online resources, yet there are a few publications that will help you conceptually understand the history of lookup, search engines, and how SEARCH ENGINE OPTIMIZATION has changed through the many years. There are a lot of methods that webmasters use within order to entice potential clients to their site—one of the particular most important and effective associated with those being Seo (SEO). SEO is important for a lot of companies because if individuals find you using a web lookup and find what they're searching for, you can receive plenty of new web visitors that will can help you earn even more money. Good SEO follows guidelines that Search engines determines are best practices in order to have your articles ranked upon top. SEARCH ENGINE OPTIMIZATION services do thorough keyword analysis to get a specific website, and after that optimize the information on the particular basis of these keywords plus theme of website. Search engine search engine optimization (SEO) will be the process of impacting the online visibility of the particular website or a web web page in a web search motor 's unpaid results—often known because "natural", " organic ", or even "earned" results. Seo (SEO) is a procedure of improving positions in natural (non-paid) search results searching motors. Additional SEO ranking factors include: available URLs, domain age (older is usually usually better), page speed, cellular friendliness, business information, and specialized SEO. Your own search engine optimization strategy can become divided into two different types: on-page SEO and off-page SEARCH ENGINE OPTIMIZATION. When you familiarize yourself with this local community, you will inevitably stumble your own way onto the websites associated with SEO Gurus” selling courses that will teach you SEO for hundreds of dollars. Expert SEO writers can also make use of modifiers and keyword variations in order to further optimize the content. In the lot associated with cases, this happens as the consequence of non-ethical SEO specifically buying and selling links which usually could get you up the particular Google ‘adder' quickly. Content will be key but content alone is definitely no longer king; content, framework, and relevance will drive overall performance of content and digital marketing and advertising, and SEO is part yet not full parcel. Ultimate WordPress SEARCH ENGINE OPTIMIZATION Guide for Beginners (Step simply by Step) — 28% of sites on the internet use Wp. SEO is frequently abused as a blanket term regarding digital marketing. BrightLocal provides been helping local businesses, multi-location businesses and SEO professionals realize and enhance their positions in the particular local search market since year. Which where search engine optimization, or even SEO, is available in. Right here are the best conferences in order to learn more about SEO (and digital marketing) in 2018 plus 2019. Every little or multi-location company can develop their business and attract even more customers using Local SEO methods In this article we describe what local search optimization will be, and why using a regional SEO company can help enhance your online visibility. It provides an introduction in order to the basics of search motors and SEO, and then extends into more advanced topics. Black hat SEO is the group of unethical practices in order to improve rankings of the site in the search engine outcomes page. SEO Wise Links provides automatic SEO advantages for your site in inclusion to custom keyword lists, from it and much more. Detailed in this particular Bruce Clay SEO tutorial are reliable strategies that aim to enhance both internal and external elements that influence search ranking. To demonstrate, if you we're trying to end up being found locally when users appear for SEO services in your own area, and you're based within Wales, one such search expression you might look to optimize for may be "SEO wales". Search Engine Optimizers (SEO's) are people who optimize internet sites to make them show upward higher on search engines plus gain more website visitors.
Tumblr media
You will end up being introduced to the foundational components of how search engines such as google work, how the SEARCH ENGINE OPTIMIZATION landscape is promoting and exactly what you can expect in the particular future. The SISTRIX Toolbox consists associated with six modules 1) SEO, 2) Universal, 3) Links, 4) Advertisements, 5) Social and 6) Optimizer. Low-quality content can severely impact the achievements of SEO, within 2018. When your own SEO starts building strong environment, competitors can start maligning your own SEO backlinks. ” With content marketing spend likely to reach $300 billion by 2019, this statistic is worrisome. Now the electronic marketing companies know how in order to use AI for SEO, plus in coming years AI may dominate in developing the SEARCH ENGINE OPTIMIZATION strategies of the digital marketing and advertising companies. Ray Cheselka, AdWords and SEARCH ENGINE OPTIMIZATION Manager at webFEAT Complete, the design and SEO agency, states that in 2019 search objective will continue to become even more important. Expert writers of SEO articles can take the time to study the particular industry or specialized niche market. 2 tools to help with regional SEO are BrightLocal (for rankings) and MozLocal (for local lookup optimization). Concerning on-page SEO best practices, I usually link out to other quality appropriate pages on other websites exactly where possible and where a individual would find it valuable. It includes a favorite Routine Table of SEO Success Factors”, a 9-chapter guide to SEARCH ENGINE OPTIMIZATION basics, and links to several from the site's most useful blog posts. SEO is really the shortened phrase for search motor optimization. I believe SEO within 2019 will largely be such as SEO in 2018, with the particular exception of some big” Search engines update that wipes out sufficient websites to make people think the algorithms have grown significantly smarter. SEARCH ENGINE OPTIMIZATION works by optimizing a cyberspace pages, conducting keyword research, plus earning inbound links. The business offers excellent SEO packages that will help rank the clients' internet site within top three pages associated with search engine pages. That can make SEO an ideal lead era tool, because when searchers stick to links back to your web site, you have the chance in order to convert them to leads, plus later make sales. Whenever asked to point out principles that are unique towards the particular web, most people will arrive up with two main types: SEO and social media. How many links do a person need for good off-page SEARCH ENGINE OPTIMIZATION? If you are performing a professional SEO audit to get a true business, you are going in order to have to think like the Google Search Quality Rater Plus a Google search engineer to offer real long-term value to the client. 44. Give your own social media profiles an SEARCH ENGINE OPTIMIZATION boost. 10% of our experts believe that will there's likely to be the lot of focus on cellular in 2019, as older SEOs realize optimizing for desktop is definitely pointless. White hat SEO is not really just about following guidelines, yet is about ensuring that the particular content google search indexes and eventually ranks could be the same content the user will see. This particular means that SEOs spend the lot of time working upon getting links in a procedure called link building Link-building methods can range from simply asking for a link to writing the guest post - and generally there are many others. Basically, SEO plans the keywords that will are to be delivered plus content provides them. So, when you are considering about applying SEO in the particular broad sense, you need in order to channelize its technical specifications via content marketing. In 2019, you can wager that White Hat SEO will certainly have separated itself even more from Black Hat SEO, plus that above all else, delivering quality content will be the particular most important factor for companies ranking in search. The outcomes are not instant, you can use the time on attempting other Internet marketing techniques whilst SEO would go to function. The third major SEARCH ENGINE OPTIMIZATION ranking signal is Google's synthetic intelligence search ranking algorithm. Sometimes SEO is usually simply a matter of producing sure your site is organized in a way that research engines like google understand. SEARCH ENGINE OPTIMIZATION involves a number of changes towards the HTML of person Web pages to obtain a higher search engine ranking. As a result associated with technological advancement, SEO is in order to undergo more drastic changes, plus the two latest technologies that will are expected to influence SEARCH ENGINE OPTIMIZATION to some very great level are AI (Artificial Intelligence) plus Voice Search.
Tumblr media
Since her business, web traffic, in addition to customer base grow, Sue may require some outside support intended for keeping her SEO on observe so she could sell this best shoes on the obstruct. Whilst links continue to be essential and it's incredibly difficult in order to rank well without links through other websites, content and on-page SEO has become increasingly essential. For businesses searching to raise their search search positions, what this means is that will a comprehensive social media technique may be in order - within addition to all of the particular usual SEO tactics. Because of criteria changes and the trend in order to more local searches, it actually is no longer an massive cost to implement good SEARCH ENGINE OPTIMIZATION. Whether you're killing it along with SEO, or struggling to break Blog9T the very first page, a good SEO audit will help give your own rankings a shot within the particular arm. According to web marketing experts, the impact associated with AI and Voice Browse SEARCH ENGINE OPTIMIZATION can be expected in 2019 after that. Gowns it. If you'd like in order to speak to us about a good SEO campaign, or even multilingual SEO marketing and keyword analysis then get in touch associated with just start a live talk if we're around. Moreover, Google will carry on to elevate the importance associated with usability and technical SEO aspects, like site security, page velocity, mobile friendliness, and navigability. As a consultant, this individual has helped many different businesses—including, Lonely Planet, Zillow, Tower Information, and literally numerous medium plus small businesses—with SEO and online-marketing advice.
Tumblr media
Right now there are a few fundamentals that will can help boost the technique, but SEO, or seo, is definitely hardly ever considered. While employing the services of a great SEO agency can get a person good marketing copy for the particular website and an effective make use of of the related keywords, getting a brilliantly designed website will certainly help a lot when this comes to attracting people plus even the search engines in order to your website. You are able to get into important SEO-related data like the particular page title, description, and key phrases for every page or a person can have the system instantly populate this data depending upon a document name or additional fields. SEO has become broadly adopted as an online marketing and advertising strategy due to the effectiveness. Creating high-quality content along with SEO in your mind through the beginning boosts search presence. In contrast, dark hat SEO is about attempting to take shortcuts and video game search engines. You may also use Google Analytics in order to find SEO keywords for content material optimization. Keyword research is the particular process SEOs value to discover what search queries consumers get into into a search engine with regard to a given topic. Within today's rapidly shifting world, SEARCH ENGINE OPTIMIZATION techniques can change on the dime—and the worst part will be that you might not actually know it. Hacks that can have won you a front-page result as recently as 2016 are not only obsolete today, but they may even harm your website's rankings. But definitely, the acronym many people ask about is SEARCH ENGINE OPTIMIZATION, or search engine optimization. Between this plus 2017's Best SEO Campaign honor from the UK Search Honours, it's clear the world will be starting to recognize Elephate because one of the most trustworthy SEO and Content Marketing firms in Europe. To understand how SEO functions to improve search rankings, most of us have to break it straight down a little. Whichever way you choose in order to categorize keywords, one of the particular most important steps in SEARCH ENGINE OPTIMIZATION does keyword research. Some good examples of White Hat SEO consist of optimizing META tags, putting key phrases in URLs, submitting sites in order to directories, making sitemaps, obtaining hyperlinks on related sites, and producing keyword-optimized content. An SEO Executive optimizes internet sites for making them show up increased on search engines like search engines and gain more website guests. Nevertheless, the fresh trend in SEO is ideal for long-tail keywords and even more conversational searches. SEO is the great marketing tool for the particular websites promoting their businesses on-line. Still, the keyword element of SEO is becoming significantly difficult with Google Adwords concealing volume data. Making use of advanced Search engines semantic search algorithms, we link the gap between old college SEO and the new articles marketing. Tug has been appointed solely to roll out a multi-lingual search engine marketing techniques campaign using its knowledge in international SEO and PAY PER CLICK.
Tumblr media
It's maybe not an ideal SEO page title because of the multiple distinct services, however the structure might give rise to rankings for some long-tail keyword phrases. SEOs will have to collaborate carefully with designers and developers in order to prioritize technical SEO and user friendliness search engine ranking factors to achieve a competitive edge. Further SEO Smart hyperlinks allows you to set upward your personal keywords and set associated with matching URLs. In the event that search engine optimization SEO will not involve ethical practices, the particular website may have low presence on Google as well as be taken out from the Google index. An SEO technique is definitely considered white hat if this conforms to the search engines' guidelines and involves no deceptiveness. As an SEO, which indicates that you have to considerably raise your standards around high quality content and links in purchase to achieve top search motor rankings. Most SEO focuses on customization for Google's search engine, which usually dominates the overall search marketplace with a share of more than 90%. 7. Social indicators may even become more essential to SEO as time passes. Individual Grain is really a electronic marketing agency that helps businesses like Uber, Amazon and Salesforce grow their revenues online making use of SEO plus paid advertising. This may be a growth chance intended for content marketing-specific agencies and the necessary and justified budget series item for in-house SEO groups. SEO includes both technical and creative components needed to improve rankings, drive visitors, and increase awareness in lookup engines. Since it turns out, there's more in order to on-page SEO than optimizing regarding keywords. Search engines motor optimization (organic SEO) describes the particular methods used to obtain the high placement (or ranking) upon a search engine results web page in unpaid, algorithm-driven results upon the given search engine. Also, videos have got a lot of untapped probable - great for SEO plus make for good user wedding. The extremely best SEO expert 2019 can tell you for High-End mobile devices, we're seeing more format changes to focus, provide the better experience, search results. Social SEO is especially helpful for online reputation administration. It isn't just the means that Google ranks optimized articles, but the way that they will rank poorly constructed or taboo content that will push your current ranking to where it really should to be in 2019. Ray Cheselka, SEO & Ppc Manager at SEO and style agency, webFEAT Complete, predicts that will sites with over a 2 second load time will become penalized, and search intent is definitely going to still grow within importance. SEO consists of ordering the site's architecture and hyperlinks to make pages inside the particular website easier to find plus navigate. In contrast, articles that no one is humming about have minimal effect upon social SEO. They are usually generally knowledgeable within the are usually of both SEO and content material marketing. When it arrives to reviews, customers work as a good army of link builders plus keyword writers so your SEARCH ENGINE OPTIMIZATION structure is shaped without a person having to lift a ring finger.
0 notes
mctvcker ¡ 6 years ago
Text
The 10 Reasons Tourists Love SEO 2019
Magento is definitely an outstanding e-Commerce platform along with inbuilt SEO. Carrying out technical SEARCH ENGINE OPTIMIZATION for local search engines is definitely really a similar process. Search engine optimization (SEO) is definitely a way to generate even more (and desired) traffic to your own site with the help associated with better search engine rankings with regard to a keyword. SEO had gone through drastic changes over the many years and getting higher rankings upon search engines by stuffing the particular information with too many key phrases is a thing of the particular past. This should become a essential part of any local SEARCH ENGINE OPTIMIZATION checklists, as reviews and rankings could make it easier to stand out in search engine results. Research Engine Optimization, or SEO, need to rank in as one associated with the biggest part of your own finances for online advertising. SEO or even Search Engine Optimisation is the particular name given to activity that will attempts to improve search motor rankings. Search engine search engine optimization (SEO) is the procedure intended for affecting the visibility of the website or a web web page in a web search engine's unpaid results—often referred to since " natural ", " natural ", or "earned" results. Nearby SEO utilizes a variety associated with strategies — getting your web site ranked on search engines such as Google, business directories such since Yelp, Superpages, Foursquare, Yellowbook, Search engines My Business listing, Bing Locations for Business page, localized content material on your website, online evaluations and other strategies. We frequently create in-depth analyses on the method SEO and digital marketing will be used to boost the traffic in order to various websites. Selecting the most appropriate key phrases is critical for successful SEARCH ENGINE OPTIMIZATION and it is easy in order to choose the wrong ones through falling into the trap associated with optimization. Lookup engine search engine optimization, or SEO, is the procedure of enhancing your site's rating in search results. Web Marketing SEO, and in specific, Google SEO is the essential. Get into your competitor's URL into the particular SEMRush search bar and you will end up being provided with a list associated with SEO keywords, with their ranks and traffic. About: Brighton SEO is made up of courses and a one-day search marketing conference. Before this change, the greatest practice was to avoid concealed content at any cost since it wasn't as effective with regard to SEO (it was either as well much to crawl for the particular bot in some instances or even given less important by Search engines in others). This is due to the particular fact that you will require contents to be submitted in order to the websites for whom a person are working as an SEARCH ENGINE OPTIMIZATION, when you build the hyperlinks, you will need to offer the profile information, and a person will also have to supply articles for submissions as properly as numerous other types associated with written work. If you've actually searched for something online (and most of us have), a person already know read more regarding SEO than you think a person do. All of us already see this trend within several places, like extremely accurate targeting of social ads : some brands still approach SEARCH ENGINE OPTIMIZATION and content creation with the one-size-fits all attitude. A reputable SEARCH ENGINE OPTIMIZATION company carries on together with your Company Profile and then do these profile building and then Regional Business Listing Optimization. Our first five steps had been dedicated to on-page SEO strategies Link-building is the primary goal of off-page SEO, and is usually also an enormous factor within how search engines rank your own web pages. So far since I know, this only functions for HTML or CSS web pages - I don't go significantly for Flash websites, and We am unsure how that cookware out regarding search engines plus SEO. In fact, a huge part of SEO in 2018 is writing for humans PLUS search engines (also known since: SEO copywriting”). SEO is the significant part of any web marketing strategy. Canonical: This connect to handles content syndication, which basically allows other blogs to post your projects (similar to franchising) with out hurting your website's SEO ranking—simply with the addition of a rel=canonical can obtain your brand and content out there on the web in several outlets, ensuring a greater get to and bigger audience without harming your own search results. We are usually offering affordable search engine search engine optimization SEO services to clients throughout the globe. If you want the strong social media strategy, a person simply can't ignore SEO. Another SEO-related plugin, W3 Total Cache is used to improve the performance of your Wp blog or a website simply by integrating features such as content material delivery networks to be capable to reduce the loading occasions for your pages. To possess a better SEARCH ENGINE OPTIMIZATION, helps your website can obtain on the top among well-known search engines like Bing plus Google. On the additional side, you can ensure a good effective content marketing campaign just when you apply the SEARCH ENGINE OPTIMIZATION techniques properly. SEO : Search engine optimization: the procedure of making your internet site better intended for search engines. The purpose of SEARCH ENGINE OPTIMIZATION writing is to make your own company more visual, more attractive in website search engines. SEO is usually the practice of increasing the particular quantity and quality of targeted traffic to your website through natural search engine results. 31. SEO data can notify a smart social media technique. Solid keyword & marketplace research assist SEO strategy plus allow us to offer Never Mess With SEO 2019 And Here's The Reasons Why realistic projections and forecasts of opportunity inside your market. Nevertheless, when this comes to developing and doing an audio SEO strategy with regard to your business, just creating content material for the keywords your clients are looking for is each arduous and, well, wrong. In this situation, in, the article ranks correct after the official Google suggestions (and it makes sense that will Google should be number one on their own branded query) but Smashing magazine is demonstrated as a position 0” little of text on the problem Google pop up guidelines” within. Search Engine Land, a top quality SEO blog this is the pillar of the community is definitely ranking after Smashing (which occurs to be associated with a style blog than an SEO one). Also companies considering about getting Search engine marketing services should go through these types of magazines to familiarize themselves making use of the latest trends within the particular SEO and web-based marketing business to allow them to determine the assistance offered for all of them from the selected SEO companies. Mobile SEARCH ENGINE OPTIMIZATION in 2018 will probably be all regarding Progressive Web Apps (PWAs). The term SEARCH ENGINE OPTIMIZATION also describes the making internet pages easier for internet lookup engine indexing software, known because "crawlers, " to find, check, and index your internet site. I feel that technical SEARCH ENGINE OPTIMIZATION mistakes that affect crawl spending budget - and also pollute Search engines with non-SEO-friendly content such because social landing pages, WordPress mass media archives, offer pages and cloned e-commerce product pages - can have an even more detrimental effect upon sites moving forward. Effective SEO lets you enhance your web​site to exhibit up within search engines. Many of us will get into how to be able to pick the best keywords with regard to your business later in this particular SEO guide, but it perfect you to know how to be able to use them, as they will be referenced throughout this section. Although meta descriptions are not some sort of ranking factor for search machines, they do hold value intended for your website and are component of your SEO presence. Let us speak a bit as to exactly what SEO is before we enter into the SEO article writing suggestions for people who may become new or do not very understand it. SEO stands intended for Seo. Search engine optimisation (SEO) could be the process of impacting the online visibility of the particular website or a web web page in a web search motor 's unpaid results—often known since "natural", " organic ", or even "earned" results. Seo (SEO) is a procedure of improving positions in natural (non-paid) search results searching motors. Additional SEO ranking factors include: available URLs, domain age (older will be usually better), page speed, cellular friendliness, business information, and specialized SEO. Your own search engine optimization strategy can end up being divided into two different classes: on-page SEO and off-page SEARCH ENGINE OPTIMIZATION. While you familiarize yourself with this local community, you will inevitably stumble your own way onto the websites associated with SEO Gurus” selling courses that will teach you SEO for hundreds of dollars. Expert SEO writers can also make use of modifiers and keyword variations in order to further optimize the content. Within a lot associated with cases, this happens as the consequence of non-ethical SEO particularly buying and selling links which usually could get you up the particular Google ‘adder' quickly. Content is usually key but content alone is definitely no longer king; content, framework, and relevance will drive overall performance of content and digital marketing and advertising, and SEO is part yet not full parcel. Ultimate WordPress SEARCH ENGINE OPTIMIZATION Guide for Beginners (Step simply by Step) — 28% of sites on the internet use Wp. SEO is frequently abused as a blanket term with regard to digital marketing. SEO focuses upon rankings in the organic (non-paid) search results. SEO therefore helps you get traffic through search engines. With Ahrefs, a great starting place for keyword research with regard to SEO is the Keywords Explorer tool. Topics: SEO, backlink, content material marketing, social media marketing plus advertising, analytics, and more. 60+ sessions on hot topics, accomplishment stories and strategies in SEARCH ENGINE OPTIMIZATION, SEA, PPC, Social Media, On the internet Marketing and SMX Future Observe. 2018 (I believe) will be a lot associated with catch up on current SEARCH ENGINE OPTIMIZATION themes, with the biggest trends” occurring around voice queries to look results. Therefore, SEOmonitor tracks all of the related data that could influence SEARCH ENGINE OPTIMIZATION performance and displays it within the Keyword Events Timeline. If you forget that will quality content is a best priority, then you can definitely forget about having an SEARCH ENGINE OPTIMIZATION strategy. The particular way we asking the device is different from person in order to person. therefore, optimizing your web site 100% mobile friendly to complete cellular voice search is very essential to SEO 2019. I actually am just newbie and significantly i do get frustrated whenever articles doesn't rank on best or near top, but individuals like you and many some other also inspire me to by no means give up. There are various points that i wasn't identified up to now but say thanks to to you, you are often make us learn important issues about seo. The number a single reason for using video upon your site to improve SEARCH ENGINE OPTIMIZATION is to increase the quantity of time users remain upon your site. Search engine optimization had been but still is fascinating in order to me. The SEO placement intended for any size business begins along with proper web site optimization, a good excellent link building strategy plus a well planned online marketing and advertising plan. One section of focus for higher marketing and SEO performance within 2018 is the confluence associated with content, influence, and social. This can be advantageous for SEO, as it helps avoid search engine crawlers from getting confused by syntax or affirmation errors, and leads to even more accurate indexing. Stop thinking in terms associated with SEO vs. content marketing” plus start exploring how well these people perform together. (Give it a try tone of voice search using OK Google through your cell phone and enquire "What Is BlowFish SEO" ) When all remains as it is usually, Google will read out loud almost all about my company in the short to the point method, These cards are formatted in order to fit the screen of your own cell with no scrolling upward or down. Although SEO is really the time-consuming process but believes me personally, if you work well along with dedication and trendy techniques, the particular combined results of on-page plus off-page SEO holds you upon the top with rank #1 for a specific search outcome. Fairly lately, I've seen a resurgence associated with on-page SEO factors making the difference searching engine rankings. Based on SEO software program company Moz's bi-yearly survey upon search engine ranking factors, the particular titles on your page are usually one of the nine almost all important considerations a search motor makes. Having an SEO technique that effectively promotes your picture taking business, driving new traffic plus taking into consideration the requirements of the site visitors although you concentrate on perfecting your current art is a really strong tool. SEO is Lookup Engine Optimization and it will be required for make a web site view-able. And you may see the section on exactly where to use keywords for even more information on integrating these key phrases into your SEO content technique. 22. Use social media in order to boost local SEO. SEO is the acronym for Seo. Even though certain techniques of SEO content material remain the same, like not really compromising on quality; there are usually definitely techniques which have advanced from the past and a person should find out whether your own SEO articles writing services are usually very well aware of that will or not. SEO service suppliers are specialized in increasing the particular traffic to your site simply by increasing your position in the particular search engine ranking positions. Entice international people to your web sites with these SEO tips. The top challenges within organic SEO are link developing (easy-to-get links no more have got much value) and keyword study (the low-hanging fruit is lengthy gone). For instance, the word ‘SEO tips' is furthermore included inside the less competing phrase ‘SEO tips 2019', which usually is searched for too. SEO & Content Marketing Software for eCommerce Business, Agencies and Enterprises. Calib Backe, SEO Manager for Walnut Holistics, writes that mobile plus voice are going to carry on their domination of importance because we rely on desktop much less and less. If much associated with your competitors has hired SEARCH ENGINE OPTIMIZATION firms to 10-20 keywords within a moderately competitive industry, after that you will have to spend a small more. The Google Research Console could be the most essential SEO tool on the globe. No BS. When you're done with the fatigued cliches told over and more than again at SEO Conferences, and then you're prepared to experience UnGagged - an UnConventional SEO in addition to Digital Marketing conference that offers real-world results. SEO is a good acronym for the phrase "search engine optimization. " Search motor optimization is about doing specific points to your website to operate a vehicle even more traffic to it so that will you can increase online product sales - and traffic. By 2019, the method we search might not modify completely, but these new technology will definitely change the way all of us build links, engage users, plus generate leads through content marketing and advertising. Site Champion® increases site visitors by helping shoppers find your own products in search engines by means of increased keyword rankings using SEARCH ENGINE OPTIMIZATION automation. While link quantity is nevertheless important, content creators and SEARCH ENGINE OPTIMIZATION professionals are realizing that hyperlink quality is now more essential than link quantity, and because such, creating shareable content will be the initial step to earning valuable hyperlinks and improving your off-page SEARCH ENGINE OPTIMIZATION. Over the particular last 20 years SocialSEO offers grown to be the biggest full digital marketing firm within the state of Colorado, supplying Social Media, Pay Per Click on and SEO in Denver, Co Springs, Boulder and across the particular State. Lastly, Amazon will dominate ecommerce queries in 2018 via Alexa voice, touch, as well as other innovative interfaces, leaving many e-commerce SEOs in order to focus in on the content-side of their marketing. If you could use something like 20 times more chances for website traffic, three times better benefits than social, and returns upon investment that will only boost over time, SEO must always be a priority. Since artificial intelligence search motor optimization is in its preliminary stage, the impact of synthetic intelligence in marketing is heading to be felt in 2019 and 2020. So nearby Blog9T businesses have to put specific effort into maximizing their SEARCH ENGINE OPTIMIZATION efforts for local visibility, which usually means doing things like customizing their Google Places pages. All these types of steps are used by the particular company to provide the greatest search engine optimization services in order to its clients in Thailand, below the Thailand SEO concept. Keyword phrases, although it is not being as important for you to SEO ranking as they as soon as were, still play an essential part. •Social Press Optimization - SEO services make use of various means of social press optimization for clients. Lots of people are usually now asking, How will AI and Voice Search impact SEO”? User-generated content racks up serious SEARCH ENGINE OPTIMIZATION points by providing sites along with fresh content, bundles of inbound links, and sources for organically framing natural attributes. You'll find it right here Also really worth checking away is Moz's Beginner's Facts SEARCH ENGINE OPTIMIZATION, ” which you'll find right here, and the SEO Success Pyramid from Small Business Search Marketing and advertising. Off-page SEARCH ENGINE OPTIMIZATION strategy refers to the impact of a change in additional websites in your search rank. Bruce Clay-based set the standard for honest internet marketing by authoring the particular " SEO Code of Integrity, " now translated into eighteen languages, and it has already been a respected leader within the particular ever-changing research engine marketing industry since mil novecentos e noventa e seis. Website SEARCH ENGINE OPTIMIZATION (including, content optimisation, meta marketing, the significance of links). A good SEO Specialist is someone that is an expert on the particular topic of search engine optimisation. Just due to the fact a proper On-page and Off-page SEO optimization work will provide a better Ranking to your own website in Search Engine Outcome Page (SERP). The greatest SEO change and pattern I realize already happening within 2018 is Google's switch in order to a mobile-first index, so when a site is not however mobile-friendly and optimized for this, it's critical to prioritize this particular as it is now basic for its SEO success. With good on-page SEO, research engines can easily index your own web pages, understand what your own site is about, and effortlessly navigate the structure and content material of your website, thus rank your site accordingly. We cover every topic within the digital marketing sphere like SEO, technical SEO, local SEARCH ENGINE OPTIMIZATION, PPC, SEM, content marketing, CRO, analytics, backlink, marketing strategy, cellular marketing, social media marketing and even much more. Any SEARCH ENGINE OPTIMIZATION company has to be capable to create high quality content material on an ongoing basis. SEO is the treatment for making changes to the website to be able in order to improve its position in the particular search engines like google. Robert thinks that by 2019 most cellular searches will be conducted simply by voice by mobile devices or even virtual assistants in fact this is very important to obtain your positioning in the research engine ranking positions as shortly as possible. As the particular factors search engines like Search engines, Bing, and Yahoo use in order to rank sites are kept magic formula and change frequently, we develop all known SEO best methods into every Squarespace site. Black hat SEO may get you to the best of SERP in a brief time, however, search engines such as google will most probably punish and ban the website more rapidly or later. If you might have read from the beginning, a person know that links are the key SEO ranking factor. Right now there are 2 types of lookup engine optimization or SEO. Now, pay shut attention to the components that will make up on-page SEO, since this is where non-SEO authorities will be able to help to make the most meaningful impact about their search engine rankings. Every advertising SEO blog will be talking about online video marketing and advertising and every third company professional you talk to is about to shift marketing dollars to a good online video campaign. ” Simply by 2019, video is expected in order to account for 80 percent associated with all web traffic. Don't set it and overlook it. Take time to review your SEO keyword strategy each few months to make certain it's still relevant and attaining the outcomes you want. Stories are a easy method to do marketing, you simply need to include some custom made images or text in purchase to let people know these people could swipe to click plus see where you can obtain a skirt, grill, buy SEARCH ENGINE OPTIMIZATION, or anything else you're attempting to pitch to the people. Jana Granko, PR (public relations) head with SEMrush - one of the particular top marketing tools of the particular world - believe that within 2019 AI (artificial intelligence) would certainly change the way people research for keywords. In fact, SEARCH ENGINE OPTIMIZATION is simply one part associated with every successful digital marketing technique, but possibly the most essential part. These are called SEO standing factors. SEARCH ENGINE OPTIMIZATION is the art and technology of driving the most skilled visitors to your website simply by attaining high search engine outcomes. With Digital SEO Land, Rintu Biswas a professional SEO expert inside Kolkata will assist you to be able to build quality backlinks to your site. This ‘what is SEO‘ guide (and this whole website) is not about churn and burn type of Search engines SEO (called webspam to Google) as that is too dangerous to deploy on a actual business website in 2018. Several search engines have also supplied to the SEO industry, plus are frequent sponsors and visitors at SEO conferences, webchats, plus seminars. If a person have a website that a person want to become easily discovered by a search engine, you need to increase your site rank by means of SEO as well. Some SEARCH ENGINE OPTIMIZATION companies focus on link building” and increasing the authority associated with their clients' websites. Through an SEO perspective, we had been introduced to RankBrain nearly 2 years ago, a machine-learning synthetic intelligence that Google's been making use of to process an extremely big proportion of search results. Specifically, you'll notice exactly how to make use of advanced on-page SEO strategies (like Bucket Brigades”) to get higher Google ranks and more organic traffic. Search engines has introduced (at least) the ‘percieved' risk to publishing plenty of lower-quality pages on your own site to in order in order to curb production of old-style SEARCH ENGINE OPTIMIZATION friendly content based on manipulating early search engine algorithms. Grey hat SEARCH ENGINE OPTIMIZATION is entirely centered on enhancing search engine rankings. There are numerous aspects to SEARCH ENGINE OPTIMIZATION, from the words on your own page to the way various other sites link to you upon the web. So, rather than viewing SEARCH ENGINE MARKETING as an umbrella term covering SEO, it's more accurate in order to view SEM (paid search) plus SEO (organic search) as individual entities to use as portion of your Search Marketing arsenal.
0 notes
atakportal ¡ 6 years ago
Text
Palazzo - Real Estate WordPress Theme
New Post has been published on https://click.atak.co/palazzo-real-estate-wordpress-theme/
Palazzo - Real Estate WordPress Theme
Latest Version 1.0.9 – Jul 25, 2018 – view changelog WordPress 4.9.x Ready Visual Composer 5.4.x Ready WooCommerce 3.4.x Ready
Palazzo, Beyond Functional Real Estate Theme, is our effort for a new and a great user experience in building up a real estate site. The theme is not only a theme for real estate business but also a great solution for all related real estate terms. We take care all needs that real estate agents, agencies and companies wish them being available in. Also, with easy-to-use front-end and powerful backend features the theme will engage to more users.
Being in details, Palazzo comes with the four smashing homepages with reasonable structures and a cool look insight. Plus, Advanced search gives users full of details that be needed for a specific property and also get a strong impression with comprehensive single property page in various style. Last but not least, Agency list we add will give a convenient way for companies to manage their real estate sites as well as all agents who work for them.
Palazzo goes beyond basic real estate theme with these core features below!
Palazzo Theme – Full Features List:
One Click Installation
Only a click to get all the demo content visible on your site.
Auto Update The Theme & Plugins
No more wasting your time updating theme and plugins manually. The theme can be easily updated automatically with just one click.
Live Theme Customizer
With Palazzo, you get to choose the color scheme of your site, ensuring that the aesthetics will match your vision.
Fully responsive and retina ready
Palazzo is optimized for any screen resolution and it looks fantastic on phones, tablets and PCs
Extensive Homepages
As an endless inspiration, Palazzo satisfies all your needs as you wish with distinguished functional homes.
4 Custom Post Types
Properties: You can add as many properties as you want in admin panel or frontend submission. Agents: Add and manage agents’ information easily with just a few steps. Gallery: Palazzo’s gallery is displayed beautifully with the UI-focused layout. Testimonial: Input testimonials and get them displayed on any pages using testimonial shortcode
Advanced Search
Help your visitors search for the appropriate property to meet their needs by multiple search criteria like property status, types, location, price range and more.
Live Property Search
Palazzo helps you save lots of time by live property search feature. It shows search results right after you choose the criteria, no need to click on Search Property button.
Frontend Submission
Exclusive: Easily customize Property’s icon and color on map
Floor Plans
Palazzo displays floor plans beautifully to make your visitors have the best impression on your properties.
Favorite Properties
Interested in a property? Just click on the heart button on the bottom of that property, then it will appear in your “My favorites” section on your dashboard/profile.
Properties Compare
Easily compare between two or even several properties by clicking on “Compare” button.
AJAX reviews and ratings
It helps your visitors to comment and rate the property effortlessly by AJAX.
Unlimited numbers of Custom Fields, Features & Amentities
Palazzo allows your visitors to smoothly add, edit and delete unlimited numbers of Custom Fields, Features & Amenities to be displayed in property details.
Advanced Search Options Panel
Default Search options can be simply customized in flexible backend settings panel
Membership Packages/ Pricing Table
Palazzo allows you to create as many membership packages as you want. You can also change package flexibly.
Fully detailed Agent Dashboard
Palazzo has distinct dashboard to let your users add, edit, delete or set featured property quickly and efficiently.
Agent Profile
Your visitors or agents will have their own profiles on Profile page in which they can easily manage their information.
dsIDXpress IDX Plugin & Optima Express IDX Plugin Compatible
We make sure that your MLS listing display appealingly in our theme. Palazzo is dsIDXpress and Optima Express ready. Integrating IDX plugin in your website enables you to update automatically the listings in your website, get enhanced search functionality and generate more leads. Note that the plugins are supported, not included, please download them at www.dsidxpress.com and wordpress.org/plugins/optima-express
WooCommerce compatible
Palazzo has style WooCommerce pages and elements. You can bring your business online and sell things right away with Palazzo.
Mega Menu
Palazzo included Mega Menu plugin to enhance the navigation and usability of your website.
Unlimited colors and Google Font
Set the color for an appropriate element with different color schemes. You can change the colors without any extra effort
SEO Friendly
Strong search engine optimization enhancements have been implemented from the codebase up within Palazzo, ensuring you get the traffic you need to kick off your real estate website.
Right to Left Supported
Palazzo supports right to left languages and repositions elements when necessary.
Slider Revolution Included (Save $19)
It also includes powerful Revolution Slider Plugin that enables you to showcase all the latest or featured properties with property name, price and detail information.
Visual Composer Included (Save $34)
Setting up and organizing your site is made easy with its built-in Visual Composer, a premium drag & drop builder plugin that allows you to generate unlimited pages in a flash.
Translation Ready
Palazzo supports multilingual translation using WPML.
Regular Update
We keep updating the theme regularly with more addon features and minor bug fixed. Just one time payment, you will get the update lifetime for free.
Translation Ready
Palazzo supports multilingual translation using WPML.
Comprehensive Documentation
We included in theme package dedicated document file to guide you step by step installing and customizing the theme.
Whole-hearted support
In addition to dedicated documentation, the senior developers of Palazzo will support you. We are happy to support you to build your amazing website.
And much more
Support
All support is handled by our Forum.We encourage you to post all your questions concerning to our template there as your questions may have already been answered or may be of help to other people that have also purchased the template.
Keep In Touch With Us
Keep updated with our latest news and release by subscribing to our newsletter at Blog NooTheme or follow us via social networks.
Change log
1.0.9 Jul 25,2018: - [Fix] Nearby API key issue. - [Improve] Agent, Agency logic. - [Fix] Floor plan adding at the front-end. - [Add] Sub property listing for submit property. - [Fix] Property saving data from Front-end submitting. - [Fix] Request viewing for property (Schedule a tour). - [Fix] Agent, agent properties front-end management. - [Fix] Agent member of the Agency.
1.0.8 Jun 19,2018: - [Add] Quick Setup for Realty Portal Setting. - [Add] Property tag input. - [Add] Delete account option for GDPR. - [Add] Show/hide agent info on the property submitting. - [Improve] Agent and Agency post type. - [Improve] Order history page, add print invoice option. - [Fix] Agent properties counting issue. - [Fix] Purchase package issue. - [Fix] Noo Service shortcode: URL issue. - [Fix] Noo Property Banner auto play issue. - [Improve] Responsive layout. - [Fix] Outdate WooCommerce template files.
1.0.7.1 May 28,2018: - [Check] WooCommerce 3.4.0 - [Fix] Property details fullwidth layout. - [Fix] Listing responsive issue on the dashboard.
1.0.7 May 24,2018: - [Improve] Front-end Submit logic. - [Improve] Theme style, hover effect. - [Add] 100+ currency. - [Add] Front-end submit: Additional information field. - [Fix] Order History issue. - [Fix] Profile setting issue.
1.0.6 May 18,2018: - [Fix] Front-end style issue. - [Improve] Submit Property upload image. - [Fix] Agent dashboard style issue - [Improve] Page options issue. - [Improve] Less file.
1.0.5 May 12,2018: - [Add] Quick setup for New Install. - [Add] Property Ref number config. - [Add] Search function for Property Ref number. - [Move] Custom-style.css file to upload folder. - [Fix] Yelp Nearby API key changed. - [Fix] Property Search result issue. - [Fix] Location popup windows on the Property details. - [Fix] Delete agent issue. - [Fix] Get the Type, Offer issue on the Shortcode. - [Fix] Sticky left sidebar issue and the mobile issue. - [Fix] Inactivate plugin issue. - [Fix] Properties list Shortcode load more issue.
1.0.4.1 Apr 20,2018: - [Fix] Dummy data issue.
1.0.4 Apr 10,2018: - [Fix] Set featured property via front-end management issue. - [Fix] Edit, publish, delete action on table view - Front-end management. - [Add] Confirm message when deleting property - Front-end management. - [Fix] Show all tab content on the Property details page. - [Add] On/Off neighborhoods function on the Property details page. - [Fix] Noo Mailchimp issue on the dummy data. - [Fix] Properties listing page with Ajax search issue. - [Fix] Noo Property listing - loading issue. - [Fix] Properties grid layout on the Safari browser. - [Fix] Styling option issue.
1.0.3 Mar 6,2018: - [FIX] Custom property contact, agent contact form not display at front-end. - [FIX] Topbar scheme custom in the page setting. - [FIX] Properties responsive issue. - [FIX] Login/ Register popup issue. - [FIX] Front-end submit property issue. - [FIX] Advanced search listing offer issue. - [Improve] Style layout. - [CHECK] The latest WordPress 4.9 and plugins.
1.0.2 Feb 10,2018: - [FIX] Install requirement plugins issue popup issue. - [FIX] WooCommerce 3.3.1 issue.
1.0.1 Feb 09,2018: - [FIX] Import demo data. - [FIX] Install requirement plugins.
1.0.0: - First stable release
BUY From ENVATO Marketplace
0 notes
williamsefton ¡ 7 years ago
Text
Automating Your Feature Testing With Selenium WebDriver
Automating Your Feature Testing With Selenium WebDriver
Nils SchĂźtte
2018-04-12T12:45:54+02:002018-04-12T10:58:12+00:00
This article is for web developers who wish to spend less time testing the front end of their web applications but still want to be confident that every feature works fine. It will save you time by automating repetitive online tasks with Selenium WebDriver. You will find a step-by-step example for automating and testing the login function of WordPress, but you can also adapt the example for any other login form.
What Is Selenium And How Can It Help You?
Selenium is a framework for the automated testing of web applications. Using Selenium, you can basically automate every task in your browser as if a real person were to execute the task. The interface used to send commands to the different browsers is called Selenium WebDriver. Implementations of this interface are available for every major browser, including Mozilla Firefox, Google Chrome and Internet Explorer.
Automating Your Feature Testing With Selenium WebDriver
Which type of web developer are you? Are you the disciplined type who tests all key features of your web application after each deployment. If so, you are probably annoyed by how much time this repetitive testing consumes. Or are you the type who just doesn’t bother with testing key features and always thinks, “I should test more, but I’d rather develop new stuff.” If so, you probably only find bugs by chance or when your client or boss complains about them.
I have been working for a well-known online retailer in Germany for quite a while, and I always belonged to the second category: It was so exciting to think of new features for the online shop, and I didn’t like at all going over all of the previous features again after each new software deployment. So, the strategy was more or less to hope that all key features would work.
Nope, we can't do any magic tricks, but we have articles, books and webinars featuring techniques we all can use to improve our work. Smashing Members get a seasoned selection of magic front-end tricks — e.g. live designing sessions and perf audits, too. Just sayin'! ;-)
Explore Smashing Wizardry →
One day, we had a serious drop in our conversion rate and started digging in our web analytics tools to find the source of this drop. It took quite a while before we found out that our checkout did not work properly since the previous software deployment.
This was the day when I started to do some research about automating our testing process of web applications, and I stumbled upon Selenium and its WebDriver. Selenium is basically a framework that allows you to automate web browsers. WebDriver is the name of the key interface that allows you to send commands to all major browsers (mobile and desktop) and work with them as a real user would.
Preparing The First Test With Selenium WebDriver
First, I was a little skeptical of whether Selenium would suit my needs because the framework is most commonly used in Java, and I am certainly not a Java expert. Later, I learned that being a Java expert is not necessary to take advantage of the power of the Selenium framework.
As a simple first test, I tested the login of one of my WordPress projects. Why WordPress? Just because using the WordPress login form is an example that everybody can follow more easily than if I were to refer to some custom web application.
What do you need to start using Selenium WebDriver? Because I decided to use the most common implementation of Selenium in Java, I needed to set up my little Java environment.
If you want to follow my example, you can use the Java environment of your choice. If you haven’t set one up yet, I suggest installing Eclipse and making sure you are able to run a simple “Hello world” script in Java.
Because I wanted to test the login in Chrome, I made sure that the Chrome browser was already installed on my machine. That’s all I did in preparation.
Downloading The ChromeDriver
All major browsers provide their own implementation of the WebDriver interface. Because I wanted to test the WordPress login in Chrome, I needed to get the WebDriver implementation of Chrome: ChromeDriver.
I extracted the ZIP archive and stored the executable file chromedriver.exe in a location that I could remember for later.
Setting Up Our Selenium Project In Eclipse
The steps I took in Eclipse are probably pretty basic to someone who works a lot with Java and Eclipse. But for those like me, who are not so familiar with this, I will go over the individual steps:
Open Eclipse.
Click the "New" icon.
Creating a new project in Eclipse
Choose the wizard to create a new "Java Project," and click “Next.”
Choose the java-project wizard.
Give your project a name, and click "Finish."
The eclipse project wizard
Now you should see your new Java project on the left side of the screen.
We successfully created a project to run the Selenium WebDriver.
Adding The Selenium Library To Our Project
Now we have our Java project, but Selenium is still missing. So, next, we need to bring the Selenium framework into our Java project. Here are the steps I took:
Download the latest version of the Java Selenium library.
Download the Selenium library.
Extract the archive, and store the folder in a place you can remember easily.
Go back to Eclipse, and go to "Project" → “Properties.”
Go to properties to integrate the Selenium WebDriver in you project.
In the dialog, go to "Java Build Path" and then to register “Libraries.”
Click on "Add External JARs."
Add the Selenium lib to your Java build path.
Navigate to the just downloaded folder with the Selenium library. Highlight all .jar files and click "Open."
Select all files of the lib to add to your project.
Repeat this for all .jar files in the subfolder libs as well.
Eventually, you should see all .jar files in the libraries of your project:
The Selenium WebDriver framework has now been successfully integrated into your project!
That’s it! Everything we’ve done until now is a one-time task. You could use this project now for all of your different tests, and you wouldn’t need to do the whole setup process for every test case again. Kind of neat, isn’t it?
Creating Our Testing Class And Letting It Open the Chrome Browser
Now we have our Selenium project, but what next? To see whether it works at all, I wanted to try something really simple, like just opening my Chrome browser.
To do this, I needed to create a new Java class from which I could execute my first test case. Into this executable class, I copied a few Java code lines, and believe it or not, it worked! Magically, the Chrome browser opened and, after a few seconds, closed all by itself.
Try it yourself:
Click on the "New" button again (while you are in your new project’s folder).
Create a new class to run the Selenium WebDriver.
Choose the "Class" wizard, and click “Next.”
Choose the Java class wizard to create a new class.
Name your class (for example, "RunTest"), and click “Finish.”
The eclipse Java Class wizard.
Replace all code in your new class with the following code. The only thing you need to change is the path to chromedriver.exe on your computer:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; /** * @author Nils Schuette via frontendtest.org */ public class RunTest { static WebDriver webDriver; /** * @param args * @throws InterruptedException */ public static void main(final String[] args) throws InterruptedException { // Telling the system where to find the chrome driver System.setProperty( "webdriver.chrome.driver", "C:/PATH/TO/chromedriver.exe"); // Open the Chrome browser webDriver = new ChromeDriver(); // Waiting a bit before closing Thread.sleep(7000); // Closing the browser and WebDriver webDriver.close(); webDriver.quit(); } }
Save your file, and click on the play button to run your code.
Running your first Selenium WebDriver project.
If you have done everything correctly, the code should open a new instance of the Chrome browser and close it shortly thereafter.
The Chrome Browser opens itself magically. (Large preview)
Testing The WordPress Admin Login
Now I was optimistic that I could automate my first little feature test. I wanted the browser to navigate to one of my WordPress projects, login to the admin area and verify that the login was successful. So, what commands did I need to look up?
Navigate to the login form,
Locate the input fields,
Type the username and password into the input fields,
Hit the login button,
Compare the current page’s headline to see if the login was successful.
Again, after I had done all the necessary updates to my code and clicked on the run button in Eclipse, my browser started to magically work itself through the WordPress login. I successfully ran my first automated website test!
If you want to try this yourself, replace all of the code of your Java class with the following. I will go through the code in detail afterwards. Before executing the code, you must replace four values with your own:
The location of your chromedriver.exe file (as above),
The URL of the WordPress admin account that you want to test,
The WordPress username,
The WordPress password.
Then, save and let it run again. It will open Chrome, navigate to the login of your WordPress website, login and check whether the h1 headline of the current page is “Dashboard.”
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; /** * @author Nils Schuette via frontendtest.org */ public class RunTest { static WebDriver webDriver; /** * @param args * @throws InterruptedException */ public static void main(final String[] args) throws InterruptedException { // Telling the system where to find the chrome driver System.setProperty( "webdriver.chrome.driver", "C:/PATH/TO/chromedriver.exe"); // Open the Chrome browser webDriver = new ChromeDriver(); // Maximize the browser window webDriver.manage().window().maximize(); if (testWordpresslogin()) { System.out.println("Test Wordpress Login: Passed"); } else { System.out.println("Test Wordpress Login: Failed"); } // Close the browser and WebDriver webDriver.close(); webDriver.quit(); } private static boolean testWordpresslogin() { try { // Open google.com webDriver.navigate().to("https://www.YOUR-SITE.org/wp-admin/"); // Type in the username webDriver.findElement(By.id("user_login")).sendKeys("YOUR_USERNAME"); // Type in the password webDriver.findElement(By.id("user_pass")).sendKeys("YOUR_PASSWORD"); // Click the Submit button webDriver.findElement(By.id("wp-submit")).click(); // Wait a little bit (7000 milliseconds) Thread.sleep(7000); // Check whether the h1 equals “Dashboard” if (webDriver.findElement(By.tagName("h1")).getText() .equals("Dashboard")) { return true; } else { return false; } // If anything goes wrong, return false. } catch (final Exception e) { System.out.println(e.getClass().toString()); return false; } } }
If you have done everything correctly, your output in the Eclipse console should look something like this:
The Eclipse console states that our first test has passed. (Large preview)
Understanding The Code
Because you are probably a web developer and have at least a basic understanding of other programming languages, I am sure you already grasp the basic idea of the code: We have created a separate method, testWordpressLogin, for the specific test case that is called from our main method.
Depending on whether the method returns true or false, you will get an output in your console telling you whether this specific test passed or failed.
This is not necessary, but this way you can easily add many more test cases to this class and still have readable code.
Now, step by step, here is what happens in our little program:
First, we tell our program where it can find the specific WebDriver for Chrome.
System.setProperty("webdriver.chrome.driver","C:/PATH/TO/chromedriver.exe");
We open the Chrome browser and maximize the browser window.
webDriver = new ChromeDriver(); webDriver.manage().window().maximize();
This is where we jump into our submethod and check whether it returns true or false.
if (testWordpresslogin()) …
The following part in our submethod might not be intuitive to understand: The try{…}catch{…} blocks. If everything goes as expected, only the code in try{…} will be executed, but if anything goes wrong while executing try{…}, then the execution continuous in catch{}. Whenever you try to locate an element with findElement and the browser is not able to locate this element, it will throw an exception and execute the code in catch{…}. In my example, the test will be marked as "failed" whenever something goes wrong and the catch{} is executed.
In the submethod, we start by navigating to our WordPress admin area and locating the fields for the username and the password by looking for their IDs. Also, we type the given values in these fields.
webDriver.navigate().to("https://www.YOUR-SITE.org/wp-admin/"); webDriver.findElement(By.id("user_login")).sendKeys("YOUR_USERNAME"); webDriver.findElement(By.id("user_pass")).sendKeys("YOUR_PASSWORD");
Selenium fills out our login form
After filling in the login form, we locate the submit button by its ID and click it.
webDriver.findElement(By.id("wp-submit")).click();
In order to follow the test visually, I include a 7-second pause here (7000 milliseconds = 7 seconds).
Thread.sleep(7000);
If the login is successful, the h1 headline of the current page should now be "Dashboard," referring to the WordPress admin area. Because the h1 headline should exist only once on every page, I have used the tag name here to locate the element. In most other cases, the tag name is not a good locator because an HTML tag name is rarely unique on a web page. After locating the h1, we extract the text of the element with getText() and check whether it is equal to the string “Dashboard.” If the login is not successful, we would not find “Dashboard” as the current h1. Therefore, I’ve decided to use the h1 to check whether the login is successful.
if (webDriver.findElement(By.tagName("h1")).getText().equals("Dashboard")) { return true; } else { return false; }
Letting the WebDriver check, whether we have arrived on the Dashboard: Test passed! (Large preview)
If anything has gone wrong in the previous part of the submethod, the program would have jumped directly to the following part. The catch block will print the type of exception that happened to the console and afterwards return false to the main method.
catch (final Exception e) { System.out.println(e.getClass().toString()); return false; }
Adapting The Test Case
This is where it gets interesting if you want to adapt and add test cases of your own. You can see that we always call methods of the webDriver object to do something with the Chrome browser.
First, we maximize the window:
webDriver.manage().window().maximize();
Then, in a separate method, we navigate to our WordPress admin area:
webDriver.navigate().to("https://www.YOUR-SITE.org/wp-admin/");
There are other methods of the webDriver object we can use. Besides the two above, you will probably use this one a lot:
webDriver.findElement(By. …)
The findElement method helps us find different elements in the DOM. There are different options to find elements:
By.id
By.cssSelector
By.className
By.linkText
By.name
By.xpath
If possible, I recommend using By.id because the ID of an element should always be unique (unlike, for example, the className), and it is usually not affected if the structure of your DOM changes (unlike, say, the xPath).
Note: You can read more about the different options for locating elements with WebDriver over here.
As soon as you get ahold of an element using the findElement method, you can call the different available methods of the element. The most common ones are sendKeys, click and getText.
We’re using sendKeys to fill in the login form:
webDriver.findElement(By.id("user_login")).sendKeys("YOUR_USERNAME");
We have used click to submit the login form by clicking on the submit button:
webDriver.findElement(By.id("wp-submit")).click();
And getText has been used to check what text is in the h1 after the submit button is clicked:
webDriver.findElement(By.tagName("h1")).getText()
Note: Be sure to check out all the available methods that you can use with an element.
Conclusion
Ever since I discovered the power of Selenium WebDriver, my life as a web developer has changed. I simply love it. The deeper I dive into the framework, the more possibilities I discover — running one test simultaneously in Chrome, Internet Explorer and Firefox or even on my smartphone, or taking screenshots automatically of different pages and comparing them. Today, I use Selenium WebDriver not only for testing purposes, but also to automate repetitive tasks on the web. Whenever I see an opportunity to automate my work on the web, I simply copy my initial WebDriver project and adapt it to the next task.
If you think that Selenium WebDriver is for you, I recommend looking at Selenium’s documentation to find out about all of the possibilities of Selenium (such as running tasks simultaneously on several (mobile) devices with Selenium Grid).
I look forward to hearing whether you find WebDriver as useful as I do!
Tumblr media
(rb, ra, al, il)
0 notes
lanceprance-blog ¡ 6 years ago
Text
Ten Lessons That Will Teach You All You Need To Know About SEO 2019
Good SEARCH ENGINE OPTIMIZATION articles increase a website's SEARCH ENGINE OPTIMIZATION traffic because articles are found online. SEO or the particular Search Engine Optimization is certainly an method of increasing visitors generation for an internet company. Cisco approximated that by 2019, video may make up 80% of almost all consumer internet traffic. In line along with the previous point, SEOs will certainly consider various landing pages along with proper keywords, meta tags plus the overall website structure through the SEO point of see. Including relevant key phrases in the title, URL, plus headers of the page plus making sure that a site is crawlable are actions that will site owners can take in order to improve the SEO of their particular site. To fulfill intent and position well in the long work, build your SEO marketing technique around topics, not keywords In case you do that, there are plenty of a person can naturally optimize for essential keywords, anyway. Artificial cleverness (AI) and voice searches are usually two technologies that are currently affecting SEO but will most likely have an even bigger effect in 2019 and the many years to come. They are usually also great for video SEARCH ENGINE OPTIMIZATION, and get great organic position online and Google. Remember keywords are usually the KEY in SEO composing guidelines. It deeply analyze your internet site and reveals each opportunity regarding your SEO improvement by concentrating on key factors like cultural media, technologies, local SEO, guests, usability, search ranking efforts plus mobile SEO. A SEO specialist or agency can audit your own site and appear at exactly how it is performing against your own most important keywords. Selecting the most appropriate key phrases is critical for successful SEARCH ENGINE OPTIMIZATION and it is easy in order to choose the wrong ones through falling into the trap associated with optimization. Lookup engine marketing, or SEO, is the procedure of enhancing your site's rating in search results. Web Marketing SEO, and in specific, Google SEO is the essential. Get into your competitor's URL into the particular SEMRush search bar and you should become provided with a list associated with SEO keywords, with their search positions and traffic. About: Brighton SEO is made up of courses and a one-day search marketing conference. Before this change, the greatest practice was to avoid concealed content at any cost because it wasn't as effective regarding SEO (it was either as well much to crawl for the particular bot in some instances or even given less important by Search engines in others). This is due to the particular fact that you will require contents to be submitted in order to the websites for whom a person are working as an SEARCH ENGINE OPTIMIZATION, when you build the hyperlinks, you will need to offer the profile information, and a person will also have to produce articles for submissions as properly as numerous other types associated with written work. If you've actually searched for something online (and most of us have), a person already know read more regarding SEO than you think a person do. We all already see this trend within several places, like extremely specific targeting of social ads -- some brands still approach SEARCH ENGINE OPTIMIZATION and content creation with the one-size-fits all attitude. A great SEO service includes a great deal of research and lots associated with smart keywords application which will certainly period website at a increased notch and provide it the higher ranking in Google web search engine. Professional SEO content authors work on creating articles just after understanding the nature associated with your business, your industry, competition and what kind of posts your business might most want for maximum benefits; in the particular short-term and the long-term. Linking to other webpages inside your site, as well because linking to other sites plus getting other sites to url to yours, is a great method to improve your SEO. Influencer marketing doesn't seem in order to be slowing down anytime quickly, so it will probably obtain bigger in 2018 and actually bigger in 2019 when even more companies start to catch upon to this trend. Keeping within mind the last point, SEARCH ENGINE OPTIMIZATION agencies are fluent in navigating via a wide range of on-line marketing tools that helps boost the value of your marketing technique. Search Engine Optimization (SEO) is usually a powerful process that may help make you and your own research more visible to research engines like Google and Search engines Scholar. I have simply no clue about SEO only a few basics that is available just about all over the place and I actually feel this article must aid as your other articles assisted me give some direction upon recovering my lost traffic plus generating more content as properly as repurposing old content. To get a better SEARCH ENGINE OPTIMIZATION, helps your website can obtain on the top among well-known search engines like Bing plus Google. On the some other side, you can ensure a good effective content marketing campaign just when you apply the SEARCH ENGINE OPTIMIZATION techniques properly. SEO -- Search engine optimization: the procedure of making your blog better regarding search engines. The purpose of SEARCH ENGINE OPTIMIZATION writing is to make your own company more visual, more attractive in website search engines. SEO is usually the practice of increasing the particular quantity and quality of site visitors to your website through natural and organic search engine results. 31. SEO data can notify a smart social media technique. Solid keyword & marketplace research assist SEO strategy plus allow us to supply You Should Experience SEO 2019 At Least Once In Your Lifetime And Here's Why realistic projections and forecasts of opportunity inside your market. Nevertheless, when this comes to developing and doing an audio SEO strategy with regard to your business, just creating content material for the keywords your clients are looking for is each arduous and, well, wrong. In this situation, in, the article ranks correct after the official Google recommendations (and it makes sense that will Google should be number one on their own branded query) but Smashing magazine is demonstrated as a position 0” little of text on the issue Google pop up guidelines” within. Search Engine Land, a top quality SEO blog this is the pillar of the community is usually ranking after Smashing (which occurs to be really a style blog than an SEO one). Also companies considering about getting Search engine search engine optimization services should go through these types of magazines to familiarize themselves making use of the latest trends within the particular SEO and web-based marketing sector to allow them to evaluate the assistance offered for all of them from the selected SEO companies. Mobile SEARCH ENGINE OPTIMIZATION in 2018 will be all regarding Progressive Web Apps (PWAs). The term SEARCH ENGINE OPTIMIZATION also describes the making internet pages easier for internet research engine indexing software, known because "crawlers, " to find, check out, and index your web site. I feel that technical SEARCH ENGINE OPTIMIZATION mistakes that affect crawl spending budget - and also pollute Search engines with non-SEO-friendly content such since social landing pages, WordPress mass media archives, offer pages and cloned e-commerce product pages - will certainly have a far more detrimental effect upon sites moving forward. Effective SEO lets you improve your web​site to exhibit up within search engines. We all will get into how for you to pick the best keywords with regard to your business later in this particular SEO guide, but it best you to know how for you to use them, as they are usually referenced throughout this section. Despite the fact that meta descriptions are not a new ranking factor for search motors, they do hold value with regard to your website and are component of your SEO presence. Let us speak a bit as to exactly what SEO is before we enter the SEO article writing recommendations for people who may become new or do not very understand it. SEO stands regarding Seo. This particular SEO model is called the "topic cluster, " and contemporary search engine algorithms rely upon them to connect users along with the information they're looking regarding. Your own SEO strategy likely involves content material designed to be shared upon social media. Take this article with regard to example, if you search regarding reverse engineer Google, ” seo secrets, ” reverse engineering seo, ” this informative article is on the particular first page for every associated with those search terms. Social networking and SEO ought to be working together, sharing content material or utilizing engagement metrics since data for future article marketing and advertising. Simply put, SEARCH ENGINE OPTIMIZATION is marketing through an knowing of how search algorithms function combined with a knowledge associated with what human users might research for. The results furthermore underscore the value of creating new content with your SEO online marketing strategy. Once you create new content structured on your priority keywords, a person have several advantages with the SEARCH ENGINE OPTIMIZATION marketing strategy. Both SEO and content material marketing converge in lots of places; these people do not work in seclusion. Free to go to SearchLeeds covers everything from technological SEO and analytics, to PAGE RANK, content marketing, paid media plus more. Following technical mobile SEO greatest practices (e. g., image optimisation, redirects, JavaScript and CSS) is definitely a necessary barrier to access in today's digital world. SEO focuses upon rankings in the organic (non-paid) search results. SEO as a result helps you get traffic coming from search engines. With Ahrefs, a great starting place for keyword research regarding SEO is the Keywords Explorer tool. Topics: SEO, backlink, content material marketing, social media marketing plus advertising, analytics, and more. 60+ sessions on hot topics, accomplishment stories and strategies in SEARCH ENGINE MARKETING, SEA, PPC, Social Media, On-line Marketing and SMX Future Monitor. 2018 (I believe) will be a lot associated with catch up on current SEARCH ENGINE OPTIMIZATION themes, with the biggest trends” occurring around voice queries to find results. Therefore, SEOmonitor tracks all of the related data that could influence SEARCH ENGINE OPTIMIZATION performance and displays it within the Keyword Events Timeline. If you forget that will quality content is a best priority, then you can definitely forget about having an SEARCH ENGINE OPTIMIZATION strategy. The particular way we asking the device is different from person in order to person. therefore, optimizing your internet site 100% mobile friendly to accomplish cellular voice search is very essential to SEO 2019. We am just newbie and significantly i do get frustrated whenever articles doesn't rank on best or near top, but individuals like you and many various other also inspire me to by no means give up. There are various points that i wasn't recognized up to now but appreciate to you, you are constantly make us learn important items about seo. Ultimately, simply by the end of 2018 or even mid-2019, we'll see a golf swing back to natural” content created by real humans who may produce valuable content that really provides value. Hiring experienced SEO experts can ensure that your website climbs the search engine ranks with no using any illegal practices or even short cuts that could generate temporary spikes in the home page's ranking, but eventually lead in order to your website having to pay out penalties. Official Site Associated with BlowFish SEO - Professional Search Motor Optimization Services operated by Robert DiSalvo SEO Located in Hand Beach Gardens, Florida. The takeaway here is usually that if you might have got LOTS of location pages providing A SINGLE business in one particular location, then those are extremely probably classed as some type of doorway pages, and possibly old-school SEO techniques for these types of type of pages will observe them classed as lower-quality -- or even - spammy webpages. CRAWL this, like Google does, with (for example) Screaming Frog SEO spider, plus fix malformed links or items that result in server errors (500), broken links (400+) and unwanted redirects (300+). SEARCH ENGINE OPTIMIZATION gives you a go at rating for the terms which your own customers use, so you may do better business. The job of the SEARCH ENGINE OPTIMIZATION is to create high-quality articles after which win the attention, the particular love as well as the particular link from a blogger or even editor. The keyword difficulty or even keyword SEO difficulty is the very useful metric for key phrase research. "SEO" is a term that will be used to describe the procedure by which visitors a specific site is increasingly generated simply by search engines through search results. These white-hat cellular SEO tips will help a person to avoid internet search motor penalties and maintain better on the web visibility. SEO or research engine optimization techniques will deal with these requirements of a web site. AI and tone of voice search have already begun in order to impact SEO, and as these types of technologies continue to develop, we all can expect to see a lot more changes in the way SEARCH ENGINE OPTIMIZATION is completed. In the second chapter of our SEO guideline, you will learn how lookup engines work, how people utilize them and what type of research queries they submit. You need in order to provide regular posts either daily or at least several periods a week in order in order to gain a following and offer enough unique SEO content in order to keep your search engine rankings high, attract new viewers plus convince people that you are usually the expert in your industry. Voice research will change the way you interact along with search engines and it will certainly make SEO even more competing and vital to online achievement. Our SEO outreach team connect your brand and curated content with key on-line influencers to get people speaking about you & sharing your own message. Yet, with the research engines like google continually modifying their rules SEO may appear confusing and overwhelming. Understanding what these words really suggest, and how SEO analysts make use of them to boost your home page's search engine results, may end up being a whole other story. SEO & Content Marketing Software for eCommerce Business, Agencies and Enterprises. Calib Backe, SEO Manager for Walnut Holistics, writes that mobile plus voice are going to keep on their domination of importance since we rely on desktop much less and less. If much associated with your competitors has hired SEARCH ENGINE OPTIMIZATION firms to focus on 10-20 keywords within a moderately competitive industry, after that you will have to spend a small more. The Google Research Console may be the most essential SEO tool on the globe. No BS. In the event that you're done with the exhausted cliches told over and above again at SEO Conferences, after that you're prepared to experience UnGagged - an UnConventional SEO and even Digital Marketing conference that gives real-world results. SEO is a good acronym for the phrase "search engine optimization. " Search motor optimization is about doing specific issues to your website to operate a vehicle even more traffic to it so that will you can increase online product sales - and traffic. By 2019, the method we search might not modify completely, but these new systems will definitely change the way all of us build links, engage users, plus generate leads through content advertising. Site Champion® increases site visitors by helping shoppers find your own products in search engines via increased keyword rankings using SEARCH ENGINE OPTIMIZATION automation. While link quantity is nevertheless important, content creators and SEARCH ENGINE OPTIMIZATION professionals are realizing that hyperlink quality is now more essential than link quantity, and because such, creating shareable content may be the initial step to earning valuable hyperlinks and improving your off-page SEARCH ENGINE OPTIMIZATION. Search engine optimisation (SEO) is one of the particular most important marketing considerations about your studio website. SEO might generate a sufficient return upon investment However, search engines are usually not taken care of organic search visitors, their algorithms change, and presently there are no guarantees of continuing referrals. An excellent starting point whenever using keywords for SEO will be to identify existing pages that will may use some optimization. These are called keywords, plus as you will see, these people are an important part associated with SEO. In fact, this particular will actually hurt your home page's SEO because search engines such as google will recognize it because keyword stuffing - or the particular act of including keywords particularly to rank for that key phrase Blog9T, rather than to answer the person's question. Prior to we begin, one thing a person want to keep in brain when using one of the following SEARCH ENGINE OPTIMIZATION elements is not to overdo it. You might be enticed to shove a lot associated with keywords onto your pages, yet that is not the objective. In situation you create links to various other websites and reverse, it can improve your SEO ranking. Really Cisco predicts that globally, on the internet video traffic will be eighty percent of all consumer Web traffic by 2019 (a amount that is up from sixty four percent in 2014). I've bookmarked therefore many SEO websites and assets that it's overwhelming to also look at. Link authority is the major component of SEO, yet purchasing links is forbidden simply by Google, Bing, and other research engines. SEO's basic importance comes from the particular fact that most users show strong search dominance — that will is usually, search is the main method people go places on the particular Internet. Reading blogs related to SEO might also be very useful within locating out concerning the essential companies on the market which usually are offering comprehensive and genuine Search engine optimization services toward the corporate sector. The initial SEO is dependent mostly on number of key phrases targeted and the size associated with your web site, while the particular ongoing link campaign depends even more on the competitiveness of the particular keywords chosen. Whether you aren't an SEO newbie or the seasoned practitioner, I encourage a person to fully read this in order to understand how you can obtain your content on top associated with search results. Huge Brand campaigns are far, considerably distinctive from small business SEO strategies that have no links, to start with, to give you yet an example. These SEO companies possess a strategy requiring clients in order to pay for the major lookup engines (including Google and Yahoo) for monthly website maintenance. Specialists are reporting that 2019 can be the year of tone search, and that the words search algorithm may change in addition to supersede text search relatively. A TOP DOG blog is simply one component of social media distribution, an essential SEO strategy according to SEARCH ENGINE OPTIMIZATION Consult You should be disseminating links to fresh content upon your site across appropriate sociable networking platforms. But definitely, the acronym many people ask about is SEARCH ENGINE OPTIMIZATION, or search engine optimization. Between this plus 2017's Best SEO Campaign honor from the UK Search Honours, it's clear the world is usually starting to recognize Elephate because one of the most trustworthy SEO and Content Marketing organizations in Europe. To understand how SEO functions to improve search rankings, we will have to break it straight down a little. Whichever way you choose in order to categorize keywords, one of the particular most important steps in SEARCH ENGINE OPTIMIZATION does keyword research. Some good examples of White Hat SEO consist of optimizing META tags, putting key phrases in URLs, submitting sites in order to directories, making sitemaps, obtaining hyperlinks on related sites, and developing keyword-optimized content. An SEO Executive optimizes internet sites for making them show up increased on search engines like search engines and gain more website website visitors. Nevertheless, the fresh trend in SEO is ideal for long-tail keywords and even more conversational searches. SEO is the great marketing tool for the particular websites promoting their businesses on the internet. Still, the keyword element of SEO is becoming significantly difficult with Google Adwords concealing volume data. Making use of advanced Search engines semantic search algorithms, we link the gap between old college SEO and the new content material marketing. Tug has been appointed specifically to roll out a multi-lingual search engine marketing techniques campaign using its experience in international SEO and PAY PER CLICK. Every advertising SEO blog is usually talking about online video marketing and advertising and every third company professional you talk to is intending to shift marketing dollars to a good online video campaign. ” Simply by 2019, video is expected in order to account for 80 percent associated with all web traffic. Don't set it and neglect it. Take time to review your SEO keyword strategy each few months to make certain it's still relevant and attaining the final results you want. Stories are a easy method to do marketing, you simply need to include some custom made images or text in purchase to let people know they will could swipe to click plus see where you can obtain a skirt, grill, buy SEARCH ENGINE OPTIMIZATION, or anything else you're attempting to pitch to the public. Jana Granko, PR (public relations) head with SEMrush - one of the particular top marketing tools of the particular world - believe that within 2019 AI (artificial intelligence) would certainly change the way people lookup for keywords. In fact, SEARCH ENGINE OPTIMIZATION is simply one part associated with every successful digital marketing technique, but possibly the most essential part. These are called SEO standing factors. SEARCH ENGINE OPTIMIZATION is the art and technology of driving the most competent visitors to your website simply by attaining high search engine outcomes. With Digital SEO Land, Rintu Biswas a professional SEO expert throughout Kolkata will assist you for you to build quality backlinks to your site. This ‘what is SEO‘ guide (and this whole website) is not about churn and burn type of Search engines SEO (called webspam to Google) as that is too dangerous to deploy on a genuine business website in 2018. Off-page SEARCH ENGINE OPTIMIZATION concentrates on increasing the authority associated with your domain through the act associated with getting links from all various other websites. Regarding: Search Engine Journal's flagship meeting, SEJ Summit, is dedicated to offering SEO pros the actual require, with an agenda of initial, first-run presentations covering the most recent SEO and PPC tactics through renowned experts, plus excellent social networking opportunities. SEO combines official research engine guidelines, empirical knowledge, plus theoretical knowledge from science documents or patents. This is usually a half-day workshop at LeadsCon that will be designed for you to give attendees an end-to-end watch of Search Engine Optimization (SEO), how it works, and real things they can do right now to improve their SEO functionality. After the Search engines Panda algorithm appeared, SEO specialists realized just how much key word frequency and density matters. SEO means optimizing your content so it shows up a lot more often in search results. 33. With social media systems like Facebook diminishing visibility associated with companies and brands, SEO (as well as paid promotion) is usually becoming critically important for generating traffic to your social stations. 2019 dates TBD. ). Why go to: One-track conference full of forward-thinking, tactical sessions in SEO, development marketing, the mobile landscape, analytics, content marketing and more. ” Don't miss the LeadsCon Meeting in Vegas, March 4-6, 2019.
0 notes