Contentful: Content Infrastructure for Digital Teams

Contentful: Content Infrastructure for Digital Teams

Our content infrastructure enables teams to power content in any digital product: website, app, or device.


  • Manage, integrate, and deliver content via APIs
  • Use your preferred languages and frameworks
  • Iterate quickly from dev, test, and staging to production

Content Creators

  • Easily create, manage, and publish content in the web app
  • Customizable workflows for each content team
  • Instant access to all new web app features
Netlify CMS

Netlify CMS

Open source content management for your Git workflow. Use Netlify CMS with any static site generator for a faster and more flexible web project

Static + content management = ♥

Get the speed, security, and scalability of a static site, while still providing a convenient editing interface for content.

An integrated part of your Git workflow

Content is stored in your Git repository alongside your code for easier versioning, multi-channel publishing, and the option to handle content updates directly in Git.

An extensible CMS built on React

Netlify CMS is built as a single-page React app. Create custom-styled previews, UI widgets, and editor plugins or add backends to support different Git platform APIs.



Building Faster Websites with Grav, a Modern Flat-file CMS

Nowadays, there’s an interesting get-back-to-the-basics tendency among web developers. Some modern, best-in-class technologies — like Markdown, Twig, and YAML — are often used together to produce many new, lightweight CMSs, focused on speed, simplicity and productivity. The principle they all follow is pretty straightforward: when things get too complex, it’s better to start from scratch, instead of trying to clean up the existing mess.

< css-doodle /> – A web component for drawing patterns with CSS

< css-doodle /> – A web component for drawing patterns with CSS

is based on Shadow DOM v1 and Custom Elements v1. You can use it on latest Chrome and Safari right now without polyfills. The component will generate a grid of divs by the rules (plain CSS) inside it. You can easily manipulate those cells using CSS to come up with a graphic pattern or an animated graph. The limit is the limit of CSS itself.

#Getting Started

Include the script directly from cdnjs and everything is ready:

<script src=""></script>

/* put your code here */

You can also install it from npm and import the module in javascript:

npm install css-doodle
Pico.js – Lightweight JavaScript Face Detection Library

Pico.js – Lightweight JavaScript Face Detection Library

pico.js is lightweight face detection library in 200 lines of JavaScript. pico.js has real-time detection capabilities (200+ FPS in a practical setting)

If your platform supports the getUserMedia API call, you can try the pico.js real-time face detector. Simply click the button below and allow the page to access your webcam.

CSS Hacks Targeting Firefox

CSS Hacks Targeting Firefox

Firefox specific styling is now possible with CSS alone. No more JS hacks required.

#Firefox 2

html>/**/body .selector, x:-moz-any-link { color:lime; }

#Firefox 3

html>/**/body .selector, x:-moz-any-link, x:default { color:lime; }

#Any Firefox

@-moz-document url-prefix() { .selector { color:lime; } }
Website Thank you so much Nidhin for giving us such an effective Mozilla specific info.
Blotter.js – JavaScript API for Drawing Unconventional Text Effects

Blotter.js – JavaScript API for Drawing Unconventional Text Effects

Blotter is a javascript API for drawing unconventional text effects on the web. Blotter provides a simple interface for building and manipulating text effects that utilize GLSL shaders without requiring that the designer write GLSL.


When applying effects to text on the web, designers have traditionally been constrained to those provided by CSS. In the majority of cases this is entirely suitable – text is text right? Yet still, there exist numerous examples of designers combining CSS properties or gifs and images to create effects that evoke something more playful. Precisely here, Blotter exists to provide an alternative.

GLSL Backed Text Effects with Ease

Blotter provides a simple interface for building and manipulating text effects that utilize GLSL shaders without requiring that the designer write GLSL. Blotter has a growing library of configurable effects while also providing ways for student or experienced GLSL programmers to quickly bootstrap new ones.

Atlasing Effects in a Single WebGL Back Buffer

Blotter renders all texts in a single WebGL context and limits the number of draw calls it makes by using atlases. When multiple texts share the same effect they are mapped into a single texture and rendered together. The resulting image data is then output to individual 2d contexts for each element.

Animation Loop

Rather than executing on a time based interval, Blotter's internal animation loop uses requestAnimationFrame to match the browser's display refresh rate and pause when the user navigates to other browser tabs; improving performance and preserving the battery life on the user's device.

What Blotter Isn't

Any texts you pass to Blotter can be individually configured using familiar style properties. You can use custom font faces through the @font-face spec. However, Blotter ultimately renders the texts passed to it into canvas elements. This means rendered text won't be selectable. Blotter is great for elements like titles, headings, and texts used for graphic purposes. It's not recommended that Blotter be used for lengthy bodies of text.

Marko – Friendly and Fast UI Library from eBay

Marko – Friendly and Fast UI Library from eBay

Marko is a friendly and fast UI library that makes building web apps fun.
  • Simple: If you know HTML, CSS, and Javascript, you know Marko
  • Fast: Faster loads via streaming and a tiny (~10kb gzip) runtime
  • Progressive: From simple HTML templates to powerful UI components
  • Trusted: Marko is powering high-traffic websites like
Add Google reCAPTCHA in WordPress

Add Google reCAPTCHA in WordPress

Google reCAPTCHA is becoming popular since the day of its announcement. The performance of this product is not been evaluated yet because of its age.
I have covered basic tutorial about how to code custom script with Google reCAPTCHA.


/*Add Google captcha field to Comment form*/


function add_google_captcha(){
echo '<div class="g-recaptcha" data-sitekey= "=== Your site key === "></div>';

/*End of Google captcha*/


<script src=''></script>
<script type="text/javascript">
var data_2;
type: "POST",
url: "",
data: jQuery('#commentform').serialize(),
success: function(data) {
if(data.nocaptcha==="true") {
} else if(data.spam==="true") {
} else {
if(data_2!=0) {
if(data_2==1) {
alert("Please check the captcha");
} else {
alert("Please Don't spam");
} else {


header('Content-Type: application/json');
error_reporting(E_ALL ^ E_NOTICE);
if(isset($_POST['g-recaptcha-response'])) {
$data=array('nocaptcha' => 'true');
echo json_encode($data);
// calling google recaptcha api.
$response=file_get_contents(" secret key&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
// validating result.
if($response.success==false) {
$data=array('spam' => 'true');
echo json_encode($data);
} else {
$data=array('spam' => 'false');
echo json_encode($data);
Get Started with Remote Debugging Android Devices

Get Started with Remote Debugging Android Devices

Remote debug live content on an Android device from your Windows, Mac, or Linux computer. This tutorial teaches you how to:
  • Set up your Android device for remote debugging, and discover it from your development machine.
  • Inspect and debug live content on your Android device from your development machine.
  • Screencast content from your Android device onto a DevTools instance on your development machine.
remote debugging illustration


  • Chrome 32 or later installed on your development machine.
  • USB drivers installed on your development machine, if you're using Windows. Ensure Device Managerreports the correct USB driver.
  • A USB cable to connect your Android device to your development machine.
  • Android 4.0 or later.
  • Chrome for Android installed on your Android device.

Step 1: Discover your Android device

  • On your Android device, select Settings > Developer Options > Enable USB DebuggingDeveloper Options is hidden by default on Android 4.2 and later. See Enabling On-Device Developer Options to learn how to enable it.
  • On your development machine, open Chrome. You should be signed in to Chrome with one of your Google accounts. Remote debugging does not work in Incognito Mode or Guest Mode.
  • Open DevTools.
  • In DevTools, click the Main Menu Main Menu then select More tools > Remote devices.Opening remote devices drawer
  • In DevTools, click the Settings tab, if another tab is showing.
  • Make sure that Discover USB devices is enabled.Discover USB devices is enabled
  • Connect your Android device directly to your development machine using a USB cable. Don't use any intermediate USB hubs. If this is your first time connecting your Android device to this development machine, your device shows up under Unknown, with the text Pending Authorization below it.Unknown device, pending authorization
  • If your device is showing up as Unknown, accept the Allow USB Debugging permission prompt on your Android device. Unknown is replaced with the model name of your Android device. The green circle and the Connected text indicate that you are all set to remotely debug your Android device from your development machine.

Step 2: Debug content on your Android device from your development machine

  • If you don't already have Chrome open on your Android device, open it now.
  • Back in DevTools, click the tab that matches your device's model name. At the top of this page, you see your Android device's model name, followed by its serial number. Below that, you can see the version of Chrome that's running on the device, with the version number in parentheses. Each open Chrome tab gets its own section. You can interact with that tab from this section. If there are any apps using WebView, you see a section for each of those apps, too. The screenshot below does not have any tabs or WebViews open.Connected remote device
  • Next to New tab, enter a URL and then click Open. The page opens on a new tab on your Android device.
  • Click Inspect next to the URL that you just opened. A new DevTools instance opens. The version of Chrome running on your Android device determines the version of DevTools that opens on your development machine. So, if your Android device is running a very old version of Chrome, the DevTools instance may look very different than what you're used to.

More actions: reload, focus, or close a tab

Click More Options More Options next to the tab that you want to reload, focus, or close. reload, focus, or close a tab

Inspect elements

Go to the Elements panel of your DevTools instance, and hover over an element to highlight it in the viewport of your Android device. You can also tap an element on your Android device screen to select it in the Elements panel. Click Select Element Select Element on your DevTools instance, and then tap the element on your Android device screen. Note that Select Element is disabled after the first touch, so you need to re-enable it every time you want to use this feature.

Screencast from Android device to development machine

Click Toggle Screencast Toggle Screencast to view the content of your Android device in your DevTools instance. You can interact with the screencast in multiple ways:
  • Clicks are translated into taps, firing proper touch events on the device.
  • Keystrokes on your computer are sent to the device.
  • To simulate a pinch gesture, hold Shift while dragging.
  • To scroll, use your trackpad or mouse wheel, or fling with your mouse pointer.
Some notes on screencasts:
  • Screencasts only display page content. Transparent portions of the screencast represent device interfaces, such as the Chrome omnibox, the Android status bar, or the Android keyboard.
  • Screencasts negatively affect frame rates. Disable screencasting while measuring scrolls or animations to get a more accurate picture of your page's performance.
  • If your Android device screen locks, the content of your screencast disappears. Unlock your Android device screen to automatically resume the screencast.